Graph of Thoughts (PL)

From Systems analysis Wiki
Jump to navigation Jump to search

Graph-of-Thoughts (GoT) — to koncepcja z dziedziny pracy z dużymi modelami językowymi (LLM, Large Language Models), zakładająca przedstawienie procesu rozumowania modelu w postaci dowolnego grafu wzajemnie powiązanych „myśli" (pośrednich kroków rozwiązania)[1]. Podejście to zostało zaproponowane przez grupę badaczy pod kierownictwem Maciej Besty (Maciej Besta) z ETH Zurich i opublikowane w 2024 roku na konferencji AAAI[2]. Celem Graph-of-Thoughts jest rozszerzenie możliwości prompt engineering (inżynierii zapytań) poza granice istniejących schematów, takich jak Chain-of-Thought (łańcuch myśli) i Tree-of-Thoughts (drzewo myśli)[1]. W odróżnieniu od nich, podejście GoT pozwala dowolnemu wygenerowanemu przez model fragmentowi rozumowania (myśli) odwoływać się do dowolnego innego, tworząc sieć idei, a nie ściśle liniową lub drzewiastą strukturę[3]. Jak twierdzą autorzy, lepiej to odzwierciedla złożony, nieliniowy charakter ludzkiego myślenia i potencjalnie zbliża mechanizm rozumowania LLM do działania ludzkiego mózgu (z jego rekurentnymi połączeniami neuronowymi)[1][1].

Graph-of-Thoughts jest metodą formułowania zapytań (prompting framework), co oznacza, że nie wymaga dodatkowego uczenia ani dostrajania samego modelu — zamiast tego organizuje dialog z LLM w szczególny sposób, prowadząc model przez serię kroków-„myśli" połączonych według schematu grafu[1]. Taka struktura pozwala łączyć i ponownie wykorzystywać różne gałęzie rozumowania: na przykład model może równolegle rozpatrywać kilka hipotez lub części zadania, a następnie łączyć najbardziej udane z nich w jedno rozwiązanie[1]. W ujęciu encyklopedycznym Graph-of-Thoughts można zdefiniować jako uogólnienie wcześniejszych strategii strukturalnego rozumowania z LLM, zapewniające maksymalną elastyczność w organizacji procesów myślowych w ramach jednego złożonego zapytania[1].

Przesłanki: Chain-of-Thought i Tree-of-Thoughts

Metoda Graph-of-Thoughts wyrosła z wcześniejszych podejść wykorzystujących jawną strukturę rozumowania podczas pracy z modelami językowymi. Podstawowym podejściem jest Chain-of-Thought (CoT) – „łańcuch myśli". W metodzie CoT użytkownik proszony jest o umieszczanie w zapytaniu do modelu nie tylko treści zadania, ale i pośrednich kroków rozumowania prowadzących do odpowiedzi[1]. Badania wykazały, że takie podejście znacząco poprawia zdolność LLM do rozwiązywania trudnych zadań, na przykład matematycznych lub logicznych, przy czym bez zmiany parametrów samego modelu[1]. W istocie CoT skłania model do stopniowego rozkładania złożonego problemu na prostsze etapy, naśladując sekwencyjny tok myślenia.

Rozwinięciem tej idei stała się technika Self-Consistency: zamiast jednego łańcucha myśli generuje się kilka niezależnych łańcuchów, po czym wybiera się najbardziej przekonujący[1]. Pozwala to modelowi rozważyć różne podejścia do rozwiązania i zmniejsza ryzyko uzyskania błędnej odpowiedzi w wyniku podążania jedną nieprawidłową linią rozumowania. Niemniej jednak nawet wiele łańcuchów CoT nie daje możliwości „łączenia idei": każdy łańcuch jest rozpatrywany w izolacji, a model jedynie wybiera najlepszy, nie łącząc ich treści.

Aby przezwyciężyć to ograniczenie, zaproponowano schemat Tree-of-Thoughts (ToT) – „drzewo myśli"[1]. W ToT proces rozumowania zorganizowany jest jako drzewo: w każdym punkcie model może generować kilka wariantów rozwinięcia myśli (rozgałęzień), po czym następuje ocena tych pośrednich stanów i wybór najbardziej obiecujących do dalszego pogłębiania[1]. Korzystając z przeszukiwania drzewa (na przykład wszerz — BFS, lub w głąb – DFS) i możliwości cofania się do węzłów i rozwijania innej gałęzi, Tree-of-Thoughts daje modelowi językowemu bardziej wydajny mechanizm rozwiązywania trudnych zadań niż liniowy CoT[1]. Pojawiają się nowe możliwości, takie jak cofanie się i rewizja: jeśli jedna gałąź prowadzi do ślepego zaułka, można wrócić do poprzedniego węzła i spróbować innej ścieżki[1]. Metoda ta dowiodła swojej skuteczności w rozwiązywaniu zadań logicznych i przeszukiwania przestrzeni rozwiązań, gdzie przegląd wariantów i planowanie odgrywają dużą rolę.

Jednakże drzewo myśli narzuca też poważne ograniczenia: każda myśl (węzeł drzewa) należy tylko do jednej gałęzi, interakcje zachodzą jedynie między węzłami nadrzędnymi i podrzędnymi, a różne gałęzie nie mogą się łączyć ani wymieniać informacji[3]. Innymi słowy, krzyżowa wymiana idei (cross-pollination) między różnymi hipotezami w ramach jednego rozwiązania jest utrudniona: gałęzie drzewa rozwijają się niezależnie i łączą się jedynie w korzeniu, gdy wybierany jest najlepszy łańcuch rozumowania[3]. W rzeczywistym twórczym lub analitycznym myśleniu człowiek nierzadko wraca do wcześniej rozważanej idei i łączy ją z inną gałęzią rozumowania. Takie przeplatanie się myśli wykracza poza strukturę drzewa[1].

Obserwacje te doprowadziły badaczy do pomysłu bardziej elastycznej struktury – grafu, w którym połączenia między myślami nie są ograniczone i mogą tworzyć złożoną sieć. Jak odnotowano w przeglądzie analitycznym z 2024 roku, pojawienie się łańcuchów, drzew i grafów myśli odzwierciedla narodziny nowej klasy metod zdolnych znacząco wzmocnić możliwości LLM poprzez jawne strukturyzowanie procesu rozumowania[4]. W szczególności ustrukturyzowane podpowiedzi pozwoliły wyraźnie poprawić wyniki LLM w wielu dziedzinach — od rozwiązywania zadań matematycznych i łamigłówek logicznych po planowanie, a nawet pisanie twórcze[4]. Na tym tle ogólnym właśnie wyłonił się schemat Graph-of-Thoughts jako następny krok w rozwoju metod strukturalnego prompting.

Koncepcja Graph-of-Thoughts: grafowa struktura myśli

Graph-of-Thoughts proponuje przedstawienie toku wykonywania zadań przez model językowy w postaci dowolnego skierowanego grafu. Formalnie, graf myśli w GoT to zbiór wierzchołków (myśli) i krawędzi (zależności między myślami)[1]. Wierzchołkiem grafu jest pojedyncza myśl modelu – pod tym terminem rozumie się dowolną merytoryczną jednostkę zależną od kontekstu zadania: może to być pojedyncze twierdzenie, krok rozwiązania, fragment tekstu, akapit, blok kodu itp., wygenerowany przez model w odpowiedzi na zapytanie[1][1]. Krawędź między wierzchołkami oznacza, że jedna myśl została wykorzystana przy generowaniu innej — tj. w podpowiedzi jawnie wskazano, że model powinien oprzeć się na określonym wcześniejszym wyniku, aby uzyskać nowy[1]. Krawędzie rejestrują zatem zależności: od jakich wcześniej uzyskanych danych zależy bieżący krok rozumowania.

Najważniejszą różnicą GoT względem prostszych struktur jest możliwość agregacji i łączenia myśli. W grafie dopuszcza się, że wierzchołek (nowa myśl) może mieć kilku poprzedników[1]. Odpowiada to sytuacji, gdy dwa lub więcej oddzielnych łańcuchów rozumowania łączy się: model otrzymuje jako wejście kilka wcześniej wygenerowanych fragmentów i na ich podstawie formułuje syntetyczny wniosek[1]. Na przykład rozwiązując zadanie, model może równolegle rozważyć dwie hipotezy, a następnie stworzyć nową myśl, która łączy zalety obu hipotez i eliminuje ich wady[1][1]. Takie operacje agregacji były niemożliwe w ramach schematu drzewiastego (gdzie każdy węzeł ma tylko jednego rodzica), lecz naturalnie realizują się w grafowym[1]. Oprócz łączenia idei, graf pozwala wprowadzać również sprzężenia zwrotne (feedback loops): co do zasady struktura GoT nie wyklucza cykli, tzn. model może zwrócić pewien wynik do wcześniejszego etapu rozumowania w celu ponownego przetworzenia lub doprecyzowania[1]. Autorzy wiążą to z analogią do rekurencyjnych połączeń w sieciach neuronowych mózgu, gdzie wyjście jednej grupy neuronów może oddziaływać zwrotnie na poprzednie warstwy, tworząc zamknięte pętle rozważań[1].

Praktyczna realizacja Graph-of-Thoughts wymaga szczególnej organizacji dialogu z modelem. Badacze opracowali modularną ramę architektoniczną dla GoT[1]. Wyróżnia ona komponenty do: (1) precyzyjnej kontroli nad poszczególnymi krokami (myślami) — „kontroler" zarządza kolejnością i logiką generowania myśli; (2) dynamicznego formowania podpowiedzi – dla każdego kroku specjalny moduł tworzy prompt na podstawie bieżącego kontekstu i wybranych wierzchołków grafu (poprzedników); (3) parsowania i oceny odpowiedzi modelu — fragmenty otrzymane od LLM są analizowane i oceniane pod kątem jakości, użyteczności lub zgodności z kryteriami zadania[5]. Architektura GoT pozwala zatem w trybie interaktywnym budować graf rozumowania: po każdym kroku podejmowana jest decyzja, jakie nowe wierzchołki dodać, jak połączyć je z poprzednimi, które gałęzie kontynuować lub scalić. Dzięki modularności taki framework można rozszerzać o nowe typy „transformacji myśli" (na przykład specjalne operacje na grafie) i dostosowywać do różnych modeli (autorzy z powodzeniem testowali GoT z LLM z rodzin GPT-3.5, GPT-4, LLAMA 2 i innych)[1]. Ważną właściwością jest to, że GoT nie wymaga zmiany parametrów samego modelu językowego — wszystkie udoskonalenia osiągane są dzięki bardziej przemyślanemu konstruowaniu zapytań i przetwarzaniu odpowiedzi[1]. Oznacza to, że istniejące potężne LLM mogą być używane „takimi jakimi są", a Graph-of-Thoughts pełni rolę nadbudowy zarządzającej ich pracą.

Należy zaznaczyć, że termin Graph-of-Thought pojawił się również w innym, niezależnym opracowaniu, odmiennym od podejścia Besty i współpracowników. W 2023 roku Yao Yao i współautorzy zaproponowali metodykę usprawnienia reasoning w LLM za pomocą dodatkowego modułu-enkodera grafu myśli, co wymagało doszkolenia modelu[6]. Ich praca zatytułowana „Beyond Chain-of-Thought, Effective Graph-of-Thought Reasoning in Language Models" opisuje dwuetapową architekturę: najpierw generowany jest graf wzajemnie powiązanych pośrednich twierdzeń, następnie jest on przekształcany przez specjalny enkoder i integrowany z modelem za pomocą mechanizmu gated fusion[6]. Takie hybrydowe podejście z uczeniem wykazało pewną poprawę dokładności w zadaniach — na przykład na multimodalnym zestawie pytań ScienceQA dokładność wzrosła z 85,2% do 87,6% przy użyciu modelu T5-base[6]. Jednak podejście to, mimo podobnej nazwy, zasadniczo się różni: wymaga modyfikacji modelu (fine-tuning) i nie jest schematem prompt engineering. Autorzy oryginalnego podejścia GoT (AAAI 2024) wprost wskazują, że nie rozpatrują w swojej pracy tego modelu Yao i in., ponieważ koncentrują się właśnie na metodach bez aktualizacji parametrów LLM[1]. Tym samym Graph-of-Thoughts w kontekście niniejszego przeglądu jest właśnie frameworkiem na poziomie podpowiedzi, a nie modyfikacją architektury sieci neuronowej.

Zastosowanie i wyniki

Autorzy GoT zademonstrowali jego zalety na szeregu zadań, które trudno rozwiązać za pomocą jednego bezpośredniego zapytania (input-output prompting) lub nawet łańcucha myśli. Charakterystyczną cechą takich zadań jest możliwość ich rozkładu na kilka części (podzadań), oddzielnego rozwiązania tych części, a następnie syntezy pełnej odpowiedzi z cząstkowych wyników[1]. Wśród rozpatrywanych przykładów znalazły się: sortowanie nieuporządkowanej listy, zliczanie słów kluczowych w tekście (np. na potrzeby streszczania dokumentu), wykonywanie operacji na zbiorach (suma, iloczyn list itp.), a także scalanie dokumentów tekstowych (łączenie informacji z kilku źródeł)[1]. We wszystkich tych przypadkach Graph-of-Thoughts pozwala w naturalny sposób dekomponować zadanie. Na przykład przy sortowaniu lista dzielona jest na części, każda część sortowana jest oddzielnie jako niezależna gałąź myśli, po czym wyniki są łączone (imitując algorytm podobny do merge sort); albo przy analizie tekstów model może równolegle wydobywać informacje z różnych dokumentów, a następnie je scalać.

Wyniki eksperymentów potwierdzają skuteczność schematu GoT. Zgodnie z raportem Besty i współpracowników, w zadaniu sortowania graf myśli pozwolił istotnie poprawić jakość rozwiązania w porównaniu z wcześniejszymi podejściami[1]. Dokładność sortowania przy użyciu GoT okazała się o 70% wyższa niż przy prostym łańcuchu myśli CoT i o 62% wyższa niż przy drzewie myśli ToT[1]. Jednocześnie metoda zmniejsza zużycie zasobów obliczeniowych: liczba odwołań do modelu (a co za tym idzie tokenizowana objętość zapytań) zmniejszyła się o 31% w porównaniu z Tree-of-Thoughts dla tego samego zadania[1]. Oznacza to, że grafowa organizacja rozumowania nie tylko poprawiła końcowy wynik, ale i uczyniła rozwiązanie bardziej ekonomicznym, unikając zbędnych obliczeń dzięki sprawnemu łączeniu pośrednich wniosków. Podobne korzyści uzyskano również w innych zadaniach testowych, szczególnie tam, gdzie wymagana jest agregacja różnorodnych informacji. Badacze zaznaczają, że GoT jest najbardziej efektywny właśnie dla zadań złożonych, składających się z kilku elementów: „Graph-of-Thoughts szczególnie dobrze nadaje się do zadań, które w naturalny sposób dają się rozłożyć na mniejsze podzadania, rozwiązywane oddzielnie z następującym po tym scaleniem wyników"[1]. W takich przypadkach graf myśli jest w stanie objąć wszystkie aspekty problemu i zsyntetyzować rozwiązanie o bardziej kompletnym charakterze niż przy podążaniu jedną linią rozumowania.

Dla głębszego zrozumienia, dlaczego jeden sposób budowania podpowiedzi jest lepszy od innego, w pracy z 2024 roku zaproponowano specjalną metrykę – „objętość myśli" (volume of a thought)[1]. Objętość zdefiniowana jest dla każdej pojedynczej myśli (wierzchołka grafu) jako liczba innych myśli, z których można po skierowanych krawędziach dotrzeć do danej (mówiąc prościej, ilu pośrednim krokom zawdzięcza ona swoją informację)[1]. W Chain-of-Thought każda myśl opiera się jedynie na jednym poprzedniku, zatem jej objętość wynosi 1 (łańcuch liniowy). W drzewie myśli objętość może być większa, ale nadal ograniczona strukturą pojedynczej gałęzi. W grafie zaś, dzięki agregacji, pojedynczy wierzchołek może akumulować wkład wielu innych — jego „objętość" jest istotnie wyższa[1]. Wykazano, że GoT pozwala końcowym wnioskom opierać się na znacznie większej objętości poprzedzających myśli, łącząc ich treść. Fakt ten odzwierciedla głębsze pokrycie przestrzeni rozwiązań i stanowi ilościowe wyjaśnienie przewagi grafowego rozumowania nad prostszymi schematami.

Porównanie i znaczenie

Graph-of-Thoughts reprezentuje dziś najbardziej uogólnioną formę strukturalnego prompting-u dla LLM. W tabelach porównawczych różnych schematów (CoT, CoT z samospójnością, ToT i GoT) podkreśla się, że jedynie GoT obsługuje dowolną topologię procesu myślowego[1]. Obejmuje możliwości wszystkich poprzednich podejść: może działać zarówno jako jeden łańcuch, jak i jako drzewo z rozgałęzieniami, jak i jako kombinacja wielu łańcuchów, jeśli odpowiada to rozwiązaniu zadania[1]. Najważniejsze jest to, że nie ma sztywnych ograniczeń w połączeniach między krokami, co teoretycznie czyni przestrzeń możliwych strategii rozumowania maksymalnie szeroką[1].

Ważne jest zrozumienie, że elastyczność GoT ma swoją cenę w postaci większej złożoności sterowania. Realizacja grafu myśli wymaga zewnętrznego algorytmu-orkiestratora, który będzie decydował, kiedy i jakie myśli generować, które z nich wybierać lub łączyć, kiedy zatrzymać proces i zwrócić odpowiedź. W prostym CoT takich decyzji nie trzeba podejmować — model sam generuje liniowe rozumowanie do końca. W ToT część sterowania spoczywa na algorytmie przeszukiwania drzewa (na przykład wybór węzła do rozwinięcia). W GoT zaś stopień swobody jest wyższy, a skuteczność metody zależy od jakości heurystyk oceniających wyniki pośrednie oraz od właściwego konstruowania podpowiedzi na każdym kroku[1]. Tym samym Graph-of-Thoughts można postrzegać nie tylko jako format zapytania, lecz jako strukturę rozumowania nakładaną na proces interakcji z LLM — swoisty dynamiczny plan, według którego model rozwiązuje zadanie, a użytkownik (lub program-kontroler) kieruje tym procesem.

Pojawienie się Graph-of-Thoughts odzwierciedla dążenie do uczynienia pracy dużych modeli językowych bardziej interpretowalną i sterowalną. Jawnie definiując strukturę rozwiązania, badacze nie tylko osiągają lepszą jakość, ale i zyskują możliwość analizowania, w jaki sposób model doszedł do tego lub innego wniosku. Zbliża to podejścia w NLP z klasycznymi metodami algorytmicznego przeszukiwania i planowania, jednak wykonanie kroków zostaje teraz powierzone neuronowemu modelowi. Szereg ekspertów postrzega ustrukturyzowane podpowiedzi (łańcuchy, drzewa, grafy myśli) jako obiecujący kierunek, zdolny przezwyciężyć ograniczenia „czarnej skrzynki" w głębokich modelach i zwiększyć niezawodność ich działania w trudnych zadaniach[4][4].

Metodologia Graph-of-Thoughts nadal aktywnie się rozwija. Kod i przykłady implementacji GoT autorzy udostępnili publicznie[1], co pozwoliło społeczności eksperymentować z nowym podejściem. Pojawiają się też rozszerzenia: na przykład multimodalne wersje grafu myśli łączące tekst z obrazami i innymi rodzajami danych[3][3], a także próby bezpośredniej integracji idei GoT z architekturą modeli (jak we wspomnianej pracy Yao et al., 2023). W 2025 roku ukazał się szczegółowy przegląd-taksonomia metod Chain-of-Thought, Tree-of-Thoughts i Graph-of-Thoughts, systematyzujący zgromadzoną wiedzę i opisujący teoretyczne podstawy tych podejść[4][4]. Wszystko to świadczy o dużym zainteresowaniu środowiska naukowego strukturalnym zarządzaniem myśleniem LLM. Graph-of-Thoughts zdążył już udowodnić swoją skuteczność jako narzędzie do rozwiązywania złożonych zadań i prawdopodobnie stanie się podstawą dla dalszych innowacji w dziedzinie rozwiązań AI łączących moc dużych modeli językowych z przejrzystością i logiką klasycznych algorytmów.

Odnośniki

  • Oryginalna artykuł „Graph of Thoughts: Solving Elaborate Problems with Large Language Models" na arXiv
  • Wersja HTML oryginalnego artykułu
  • Przegląd „Demystifying Chains, Trees, and Graphs of Thoughts" na arXiv
  • Artykuł „Beyond Chain-of-Thought, Effective Graph-of-Thought Reasoning in Language Models" na arXiv
  • Multimodal Graph-of-Thoughts — artykuł Deepgram
  • LLMs Graph of Thoughts Framework — artykuł na Medium

Literatura

  • Besta, M. et al. (2024). Graph of Thoughts: Solving Elaborate Problems with Large Language Models. arXiv:2308.09687.
  • Yao, S. et al. (2023). Tree of Thoughts: Deliberate Problem Solving with Large Language Models. arXiv:2305.10601.
  • Yao, Y. et al. (2023). Beyond Chain-of-Thought: Effective Graph-of-Thought Reasoning in Language Models. arXiv:2305.16582.
  • Wei, J. et al. (2022). Chain of Thought Prompting Elicits Reasoning in Large Language Models. arXiv:2201.11903.
  • Wang, X. et al. (2022). Self-Consistency Improves Chain of Thought Reasoning in Language Models. arXiv:2203.11171.
  • Wei, J. et al. (2024). Demystifying Chains, Trees, and Graphs of Thoughts. arXiv:2401.14295.
  • Huang, S. et al. (2023). Language Is Not All You Need: Aligning Perception with Language Models (Kosmos-1). arXiv:2302.14045.
  • Mitra, C. et al. (2024). Compositional Chain-of-Thought Prompting for Large Multimodal Models. In CVPR 2024. PDF.
  • Zheng, G. et al. (2023). DDCoT: Duty-Distinct Chain-of-Thought Prompting for Multimodal Reasoning in Language Models. arXiv:2310.16436.
  • Mu, J. et al. (2023). Learning to Compress Prompts with Gist Tokens. arXiv:2304.08467.

Przypisy

  1. 1.00 1.01 1.02 1.03 1.04 1.05 1.06 1.07 1.08 1.09 1.10 1.11 1.12 1.13 1.14 1.15 1.16 1.17 1.18 1.19 1.20 1.21 1.22 1.23 1.24 1.25 1.26 1.27 1.28 1.29 1.30 1.31 1.32 1.33 1.34 1.35 1.36 1.37 1.38 1.39 1.40 1.41 1.42 1.43 Besta, Maciej et al. «Graph of Thoughts: Solving Elaborate Problems with Large Language Models». ar5iv.labs.arxiv.org. [1]
  2. Besta, Maciej et al. «Graph of Thoughts: Solving Elaborate Problems with Large Language Models». arXiv. [2]
  3. 3.0 3.1 3.2 3.3 3.4 Grygiel, Jacek. «Multimodal Graph-of-Thoughts: How Text, Images, and Graphs Lead to Better Reasoning». Deepgram. [3]
  4. 4.0 4.1 4.2 4.3 4.4 4.5 Wei, Jason et al. «Demystifying Chains, Trees, and Graphs of Thoughts». arXiv. [4]
  5. Wo, Jacek. «LLMs Graph of Thoughts Framework. Case study». Medium. [5]
  6. 6.0 6.1 6.2 Yao, Yuqing et al. «Beyond Chain-of-Thought, Effective Graph-of-Thought Reasoning in Language Models». arXiv. [6]