08 · LLM · 4 min czytania · aktualizacja
Czym jest chain-of-thought i dlaczego rozpisywanie kroków poprawia odpowiedzi LLM?
W skrócie
Łańcuch myśli to rozpisanie kroków pośrednich przed odpowiedzią. Daje modelowi więcej obliczeń i poprawia wyniki w zadaniach wieloetapowych.
Co to jest
Łańcuch myśli (ang. chain-of-thought, CoT) to technika, w której model językowy przed podaniem odpowiedzi wypisuje kolejne kroki rozumowania: wyniki pośrednie, założenia, cząstkowe wnioski. Wei i in. (2022) wywoływali go przykładami w prompcie, które zawierały rozwiązania krok po kroku; Kojima i in. (2022) pokazali, że często wystarcza dopisanie „pomyślmy krok po kroku”.
Efekt jest największy w zadaniach wymagających kilku kroków: arytmetyce tekstowej, logice, planowaniu, analizie kodu. W prostych pytaniach o fakt CoT niewiele zmienia, a czasem tylko wydłuża odpowiedź.
Współczesne modele „rozumujące” są dodatkowo trenowane, często uczeniem ze wzmocnieniem, żeby generować długie łańcuchy myśli przed odpowiedzią. Zasada pozostaje ta sama: najpierw tokeny rozumowania, potem wynik.
Mechanizm — dlaczego tak działa
Więcej tokenów to więcej obliczeń. Transformer wykonuje na każdy generowany token z grubsza stałą liczbę operacji — tyle, ile ma warstw. Jeśli odpowiedź pada od razu, cały problem trzeba rozwiązać w jednym przebiegu przez sieć. Każdy dodatkowy token rozumowania to kolejny pełny przebieg, w którym model może wykorzystać wszystko, co już napisał. Łańcuch myśli zamienia głęboki problem na wiele płytkich kroków.
Kontekst jako notatnik. Model nie ma pamięci roboczej poza kontekstem. Zapisany wynik pośredni („po sprzedaży zostały 3 jabłka”) staje się częścią wejścia i nie trzeba go „trzymać w głowie” w stanach ukrytych. To jak liczenie pisemne zamiast w pamięci.
Dopasowanie do danych treningowych. Pretrening zawiera mnóstwo rozwiązań krok po kroku: podręczniki, fora, dowody. Format CoT przenosi model w tę część rozkładu, gdzie poprawne rozumowanie jest typowe. Odpowiedź od razu przypomina natomiast teksty, w których wynik pada bez uzasadnienia — i bywa po prostu zgadywaniem.
Zależność od skali. U Weia i in. CoT pomagał dopiero dużym modelom; małe generowały płynne, ale błędne łańcuchy i często wypadały gorzej niż bez CoT. Rozumowanie musi więc już być w modelu — prompt je tylko wydobywa.
Zastrzeżenia. Łańcuch myśli nie musi wiernie opisywać tego, jak model faktycznie doszedł do odpowiedzi: badania pokazują przypadki, w których model podaje racjonalizację zgodną z odpowiedzią wybraną z innych powodów (Turpin i in., 2023). Pojedynczy błąd w łańcuchu przenosi się dalej. CoT zwiększa też koszt i opóźnienie, bo tokenów jest kilka–kilkadziesiąt razy więcej.
Samospójność. Wang i in. (2023) zaproponowali losowanie wielu łańcuchów (przy temperaturze > 0) i wybór odpowiedzi najczęstszej. Różne ścieżki rozumowania popełniają różne błędy, ale prowadzą do tej samej poprawnej odpowiedzi, więc głosowanie odfiltrowuje część pomyłek. Na GSM8K podniosło to wynik o 17,9 punktu procentowego względem pojedynczego łańcucha.
Na przykładzie
Zadanie: „Stołówka miała 23 jabłka. Zużyła 20 na obiad i dokupiła 6. Ile ma jabłek?”. Odpowiedź od razu wymaga złożenia dwóch działań w jednym przebiegu przez sieć — łatwo wtedy np. dodać 6 do 23 i zapomnieć o odjęciu. Z łańcuchem myśli: „Na początku 23. Po zużyciu 20 zostaje 23 − 20 = 3. Po dokupieniu 6 jest 3 + 6 = 9. Odpowiedź: 9.” Każdy krok jest trywialny. To właśnie przykład z pracy Weia i in. (2022), w której PaLM 540B na zbiorze GSM8K poprawił trafność z około 18% do 57%.
Dlaczego samospójność działa, widać z prostego rachunku. Załóżmy, że pojedynczy łańcuch daje dobrą odpowiedź z prawdopodobieństwem 0,6, a łańcuchy są niezależne. Przy głosowaniu większościowym z 5 łańcuchów prawdopodobieństwo dobrej odpowiedzi rośnie do 0,683, a z 15 — do 0,787. To przybliżenie pesymistyczne (zakłada, że błędne odpowiedzi zgadzają się ze sobą; w praktyce się rozpraszają) i optymistyczne zarazem (łańcuchy z jednego modelu nie są w pełni niezależne).
W praktyce
- Najprostsza forma: dopisz „Rozwiąż krok po kroku, a na końcu podaj wynik w linii «Odpowiedź: …»” — ułatwia to automatyczne odczytanie wyniku.
- W few-shot podawaj przykłady z pełnymi rozwiązaniami, nie tylko z wynikami.
- Samospójność: wygeneruj 5–20 odpowiedzi z temperaturą 0,5–1, wybierz najczęstszy wynik; koszt rośnie liniowo z liczbą próbek.
- Dla modeli rozumujących zwykle nie trzeba prosić o CoT — robią to same; liczy się wtedy budżet tokenów na myślenie.
- Typowy błąd: pokazywanie użytkownikowi łańcucha myśli jako „dowodu” poprawności. Weryfikuj wynik niezależnie, np. kodem.
Najczęstsze pytania
- Czy łańcuch myśli pokazuje, jak model naprawdę myśli?
- Nie zawsze. Często jest użytecznym śladem obliczeń, ale bywa racjonalizacją dopisaną do już wybranej odpowiedzi. Nie należy traktować go jako wiarygodnego wyjaśnienia decyzji modelu.
- Czy CoT pomaga w każdym zadaniu?
- Nie. Największe zyski dotyczą zadań wieloetapowych. W pytaniach o fakty, prostej klasyfikacji czy zadaniach wymagających szybkiej odpowiedzi daje niewiele, a kosztuje tokeny i czas.
- Czym CoT różni się od agenta?
- CoT to rozumowanie wyłącznie w tekście. Agent przeplata rozumowanie z działaniami — wywołaniami narzędzi, wyszukiwaniem, uruchamianiem kodu — i uwzględnia ich wyniki w kolejnych krokach.
Źródła
- Wei J. i in., 2022, „Chain-of-Thought Prompting Elicits Reasoning in Large Language Models”, NeurIPS 2022.
- Kojima T. i in., 2022, „Large Language Models are Zero-Shot Reasoners”, NeurIPS 2022.
- Wang X. i in., 2023, „Self-Consistency Improves Chain of Thought Reasoning in Language Models”, ICLR 2023.
- Turpin M. i in., 2023, „Language Models Don’t Always Say What They Think: Unfaithful Explanations in Chain-of-Thought Prompting”, NeurIPS 2023.
- Cobbe K. i in., 2021, „Training Verifiers to Solve Math Word Problems”, arXiv:2110.14168 (zbiór GSM8K).