Techniki Rozumowania AI - Tree of Thoughts, Self-Consistency, ReAct
Zaawansowane techniki rozumowania
Dział zatytułowany „Zaawansowane techniki rozumowania”Podstawowe techniki promptowania (zero-shot, few-shot, CoT) sprawdzają się w większości sytuacji, ale część problemów się im wymyka. Zebrałem tu sześć podejść na takie właśnie przypadki - każde z nich rozwiązuje inny rodzaj kłopotu, więc zwróć uwagę nie tylko na to, jak działają, ale i kiedy je stosować.
Self-Consistency (Samospójność)
Dział zatytułowany „Self-Consistency (Samospójność)”Self-Consistency to technika zaproponowana przez Wang et al. (2022), która zastępuje standardowe generowanie odpowiedzi próbkowaniem wielu ścieżek rozumowania.
Pytanie: “Gdy miałem 6 lat, moja siostra miała połowę mojego wieku. Teraz mam 70 lat. Ile lat ma moja siostra?”
Odpowiedź 1:Gdy miałem 6 lat, siostra miała 6/2 = 3 lata.Różnica wieku: 6 - 3 = 3 lata.Teraz mam 70 lat, więc siostra ma: 70 - 3 = 67 lat.
Odpowiedź 2:W wieku 6 lat siostra miała 3 lata (połowa z 6).Siostra jest 3 lata młodsza.Mam 70 lat, siostra ma 70 - 3 = 67 lat.
Odpowiedź 3:Połowa z 6 to 3. Teraz mam 70, więc siostrateż ma 70/2 = 35 lat. (BŁĘDNE rozumowanie!)Finalna odpowiedź: 67 lat (wybrana przez głosowanie większościowe - 2 z 3 odpowiedzi)
Kiedy stosować Self-Consistency? Zadania arytmetyczne i matematyczne, rozumowanie zdroworozsądkowe, problemy z wieloma możliwymi ścieżkami rozwiązania, gdy zależy Ci na wysokiej dokładności.
Tree of Thoughts (ToT) - Drzewo Myśli
Dział zatytułowany „Tree of Thoughts (ToT) - Drzewo Myśli”Tree of Thoughts to framework zaproponowany przez Yao et al. (2023), który utrzymuje drzewo myśli jako pośrednie kroki rozwiązywania problemów. To rozszerzenie Chain-of-Thought, które pozwala na eksplorację wielu ścieżek jednocześnie.
Jak działa ToT? 1. Generowanie myśli - każdy krok rozumowania to węzeł w drzewie. 2. Ewaluacja - model ocenia każdą myśl (np. “pewne/możliwe/niemożliwe”). 3. Eksploracja - algorytmy przeszukiwania (BFS, DFS) eksplorują obiecujące ścieżki. 4. Backtracking - możliwość cofnięcia się i wybrania innej ścieżki.
Przykład: Gra w 24. Cel: użyj 4 liczb i operacji matematycznych (+, -, *, /), aby uzyskać 24. Liczby: 4, 9, 10, 13.
Poziom 1 - pierwsze operacje:├── 13 - 9 = 4 → mamy: 4, 4, 10 [możliwe]├── 9 - 4 = 5 → mamy: 5, 10, 13 [możliwe]├── 10 + 4 = 14 → mamy: 14, 9, 13 [możliwe]└── 4 * 9 = 36 → mamy: 36, 10, 13 [możliwe]
Poziom 2 - dla gałęzi (13 - 9 = 4):├── 10 - 4 = 6 → mamy: 4, 6 [możliwe]│ └── 4 * 6 = 24 ✓ [ROZWIĄZANIE!]├── 4 + 4 = 8 → mamy: 8, 10 [możliwe]└── 4 * 4 = 16 → mamy: 16, 10 [możliwe]
Rozwiązanie: (13 - 9) * (10 - 4) = 4 * 6 = 24Praktyczne zastosowanie ToT w promptach:
Rozwiąż problem używając drzewa myśli.Na każdym etapie:1. Wygeneruj 2-3 możliwe kolejne kroki2. Oceń każdy krok jako: pewny, możliwy, lub niemożliwy3. Wybierz najlepszy krok i kontynuuj4. Jeśli utkniesz, cofnij się i wybierz inną ścieżkę
Problem: [Twój problem]
Drzewo myśli:Generate Knowledge Prompting
Dział zatytułowany „Generate Knowledge Prompting”Generate Knowledge to technika, w której model najpierw generuje wiedzę potrzebną do odpowiedzi, a następnie wykorzystuje ją do wsparcia predykcji: 1. Generowanie wiedzy - model tworzy fakty związane z pytaniem. 2. Integracja - wiedza łączy się z pytaniem. 3. Odpowiedź - model odpowiada wspierany faktami.
Pytanie: “Czy w golfie chodzi o uzyskanie wyższej punktacji niż inni?”
Bez generowania wiedzy:Pytanie: Czy w golfie chodzi o uzyskanie wyższej punktacji niż inni?Odpowiedź: Tak
(BŁĘDNA odpowiedź!)Z generowaniem wiedzy:Najpierw wygeneruj wiedzę związaną z pytaniem,a następnie odpowiedz.
Pytanie: Czy w golfie chodzi o uzyskanie wyższej punktacji niż inni?
Wiedza: Golf to sport, w którym gracze uderzają piłkę kijem,starając się wbić ją do dołka. Celem golfa jest ukończeniekażdego dołka (i całej rundy) jak najmniejszą liczbą uderzeń.W przeciwieństwie do większości sportów, w golfie wygrywagracz z NAJNIŻSZĄ, nie najwyższą liczbą punktów.
Odpowiedź: Nie. W golfie wygrywa osoba z najniższą punktacją.
(POPRAWNA odpowiedź!)RAG (Retrieval Augmented Generation)
Dział zatytułowany „RAG (Retrieval Augmented Generation)”RAG to metoda łącząca wyszukiwanie informacji z generowaniem tekstu. Model ma dostęp do zewnętrznej bazy wiedzy, z której może pobierać aktualne i specjalistyczne informacje.
Jak działa RAG? 1. Pytanie użytkownika → “Jaka jest aktualna cena akcji Apple?”. 2. Wyszukiwanie → system wyszukuje odpowiednie dokumenty/dane. 3. Kontekst → znalezione informacje są dołączane do prompta. 4. Generowanie → model generuje odpowiedź na podstawie kontekstu.
Odpowiedz na pytanie bazując WYŁĄCZNIE na poniższym kontekście.Jeśli kontekst nie zawiera odpowiedzi, powiedz "Nie wiem".
Kontekst:"""[Artykuł pobrany z bazy wiedzy]Apple Inc. ogłosiło wyniki za Q4 2024. Przychody wyniosły94.9 miliarda dolarów, co oznacza wzrost o 6% rok do roku.iPhone pozostaje głównym źródłem przychodów z 46.2 mld USD."""
Pytanie: Jakie były przychody Apple w Q4 2024?
Odpowiedź:Zalety RAG: aktualność (dostęp do najnowszych informacji), dokładność (odpowiedzi oparte na faktach, nie domysłach), transparentność (można wskazać źródło informacji), elastyczność (łatwa aktualizacja bazy wiedzy bez przetrenowywania modelu).
ReAct (Reasoning + Acting)
Dział zatytułowany „ReAct (Reasoning + Acting)”ReAct to framework łączący rozumowanie z działaniem. Model nie tylko “myśli”, ale również podejmuje akcje (np. wyszukiwanie, obliczenia) i obserwuje ich wyniki.
Cykl ReAct: 1. Thought (Myśl) - model analizuje sytuację i planuje. 2. Action (Akcja) - model wykonuje działanie (np. wyszukiwanie). 3. Observation (Obserwacja) - model otrzymuje wynik akcji. 4. Repeat - cykl powtarza się aż do uzyskania odpowiedzi.
Pytanie: Kto jest twórcą języka, w którym napisano Django?
Thought 1: Muszę najpierw sprawdzić, w jakim języku napisano Django.Action 1: Search[Django framework programming language]Observation 1: Django to framework webowy napisany w Pythonie.
Thought 2: Django jest napisane w Pythonie. Teraz muszę znaleźćtwórcę Pythona.Action 2: Search[Python programming language creator]Observation 2: Python został stworzony przez Guido van Rossuma.
Thought 3: Mam odpowiedź. Twórcą języka Python, w którymnapisano Django, jest Guido van Rossum.Action 3: Finish[Guido van Rossum]Zastosowania ReAct: odpowiadanie na pytania wymagające wielu źródeł, weryfikacja faktów, zadania wymagające obliczeń, interakcja z zewnętrznymi narzędziami i API.
PAL (Program-Aided Language Models)
Dział zatytułowany „PAL (Program-Aided Language Models)”PAL to technika, w której model generuje kod (np. Python) zamiast bezpośredniego rozumowania tekstowego. Kod jest następnie wykonywany, co gwarantuje dokładność obliczeń.
Problem: “Roger ma 5 piłek tenisowych. Kupuje jeszcze 2 puszki po 3 piłki każda. Ile piłek ma teraz Roger?”
# Początkowa liczba piłekpoczatkowe_pilki = 5
# Kupione puszkiliczba_puszek = 2pilki_w_puszce = 3
# Obliczeniekupione_pilki = liczba_puszek * pilki_w_puszcewszystkie_pilki = poczatkowe_pilki + kupione_pilki
print(wszystkie_pilki) # Wynik: 11Kiedy używać PAL? Problemy matematyczne i arytmetyczne, obliczenia dat i czasu, zadania wymagające precyzyjnych operacji numerycznych, symulacje i modelowanie.
Porównanie technik rozumowania
Dział zatytułowany „Porównanie technik rozumowania”| Technika | Główna idea | Najlepsze zastosowanie |
|---|---|---|
| Self-Consistency | Wiele odpowiedzi, głosowanie | Zwiększenie dokładności |
| Tree of Thoughts | Eksploracja wielu ścieżek | Złożone problemy, planowanie |
| Generate Knowledge | Najpierw wiedza, potem odpowiedź | Pytania nieintuicyjne |
| RAG | Wyszukiwanie + generowanie | Aktualne informacje, fakty |
| ReAct | Rozumowanie + działanie | Zadania wieloetapowe z narzędziami |
| PAL | Generowanie kodu | Obliczenia, matematyka |
Praktyczne wskazówki
Dział zatytułowany „Praktyczne wskazówki”Podsumowanie
Dział zatytułowany „Podsumowanie”- Self-Consistency - generuj wiele odpowiedzi, wybierz najczęstszą
- Tree of Thoughts - eksploruj i oceniaj wiele ścieżek rozumowania
- Generate Knowledge - najpierw wiedza, potem odpowiedź
- RAG - wyszukuj informacje, generuj odpowiedź na ich podstawie
- ReAct - myśl, działaj, obserwuj, powtarzaj
- PAL - generuj kod zamiast obliczeń tekstowych
Częste pytania
Czym jest Tree of Thoughts?
Tree of Thoughts to zaawansowana technika promptowania, w której AI rozważa wiele ścieżek rozumowania jednocześnie, ocenia je i wybiera najlepszą.
made with ❤️ by aitomate.pl - Łukasz Podgórski