Prompt a kontext

From Systems analysis Wiki
Jump to navigation Jump to search

Prompt a kontext jsou fundamentálními pojmy v prompt inženýrství pro velké jazykové modely (LLM).

Kontext je kriticky důležitou součástí promptu, která určuje schopnost LLM generovat přesné, relevantní a užitečné odpovědi. Efektivní prompt inženýrství spočívá do značné míry v umění shromažďování, filtrování, strukturování a prezentování správného kontextu modelu ve správný okamžik, přičemž překonává omezení moderních LLM.

Definice Promptu

Prompt (angl. prompt) — je úplný soubor vstupních dat poskytnutých LLM pro generování odpovědi. Není to jen otázka nebo příkaz, ale strukturovaný text, který může zahrnovat:

  • Instrukce: Přímé pokyny modelu, co je třeba udělat, v jakém formátu, stylu nebo tónu.
  • Hlavní dotaz (Query): Přímá otázka uživatele nebo popis hlavního úkolu.
  • Kontext: Doplňující informace nezbytné pro správné splnění dotazu.
  • Příklady (Few-shot examples): Ukázka požadovaného formátu nebo stylu odpovědi na analogických úkolech.

Kvalita a úplnost promptu přímo určují relevanci, přesnost a užitečnost odpovědi LLM.

Definice Kontextu

Kontext v rámci prompt inženýrství je jakákoliv informace uvnitř promptu, která pomáhá modelu lépe pochopit úkol, specifiku situace nebo očekávání uživatele, ale není součástí jejích původních trénovacích dat. Kontext poskytuje situační detaily nezbytné pro generování adekvátní odpovědi.

Kontext může zahrnovat:

  • Historii předchozího dialogu (v chat-botech).
  • Data získaná z externích zdrojů (dokumenty, databáze, webové stránky) — základ RAG.
  • Informace o uživateli (profil, preference).
  • Specifické detaily aktuálního úkolu nebo situace.
  • Příklady plnění analogických úkolů (jako součást few-shot prompting).

Je důležité odlišovat kontext poskytovaný v promptu od obecných znalostí získaných modelem během předběžného trénování. Prompt inženýrství se zaměřuje na efektivní poskytování právě situačního kontextu.

Vzájemné vztahy a Vliv

Prompt a kontext – jsou fundamentálními pojmy při práci transformerů, určující, jak model vnímá vstupní data a na základě čeho generuje výsledek. Architektonicky transformer nerozlišuje speciálně „prompt" a „kontext" – oba jsou součástmi vstupní sekvence tokenů, které jsou převedeny na embedding, obohaceny poziční informací a společně zpracovány vrstvami self-attention.

Prompt a kontext jsou neoddělitelně spjaty: kontext je součástí promptu.

  • Kontext formuje prompt: Inženýr vybírá a strukturuje relevantní kontext pro zahrnutí do promptu.
  • Kontext naviguje model: Poskytnuté informace umožňují LLM zúžit prostor možných odpovědí, soustředit se na relevantní aspekty a vyhnout se halucinacím.
  • Kvalita kontextu určuje kvalitu odpovědi: Nedostatečný, nerelevantní nebo rozporuplný kontext vede k nepřesným, obecným nebo chybným odpovědím. Přesný a úplný kontext zvyšuje specificitu a užitečnost generování.
  • Vliv na interpretaci instrukcí: Kontext může upřesňovat nebo měnit interpretaci obecných instrukcí v promptu.

Efektivita promptu do značné míry závisí na tom, jak úspěšně inženýr dokázal shromáždit, odfiltrovat a prezentovat relevantní kontext modelu.

Typy Kontextu

Kontext lze klasifikovat podle různých kritérií:

Podle zdroje:

  • Poskytnutý uživatelem: Explicitní vstup uživatele, jeho otázka nebo popis úkolu.
  • Z historie dialogu: Předchozí zprávy uživatele a asistenta (krátkodobá paměť).
  • Získaný (Retrieved): Data z externích zdrojů (dokumenty, DB, web) pomocí RAG.
  • Z profilu/znalostní báze: Dlouhodobé informace o uživateli nebo doméně.
  • Statický/Instruktivní: Informace zakotvená inženýrem v šabloně promptu (instrukce, příklady, definice rolí).

Podle dynamičnosti:

  • Statický kontext: Neměnná část promptu (instrukce, definice, příklady). Určuje obecný úkol.
  • Dynamický kontext: Informace měnící se od dotazu k dotazu (data uživatele, výsledky RAG, aktuální čas). Poskytuje specifické detaily.

Podle doby uchování (Paměť):

  • Krátkodobý kontext: Historie aktuální relace dialogu.
  • Dlouhodobý kontext: Uložená data o uživateli nebo předchozích interakcích vyžadující mechanismy ukládání a načítání.

Správa Kontextu

Efektivní správa kontextu je klíčovým úkolem prompt inženýrství, zejména s ohledem na omezení kontextového okna LLM. Hlavní metody:

  • RAG: Nejrozšířenější metoda pro práci s velkými objemy informací. Umožňuje dynamicky vyhledávat a zahrnovat do promptu pouze nejrelevantnější fragmenty z rozsáhlé znalostní báze. Vyžaduje vektorovou databázi a efektivní mechanismy vyhledávání (lexikálního nebo sémantického).
  • Chunking: Rozdělení velkých dokumentů na sémanticky propojené nebo pevně dané části pro indexaci a následné načítání přes RAG.
  • Sumarizace: Komprese dlouhé historie dialogu nebo rozsáhlých dokumentů pro přenos hlavního smyslu v omezeném kontextovém okně.
  • Správa Paměti (Memory Management): Využití různých strategií pro ukládání a načítání historie dialogu v chat-botech a agentech (například ConversationBufferMemory, ConversationSummaryBufferMemory v LangChain).
  • Posuvné okno (Sliding Window): Udržování pouze N posledních zpráv dialogu v kontextu.
  • Filtrování a Prioritizace: Výběr nejrelevantnějších fragmentů kontextu na základě jejich důležitosti (například pomocí skóre relevance vydaných při vyhledávání) před sestavením finálního promptu.

Role Kontextu v Prompt Inženýrství

  • Zvyšování Relevance: Kontext umožňuje modelu generovat odpovědi přesně odpovídající dotazu a situaci uživatele.
  • Snižování Halucinací: Poskytnutí faktických informací (přes RAG) nutí model opírat se o ně, namísto vymýšlení faktů.
  • Personalizace: Kontext o uživateli (preference, historie) umožňuje přizpůsobovat odpovědi.
  • Správa Stavu: V dialozích a vícekrokových procesech kontext (historie) zajišťuje kontinuitu a informovanost modelu o předchozích krocích.
  • Překonávání Omezení Znalostí Modelu: RAG umožňuje modelu odpovídat na otázky o událostech, které nastaly po jeho trénování, nebo o specifických/privátních datech.

Omezení

  • Limit Kontextového Okna: Přestože u moderních modelů vzrostl na 1–2 miliony tokenů, zpracování takových objemů může být nákladné a pomalé. Vyžaduje efektivní strategie komprese a výběru (RAG, sumarizace).
  • Vyhledávání Relevantního Kontextu: Efektivita RAG závisí na kvalitě vyhledávání. Nesprávně načtený kontext může model zmást (\"odpadky na vstupu – odpadky na výstupu\").
  • „Údolí lhostejnosti" (Valley of Meh): Informace umístěné uprostřed velmi dlouhého promptu může model ignorovat. Vyžaduje strukturování promptu (například „sandwich technika").
  • Riziko Kontextové Injekce: Pokud je kontext načítán z nedůvěryhodných zdrojů (například webových stránek), může obsahovat škodlivé instrukce (prompt injection).

Literatura

  • Lewis, P. et al. (2020). Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks. arXiv:2005.11401.
  • 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.
  • Chen, S. et al. (2023). Extending Context Window of Large Language Models via Positional Interpolation. arXiv:2306.15595.
  • Schick, T. et al. (2023). Toolformer: Language Models Can Teach Themselves to Use Tools. arXiv:2302.04761.
  • Besta, M. et al. (2023). Graph of Thoughts: Solving Elaborate Problems with Large Language Models. arXiv:2308.09687.
  • Packer, C. et al. (2023). MemGPT: Towards LLMs as Operating Systems. arXiv:2310.08560.
  • Wang, Y. et al. (2023). Self-Instruct: Aligning Language Models with Self-Generated Instructions. arXiv:2212.10560.
  • Sahoo, P. et al. (2024). A Systematic Survey of Prompt Engineering in Large Language Models: Techniques and Applications. arXiv:2402.07927.
  • Kim, S. H. et al. (2024). Theanine: Revisiting Memory Management in Long-term Conversations with Timeline-augmented Response Generation. arXiv:2406.10996.
  • Chen, S. et al. (2024). StruQ: Defending Against Prompt Injection with Structured Queries. arXiv:2402.06363.
  • Zhong, M. et al. (2024). Understanding the RoPE Extensions of Long-Context LLMs: An Attention Perspective. arXiv:2406.13282.
  • Han, H. et al. (2025). Retrieval-Augmented Generation with Graphs (GraphRAG). arXiv:2501.00309.
  • Self-Instruct (2025). Aligning Language Models with Self-Generated Instructions. arXiv:2212.10560.

Viz také

  • Velké jazykové modely
  • Kontextové okno
  • Vektorové databáze
  • LangChain