Czym jest promptowanie łańcuchem myśli?
Promptowanie łańcuchem myśli (Chain-of-Thought – CoT) to technika stosowana w inżynierii promptów w celu usprawnienia zdolności rozumowania dużych modeli językowych (LLM). Zamiast po prostu prosić o odpowiedź, CoT kieruje model tak, aby przedstawił pośrednie kroki rozumowania, które prowadzą do końcowego wyniku.
Wyobraź sobie, jak rozwiązujesz zadanie matematyczne, zapisując każdy kolejny krok. Podobnie CoT zachęca model do „myślenia na głos”, rozbijając złożone zadania na prostsze, sekwencyjne etapy. Takie podejście pomaga modelowi radzić sobie z bardziej skomplikowanymi pytaniami, które wymagają logicznego myślenia lub wieloetapowego rozumowania.
Technika ta została wprowadzona przez badaczy Wei i in. w 2022 roku i wykazała niezwykłą skuteczność w umożliwianiu modelom LLM dokładniejszego rozwiązywania złożonych problemów.
Jak to działa?
Promptowanie CoT polega na włączeniu do promptu przykładów, w których każdemu pytaniu towarzyszą szczegółowe kroki rozumowania, a następnie odpowiedź. Oto jak to funkcjonuje:
- Dostarczenie przykładów z rozumowaniem: W prompcie zamieść jeden lub więcej przykładów, w których po pytaniu następuje rozumowanie krok po kroku prowadzące do odpowiedzi.
- Rozpoznawanie wzorca: LLM rozpoznaje wzorzec przedstawiania rozumowania przed odpowiedzią na podstawie podanych przykładów.
- Odpowiedź modelu: Po otrzymaniu nowego pytania model podąża za ustalonym wzorcem i generuje własny łańcuch myśli, prowadząc do odpowiedzi.
Metoda ta wykorzystuje zdolność modelu do identyfikowania i replikowania wzorców z promptu. Co ciekawe, czasami nawet jeden przykład wystarczy, aby model zrozumiał zasadę i przedstawił szczegółowe rozumowanie w kolejnych pytaniach.
Kiedy go używać?
Promptowania łańcuchem myśli należy używać, gdy:
- Rozwiązujesz złożone zadania: Jeśli zadanie wymaga wieloetapowego rozumowania, dedukcji logicznej lub obliczeń, CoT może pomóc modelowi wygenerować poprawną odpowiedź poprzez przejście przez wszystkie kroki.
- Chcesz poprawić dokładność: Dzięki rozbiciu problemu na części model rzadziej popełnia błędy, które mogłyby wystąpić, gdyby próbował podać odpowiedź „za jednym razem”.
- Zależy Ci na przejrzystości: Gdy chcesz wiedzieć, jak model doszedł do swojej odpowiedzi, CoT ujawnia jego proces myślowy, co może być cenne w celach weryfikacyjnych i edukacyjnych.
- Dysponujesz ograniczoną liczbą przykładów: CoT może być skuteczny nawet przy minimalnej liczbie demonstracji.
Praktyczne przykłady
Przyjrzyjmy się, jak promptowanie łańcuchem myśli może poprawić wyniki modelu na konkretnych przykładach.
Bez promptowania łańcuchem myśli
Prompt:
Kupiłem na targu 10 jabłek. Dałem 2 jabłka sąsiadowi i 2 hydraulikowi. Potem kupiłem jeszcze 5 jabłek i zjadłem jedno. Ile jabłek mi zostało?
Wynik modelu:
11 jabłek
Wyjaśnienie:
Model podał błędną odpowiedź, ponieważ prawdopodobnie nie przetworzył wszystkich kroków niezbędnych do dokładnego rozwiązania problemu.
Z promptowaniem łańcuchem myśli
Zachęcając model do „myślenia krok po kroku”, możemy pomóc mu dojść do właściwej odpowiedzi.
Prompt:
Kupiłem na targu 10 jabłek. Dałem 2 jabłka sąsiadowi i 2 hydraulikowi. Potem kupiłem jeszcze 5 jabłek i zjadłem jedno. Ile jabłek mi zostało? Pomyślmy krok po kroku.
Wynik modelu:
- Zacząłem od 10 jabłek.
- Dałem 2 sąsiadowi: 10 - 2 = 8 jabłek.
- Dałem 2 hydraulikowi: 8 - 2 = 6 jabłek.
- Kupiłem 5 dodatkowych jabłek: 6 + 5 = 11 jabłek.
- Zjadłem 1 jabłko: 11 - 1 = 10 jabłek.
- Odpowiedź: Zostało Ci 10 jabłek.
Wyjaśnienie:
Poprzez nakłonienie modelu do myślenia krok po kroku, precyzyjnie przetwarza on każdy etap problemu i dochodzi do poprawnego wyniku.
W prompcie systemowym
Możesz włączyć promptowanie CoT do promptu systemowego, aby ustawić zachowanie modelu dla całej interakcji.
Prompt systemowy:
Jesteś pomocnym asystentem, który rozwiązuje problemy, wyjaśniając każdy krok swojego rozumowania przed podaniem ostatecznej odpowiedzi.
Prompt użytkownika:
Liczby nieparzyste w tej grupie sumują się do liczby parzystej: 15, 32, 5, 13, 82, 7, 1. A:
Wynik modelu:
Suma wszystkich liczb nieparzystych (15, 5, 13, 7, 1) wynosi 41. Odpowiedź: Fałsz.
Wyjaśnienie:
Model stosuje się do instrukcji wyjaśnienia rozumowania przed udzieleniem odpowiedzi.
W prompcie użytkownika
Alternatywnie możesz zawrzeć przykłady bezpośrednio w prompcie użytkownika, aby pokierować modelem.
Prompt użytkownika:
Liczby nieparzyste w tej grupie sumują się do liczby parzystej: 4, 8, 9, 15, 12, 2, 1. A: Suma wszystkich liczb nieparzystych (9, 15, 1) wynosi 25. Odpowiedź: Fałsz. Liczby nieparzyste w tej grupie sumują się do liczby parzystej: 15, 32, 5, 13, 82, 7, 1. A:
Wynik modelu:
Suma wszystkich liczb nieparzystych (15, 5, 13, 7, 1) wynosi 41. Odpowiedź: Fałsz.
Wyjaśnienie:
Dzięki dostarczeniu przykładu demonstrującego łańcuch myśli, model naśladuje ten wzór i przedstawia rozumowanie przed udzieleniem odpowiedzi.
Zero-Shot Chain-of-Thought
Zero-Shot Chain-of-Thought to wariant, w którym kierujemy model do myślenia krok po kroku bez podawania jakichkolwiek przykładów. Technika ta została wprowadzona przez Kojimę i in. w 2022 roku i polega na dopisaniu do pytania prostej frazy, takiej jak „Pomyślmy krok po kroku”.
Prompt:
Kupiłem na targu 10 jabłek. Dałem 2 jabłka sąsiadowi i 2 hydraulikowi. Potem kupiłem jeszcze 5 jabłek i zjadłem jedno. Ile jabłek mi zostało? Pomyślmy krok po kroku.
Wynik modelu:
- Zacząłem od 10 jabłek.
- Dałem 2 sąsiadowi: 10 - 2 = 8 jabłek.
- Dałem 2 hydraulikowi: 8 - 2 = 6 jabłek.
- Kupiłem 5 dodatkowych jabłek: 6 + 5 = 11 jabłek.
- Zjadłem 1 jabłko: 11 - 1 = 10 jabłek.
- Odpowiedź: Zostało Ci 10 jabłek.
Wyjaśnienie:
Nawet bez wcześniejszych przykładów model przedstawia szczegółowe kroki rozumowania, co prowadzi do poprawnej odpowiedzi.
Automatyczny łańcuch myśli (Auto-CoT)
Tworzenie skutecznych promptów CoT może być czasochłonne, zwłaszcza przy opracowywaniu różnorodnych i dokładnych przykładów. Automatyczny łańcuch myśli (Auto-CoT) to podejście zaproponowane przez Zhang i in. (2022) w celu zautomatyzowania tego procesu.
Jak to działa:
- Grupowanie pytań (Klasteryzacja):
- Cel: Zapewnienie różnorodności przykładów.
- Metoda: Automatyczne grupowanie pytań z zestawu danych w klastry na podstawie podobieństwa.
- Próbkowanie demonstracji:
- Cel: Wybór reprezentatywnych pytań obejmujących różne aspekty zadania.
- Metoda: Wybór jednego pytania z każdego klastra.
- Generowanie łańcuchów rozumowania: Wykorzystanie możliwości Zero-Shot CoT modelu poprzez promptowanie go frazą „Pomyślmy krok po kroku” w celu wygenerowania rozumowania dla tych pytań.
Zalety:
- Redukcja wysiłku ręcznego: Eliminuje konieczność ręcznego tworzenia przykładów.
- Poprawa różnorodności: Różnorodne przykłady pomagają modelowi lepiej generalizować wiedzę na nowe pytania.
- Minimalizacja błędów: Choć automatycznie generowane rozumowanie może zawierać błędy, różnorodność i liczba przykładów pomagają zrównoważyć potencjalne nieścisłości.
Przykład promptu Auto-CoT:
Pomyślmy krok po kroku, aby rozwiązać następujące pytanie.
Pytanie: Jeśli pojemnik mieści 30 litrów, odlejesz 15 litrów, a następnie dolejesz 10 litrów, ile cieczy znajduje się teraz w pojemniku?
Rozumowanie modelu:
- Zaczynamy od 30 litrów.
- Odjęcie 15 litrów: 30 - 15 = 15 litrów.
- Dodanie 10 litrów: 15 + 10 = 25 litrów.
- Odpowiedź: Pojemnik mieści teraz 25 litrów.
Wyjaśnienie:
Dzięki Auto-CoT można szybko wygenerować kroki rozumowania dla różnych pytań, które mogą następnie służyć jako przykłady w promptach. Należy jednak pamiętać, że modele LLM nie są kalkulatorami, więc wciąż mogą popełniać błędy przy bardziej skomplikowanych obliczeniach matematycznych!