Powrót do strony głównej

GraphRAG i Ollama: Grafy Wiedzy dla Zaawansowanej Generacji Odpowiedzi

Poznaj GraphRAG i Ollama do tworzenia zaawansowanych systemów RAG. Dowiedz się, jak grafy wiedzy poprawiają dokładność odpowiedzi, pokonując ograniczenia wyszukiwania wektorowego.

GraphRAG i Ollama: Budowanie Zaawansowanych Systemów RAG na Grafach Wiedzy
Advertisement 728x90

GraphRAG i Ollama: Rozszerzone Generowanie Odpowiedzi w Oparciu o Grafy Wiedzy

Współczesne korporacyjne systemy RAG (Retrieval-Augmented Generation) nieustannie ewoluują, dążąc do przezwyciężenia ograniczeń tradycyjnego wyszukiwania wektorowego. Microsoft GraphRAG stanowi obiecujące rozwiązanie, wykorzystujące grafy wiedzy do głębszego zrozumienia kontekstu i ekstrakcji informacji. W tym artykule przyjrzymy się praktycznemu doświadczeniu z GraphRAG, jego integracji z lokalnymi modelami językowymi za pośrednictwem Ollamy oraz zademonstrujemy jego możliwości na przykładzie analizy tekstu zanurzonego w świecie cyberpunka. Celem jest pokazanie, jak podejścia grafowe mogą znacząco poprawić dokładność i trafność odpowiedzi w złożonych systemach informacyjnych, oferując nowy poziom wyszukiwania semantycznego i analizy danych.

Od Wyszukiwania Wektorowego do Grafów Wiedzy

U podstaw wielu systemów RAG leży wyszukiwanie wektorowe, które, pomimo swojej skuteczności, posiada szereg ograniczeń, zwłaszcza w przypadku złożonych zapytań i niejednoznacznych encji. GraphRAG oferuje alternatywne podejście, budując pełnowartościowy graf wiedzy na podstawie oryginalnych dokumentów. Graf ten składa się z encji (obiektów, osób, miejsc) i powiązań między nimi, co pozwala systemowi wychwytywać nie tylko obecność słów kluczowych, ale także ich relacje semantyczne w kontekście. Takie podejście znacząco zwiększa dokładność i głębię wydobywanych informacji.

Proces budowania grafu wiedzy w GraphRAG obejmuje ekstrakcję encji i powiązań z tekstu. Do wizualizacji i analizy struktury takiego grafu można wykorzystać specjalistyczne narzędzia, na przykład Gephi z wtyczką Leydena. Pozwala to nie tylko dostrzec wzajemne powiązania, ale także odkryć ukryte społeczności lub klastry encji, które GraphRAG automatycznie identyfikuje i opisuje. Warto zauważyć, że na etapie budowania grafu mogą pojawić się trudności z rozstrzyganiem encji, gdy podobne, ale nie identyczne terminy (np. "Molly Millions" i "Molly") nie są automatycznie łączone, co wymaga dalszego dopracowania algorytmów lub ręcznej korekty.

Google AdInline article slot

GraphRAG generuje również opisy społeczności, które są przechowywane w plikach typu community_reports.parquet. Opisy te są kluczowe dla wyszukiwania globalnego, ponieważ umożliwiają modelom LLM uzyskanie wysokopoziomowego przeglądu klastrów tematycznych w danych. Takie podejście znacząco przewyższa proste wyszukiwanie po fragmentach tekstu, dostarczając bardziej ustrukturyzowany i kontekstowo wzbogacony materiał do generowania odpowiedzi.

Strategie Zapytań w GraphRAG

GraphRAG oferuje kilka strategii wyszukiwania, z których każda jest zoptymalizowana pod kątem różnych typów zapytań. Elastyczność systemu osiąga się dzięki możliwości precyzyjnego dostosowywania promptów, na przykład w plikach local_search_system_prompt.txt i global_search_reduce_system_prompt.txt. Pozwala to dostosować zachowanie systemu do konkretnych zadań i języków, zapewniając trafność odpowiedzi nawet przy formułowaniu pytań w różnych językach, pod warunkiem wsparcia ze strony LLM i embeddingów.

Wyszukiwanie Globalne (Global Search)

Wyszukiwanie globalne jest przeznaczone do odpowiadania na szerokie pytania, wymagające zrozumienia całego zbioru danych. Działa w trybie MapReduce, przeglądając opisy społeczności wyodrębnione z grafu wiedzy. Pozwala to na uzyskanie odpowiedzi uogólnionych, ale jednocześnie głębokich i kontekstowo kompletnych.

Google AdInline article slot

Przykład zapytania:

graphrag query "What are the top cyberpunk elements in this story?"

Przykład odpowiedzi demonstruje, jak system agreguje informacje z różnych części grafu, odwołując się do konkretnych elementów za pomocą human_readable_id. Pozwala to użytkownikowi, w razie potrzeby, zagłębić się w oryginalne dane, używając tych identyfikatorów:

  • Integracja technologii i biologii: Wykorzystanie neuroperturbatora przez Lewisa oraz protezowanego kciuka Yakuzy demonstruje, jak technologie przenikają do ciała i wpływają na kontrolę oraz interakcję z otoczeniem. Takie elementy są jaskrawym przejawem tematyki cyberpunkowej, gdzie granice między organicznym a syntetycznym zacierają się [Data: Reports (5, 7, 12, 2, +more)].
  • Dystopijne krajobrazy miejskie: Narracja opisuje dystopijne przestrzenie miejskie, takie jak Nighttown i Drome, które symbolizują zniszczenie, bezprawie i podziemne sieci przestępcze. [Data: Reports (1, 8, 2, +more)].
  • Konkurencja korporacyjna i nielegalne transakcje: Elementy wywiadu korporacyjnego i nielegalnych transakcji technologicznych, takich jak transakcja z urządzeniami mikrofalowymi między Aryjską grupą reggae a programem Yakuzy, podkreślają temat kontroli korporacyjnej i konfliktów o wysoką stawkę. [Data: Reports (0, 12, 2, +more)].
  • Kontrast między niską a wysoką technologią: Symbolika niskiej technologii, związana z LO TEK i ich wykorzystaniem produktów, takich jak filtry Yiheyuan, kontrastuje z zaawansowanymi ulepszeniami cybernetycznymi. [Data: Reports (9, 2, +more)].
  • Istoty cyberorganiczne i umiejętności techniczne: Postacie, takie jak Jones – cyberdelfin z wojskową przeszłością, oraz Molly Millions z jej umiejętnościami bojowymi w używaniu modułów kontrolnych, demonstrują syntezę organicznego i syntetycznego. [Data: Reports (11, 7, 2, +more)].

Wyszukiwanie Lokalne (Local Search)

Wyszukiwanie lokalne, w przeciwieństwie do globalnego, koncentruje się na konkretnych wzajemnych powiązaniach między encjami. Łączy ono istotne dane z grafu wiedzy z fragmentami oryginalnych dokumentów, co czyni je idealnym do szczegółowych pytań dotyczących konkretnych obiektów lub osób. Ten tryb jest szczególnie przydatny, gdy wymagane jest głębokie zrozumienie ról i powiązań poszczególnych elementów w systemie.

Google AdInline article slot

Przykład zapytania:

graphrag query "Who is JONES and what are his main relationships?" -m local

Przykład odpowiedzi pokazuje szczegółowe powiązania:

Jones to postać opisana jako cybernetyczny delfin z zaawansowanymi zdolnościami sensorycznymi, powiązany z obiektem "Funland". Jego główne funkcje obejmują zarządzanie zbiornikiem ze słodką wodą i współpracę z "Kalmą". Jones odgrywa kluczową rolę w operacjach ekstrakcji danych, zwłaszcza we współpracy z Molly i Johnnym, gdzie jego unikalna fizjologia pozwala uzyskać dostęp do danych z chipa Johnny'ego [Data: Entities (28, 33); Relationships (44, 51, +more)].

Główne powiązania Jonesa obejmują:

  • Z Molly Millions: Udział w operacji ekstrakcji danych z chipa Johnny'ego, demonstrując jego zdolności techniczne [Data: Entities (33); Relationships (44, 51, +more)].
  • Z Johnnym: Interakcja w ramach operacji ekstrakcji danych, gdzie Jones wykorzystuje swoje sensory do dostępu do informacji [Data: Entities (33); Relationships (44, 51, +more)].
  • Ze "Squid" (Nadprzewodzące interferometry kwantowe): Wykorzystanie urządzenia "Squid" do odczytywania śladów, co jest związane z technologiami wojskowymi [Data: Entities (19); Relationships (25, +more)].
  • Z Yakuza: Pośrednie powiązanie poprzez obawy Yakuzy, że "Squid" mogą wydobyć ślady ich programu z umysłu Johnny'ego [Data: Relationships (25); Entities (19)].

Rola Ollamy i Inne Tryby Wyszukiwania

Wykorzystanie Ollamy w połączeniu z GraphRAG pozwala na lokalne wdrażanie modeli językowych, co jest szczególnie istotne dla projektów o ograniczonych zasobach obliczeniowych lub ścisłych wymaganiach dotyczących poufności danych. Ollama wykazuje zdolność do efektywnej pracy nawet z modelami 4B, zapewniając funkcjonalność systemu RAG bez konieczności korzystania z kosztownych chmurowych LLM. Znacząco obniża to próg wejścia dla eksperymentów i wdrażania grafowych systemów RAG w środowisku korporacyjnym.

Oprócz wyszukiwania globalnego i lokalnego, GraphRAG oferuje również tryby BASIC i DRIFT:

  • BASIC Search: Stanowi standardowe wyszukiwanie wektorowe po fragmentach dokumentów. Służy jako punkt odniesienia do porównywania wydajności i jakości odpowiedzi z bardziej złożonymi podejściami grafowymi.
  • DRIFT Search: Funkcja ta jest pozycjonowana jako kluczowa zaleta GraphRAG, przypominając Query Expansion w tradycyjnych systemach RAG. Należy jednak pamiętać, że DRIFT Search jest zasobożerny i zajmuje znacznie więcej czasu na wykonanie, co może być krytyczne dla systemów z wysokimi wymaganiami dotyczącymi szybkości odpowiedzi.

Co Ważne

  • Przezwyciężanie ograniczeń wyszukiwania wektorowego: GraphRAG wykorzystuje grafy wiedzy do głębokiej analizy semantycznej i ekstrakcji informacji, przewyższając tradycyjne metody wektorowe pod względem dokładności i kontekstu.
  • Lokalne wdrożenie z Ollamą: Integracja z Ollamą umożliwia efektywne wykorzystanie GraphRAG z lokalnymi modelami językowymi, obniżając koszty obliczeniowe i zwiększając poufność danych.
  • Różnorodność strategii wyszukiwania: System oferuje tryby wyszukiwania globalnego, lokalnego, BASIC i DRIFT, z których każdy jest zoptymalizowany pod kątem konkretnych typów zapytań, od szerokich po szczegółowe.
  • Elastyczna konfiguracja i adaptacja: Możliwość modyfikacji promptów i analizy wygenerowanych grafów wiedzy (graph.graphml, community_reports.parquet) zapewnia wysoki stopień kontroli i adaptacji do specyficznych potrzeb projektu.
  • Zwiększenie trafności odpowiedzi: Dzięki strukturyzacji wiedzy w postaci grafu i zastosowaniu zaawansowanych algorytmów zapytań, GraphRAG znacząco poprawia jakość i trafność generowanych odpowiedzi, czyniąc je bardziej informatywnymi i precyzyjnymi.

— Editorial Team

Advertisement 728x90

Czytaj dalej