Podstawowe techniki Prompt Engineering
Prompt engineering obejmuje różnorodne techniki i metodyki mające na celu optymalizację interakcji z dużymi modelami językowymi (LLM) w celu uzyskania pożądanych wyników. Techniki te dotyczą strukturyzowania zapytań, dostarczania kontekstu, zarządzania stylem odpowiedzi oraz poprawy zdolności modelu do wnioskowania. Ponieważ LLM generują odpowiedź, przewidując kolejne tokeny na podstawie wejściowego promptu, jakość i struktura tego promptu bezpośrednio wpływają na wynik. Podstawowe techniki prompt engineeringu pozwalają deweloperom i użytkownikom skutecznie sterować zachowaniem modelu, redukować błędy i dostosowywać ją do konkretnych zadań bez konieczności zmiany wewnętrznych parametrów modelu.
Podstawowe zasady i struktura promptu
Chociaż konkretne implementacje różnią się, skuteczne prompty są często budowane z uwzględnieniem ogólnych zasad i struktury:
- Empiryczne wskazówki: Jako jedna z praktycznych struktur (ale nie standard branżowy) proponuje się przestrzeganie następujących zasad: Wyznacz Kierunek, Wskaż Format, Dostarcz Przykłady, Oceń Jakość i Podziel Zadanie.
- Skuteczny prompt często zawiera następujące komponenty:
- Wprowadzenie/Rola: Określa kontekst zadania lub rolę/personę modelu.
- Instrukcje: Jasne wskazania, co należy zrobić.
- Kontekst: Niezbędne informacje (statyczne lub dynamicznie pobierane przez RAG).
- Przykłady (Few-shot): Demonstracja pożądanego formatu/stylu.
- Żądanie odpowiedzi: Wyraźne wskazanie, co model ma wygenerować.
- Komunikat systemowy (System Prompt): W interfejsach API czatu (np. modeli OpenAI, Anthropic) pozwala na ustawienie globalnych instrukcji i roli dla całej sesji.
- Formatowanie: Użycie Markdown, JSON, XML lub YAML pomaga ustrukturyzować prompt i ułatwia parsowanie odpowiedzi. Separatory (```, `\"\"\"`, tagi XML) są ważne dla oddzielenia instrukcji od danych.
Podstawowe techniki instrukcji i przykładów
- Jasne i konkretne instrukcje: Jak najdokładniejsze opisanie zadania, pożądanego wyniku i ograniczeń. Unikanie niejednoznaczności.
- Modelowanie ról (Role Prompting): Przypisanie modelowi roli (\"Jesteś ekspertem w dziedzinie...\") w celu sterowania tonem, stylem i bazą wiedzy.
- Zero-shot Prompting: Zapytanie bez przykładów. Skuteczne w przypadku prostych lub dobrze znanych modelowi zadań.
- Few-Shot Prompting: Dostarczenie kilku (zazwyczaj od 2 do 5) przykładów „pytanie-odpowiedź" w celu zademonstrowania zadania. Szczególnym przypadkiem jest One-shot Prompting z jednym przykładem. Szczególnie przydatne w przypadku złożonych formatów lub stylów. Wymaga ostrożności, aby uniknąć zakotwiczenia (anchoring) lub wychwytywania fałszywych wzorców z przykładów.
Techniki zarządzania kontekstem
- Retrieval-Augmented Generation (RAG): Dynamiczne dodawanie istotnych informacji z zewnętrznych baz wiedzy do promptu przed wysłaniem do LLM. Po raz pierwszy zaproponowana przez Meta AI w 2020 roku, metoda ta jest kluczowa w walce z halucynacjami i zapewnieniu aktualności danych.
- Chunking: Podział dużych tekstów na mniejsze części (chunki), aby zmieścić się w oknie kontekstowym modelu. Strategie obejmują podział według zdań, akapitów, tokenów (z nakładaniem się).
- Sumaryzacja: Kompresja długich tekstów lub historii dialogu w celu przekazania głównego sensu w ograniczonym kontekście.
Techniki poprawy wnioskowania (Reasoning)
Techniki te mają na celu skłonienie modelu do „myślenia" w sposób bardziej dokładny i ustrukturyzowany. Skuteczność wielu z nich, szczególnie CoT, ujawnia się na modelach dużej skali (zazwyczaj powyżej 100 miliardów parametrów).
- Chain-of-Thought (CoT): Instrukcja modelu, aby generowała rozumowanie krok po kroku przed ostateczną odpowiedzią. Znacząco poprawia wyniki w matematyce, logice i zadaniach wieloetapowych.
- Zero-shot CoT: Najprostsza forma, niewymagająca przykładów. Dodanie do promptu frazy w stylu „Rozumujmy krok po kroku" (Let's think step by step) może już uruchomić łańcuch rozumowania.
- Warianty CoT:
- Auto-CoT: Automatyczne generowanie przykładów rozumowania dla few-shot promptingu.
- Self-Consistency: Generowanie kilku łańcuchów rozumowania i wybór najczęstszej odpowiedzi poprzez „głosowanie", co zwiększa niezawodność.
- Tree-of-Thoughts (ToT): Eksploracja wielu ścieżek rozumowania w postaci drzewa, z możliwością cofania się i oceny kroków pośrednich. Technika ta wykazuje wysoką skuteczność w złożonych zadaniach, na przykład zwiększając skuteczność rozwiązywania „Game of 24" z ~4% do ~74%.
- Graph-of-Thought (GoT), LogiCoT i inne, ukierunkowane na bardziej złożone lub logicznie weryfikowane wnioskowanie.
- ReAct (Reason and Act): Technika rozwijająca CoT. Stanowi iteracyjny cykl, w którym model naprzemiennie wykonuje kroki Rozumowania (Thought) i Działania z użyciem Narzędzi (Act), aktualizując swoje rozumienie na podstawie Obserwacji (Observation).
- Self-Refine: Iteracyjny proces, w którym model najpierw generuje odpowiedź, następnie ją krytykuje, a na końcu ulepsza na podstawie własnej krytyki. Ten cykl „generowanie-krytyka-ulepszenie" może być powtarzany kilka razy.
- Take a Step Back Prompting: Model najpierw formułuje ogólne zasady lub abstrakcje, a następnie stosuje je do konkretnego zadania.
Zaawansowane techniki: agenty i narzędzia
- Użycie narzędzi (Tool Usage) / Wywoływanie funkcji (Function Calling): Zapewnienie LLM możliwości wywoływania zewnętrznych API (wyszukiwanie, kalkulator, bazy danych). Model generuje ustrukturyzowane żądanie wywołania narzędzia, które jest wykonywane przez aplikację, a wynik jest zwracany do modelu. Nowoczesne LLM (GPT-4, Claude 3) mają wbudowaną obsługę tej funkcji.
- Agenty (Agents): Systemy oparte na LLM, które mogą autonomicznie planować, używać narzędzi i działać, aby osiągnąć cel. Często wykorzystują cykle podobne do ReAct. Frameworki (LangChain, AutoGen, CrewAI) upraszczają ich tworzenie.
- Systemy wieloagentowe: Współdziałanie kilku wyspecjalizowanych agentów w celu rozwiązywania złożonych zadań.
Techniki redukcji błędów i halucynacji
- RAG: Powiązanie odpowiedzi z pobranymi danymi faktograficznymi.
- Instrukcje ograniczające odpowiedź: Wymaganie odpowiedzi wyłącznie na podstawie dostarczonego kontekstu lub wskazywania niepewności (\"Jeśli odpowiedź jest nieznana, powiedz 'Nie wiem'\").
- Żądanie cytowania: Wymaganie od modelu wskazywania źródeł lub cytowania fragmentów kontekstu, na których opiera się odpowiedź.
- Weryfikacja i samokrytyka: Stosowanie technik takich jak Chain-of-Verification (CoVe) (generowanie odpowiedzi z jej późniejszą weryfikacją i korektą), Self-Refine lub bezpośrednie żądanie do modelu sprawdzenia własnej odpowiedzi pod kątem błędów.
- CoT: Rozumowanie krok po kroku samo w sobie może redukować błędy logiczne.
Techniki oceny i iteracji
Chociaż ocena jest odrębnym procesem, niektóre jej aspekty stanowią część prompt engineeringu:
- Testy A/B promptów: Porównywanie skuteczności różnych wersji promptów na tych samych zadaniach.
- Użycie LLM do oceny: Zastosowanie potężnego modelu (np. GPT-4) do oceny jakości odpowiedzi wygenerowanych przez inny prompt lub model (LLM-as-a-Judge).
Wzorce promptów
Popularne, wielokrotnie używane struktury:
- Wzorzec Persony (Persona Pattern)
- Wzorzec Dostosowania Wyjścia (Output Customization Pattern)
- Wzorzec Żądania Doprecyzowania (Question Refinement Pattern)
- Wzorzec Weryfikacji Kognitywnej / Samokrytyki (Cognitive Verifier / Self-Critique Pattern)
- Wzorzec Rozumowania Krok po Kroku (Step-by-Step / Chain-of-Thought Pattern)
- Wzorzec Szablonu (Template Pattern)
Literatura
- Radford, A. et al. (2019). Language Models are Unsupervised Multitask Learners. PDF.
- Brown, T. B. et al. (2020). Language Models are Few-Shot Learners. arXiv:2005.14165.
- Lewis, P. et al. (2020). Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks. arXiv:2005.11401.
- Li, X. L.; Liang, P. (2021). Prefix-Tuning: Optimizing Continuous Prompts for Generation. arXiv:2101.00190.
- Liu, Y. et al. (2021). Fantastically Ordered Prompts and Where to Find Them: Overcoming Few-Shot Prompt Order Sensitivity. arXiv:2104.08786.
- Bai, Y. et al. (2022). Constitutional AI: Harmlessness from AI Feedback. arXiv:2212.08073.
- 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.
- Kojima, T. et al. (2022). Large Language Models are Zero-Shot Reasoners. arXiv:2205.11916.
- Zhang, Z. et al. (2022). Automatic Chain of Thought Prompting in Large Language Models. arXiv:2210.03493.
- Zhou, D. et al. (2022). Least-to-Most Prompting Enables Complex Reasoning in Large Language Models. arXiv:2205.10625.
- Yao, S. et al. (2022). ReAct: Synergizing Reasoning and Acting in Language Models. arXiv:2210.03629.
- Besta, M. et al. (2023). Graph of Thoughts: Solving Elaborate Problems with Large Language Models. arXiv:2308.09687.
- Madaan, A. et al. (2023). Self-Refine: Iterative Refinement with Self-Feedback. arXiv:2303.17651.
- Schick, T. et al. (2023). Toolformer: Language Models Can Teach Themselves to Use Tools. arXiv:2302.04761.
- Rafailov, R. et al. (2023). Direct Preference Optimization: Your Language Model is Secretly a Reward Model. arXiv:2305.18290.
- Wang, Y. et al. (2023). Self-Instruct: Aligning Language Models with Self-Generated Instructions. arXiv:2212.10560.
- Yao, S. et al. (2023). Tree of Thoughts: Deliberate Problem Solving with Large Language Models. arXiv:2305.10601.
- Chen, S. Y. et al. (2023). Extending Context Window of Large Language Models via Positional Interpolation. arXiv:2306.15595.
- Chang, K. et al. (2024). Efficient Prompting Methods for Large Language Models: A Survey. arXiv:2404.01077.
- Genkina, D. (2024). AI Prompt Engineering Is Dead. IEEE Spectrum. [1].
- Li, Z. et al. (2024). Prompt Compression for Large Language Models: A Survey. arXiv:2410.12388.
- Liang, X. et al. (2024). Internal Consistency and Self-Feedback in Large Language Models: A Survey. arXiv:2407.14507.
- Han, H. et al. (2025). Retrieval-Augmented Generation with Graphs (GraphRAG). arXiv:2501.00309.
- Li, W. et al. (2025). A Survey of Automatic Prompt Engineering: An Optimization Perspective. arXiv:2502.11560.
- Wu, Z. et al. (2025). The Dark Side of Function Calling: Pathways to Jailbreaking Large Language Models. EMNLP 2025. PDF.
- Yang, B. et al. (2025). Hallucination Detection in Large Language Models with Metamorphic Relations. arXiv:2502.15844.
Zobacz też
- Duże modele językowe
- Chain-of-Thought Prompting
- Halucynacje i nieprawidłowe odpowiedzi LLM