Prompt és kontextus

From Systems analysis Wiki
Jump to navigation Jump to search

Prompt és kontextus alapvető fogalmak a prompt-mérnökségben a nagy nyelvi modellek (LLM) esetében.

A kontextus a prompt kritikusan fontos összetevője, amely meghatározza az LLM azon képességét, hogy pontos, releváns és hasznos válaszokat generáljon. A hatékony prompt-mérnökség nagyrészt a helyes kontextus összegyűjtésének, szűrésének, strukturálásának és a modell számára megfelelő pillanatban való bemutatásának művészetéből áll, miközben leküzdi a modern LLM-ek korlátait.

A Prompt meghatározása

Prompt (angol: prompt) — ez az LLM számára megadott teljes bemeneti adatkészlet, amelynek alapján a modell választ generál. Nem csupán kérdés vagy parancs, hanem strukturált szöveg, amely a következőket tartalmazhatja:

  • Utasítások: Közvetlen iránymutatások a modell számára arról, mit kell tenni, milyen formátumban, stílusban vagy hangnemben.
  • Alapkérés (Query): A felhasználó közvetlen kérdése vagy az alapfeladat leírása.
  • Kontextus: A kérés helyes végrehajtásához szükséges kiegészítő információ.
  • Példák (Few-shot examples): A kívánt formátum vagy válaszstílus bemutatása hasonló feladatokon.

A prompt minősége és teljessége közvetlenül meghatározza az LLM válaszának relevanciáját, pontosságát és hasznosságát.

A kontextus meghatározása

Kontextus a prompt-mérnökség keretein belül minden olyan információ a prompton belül, amely segít a modellnek jobban megérteni a feladatot, a helyzet sajátosságait vagy a felhasználó elvárásait, de nem része az eredeti tanítási adatoknak. A kontextus olyan szituációs részleteket nyújt, amelyek szükségesek a megfelelő válasz generálásához.

A kontextus a következőket foglalhatja magában:

  • A korábbi párbeszéd előzményeit (csevegőrobotokban).
  • Külső forrásokból (dokumentumok, adatbázisok, weboldalak) kinyert adatokat — a RAG alapját.
  • Felhasználói információkat (profil, preferenciák).
  • Az aktuális feladat vagy helyzet specifikus részleteit.
  • Hasonló feladatok végrehajtásának példáit (a few-shot prompting részeként).

Fontos megkülönböztetni a promptban megadott kontextust a modell előzetes tanítása során szerzett általános tudástól. A prompt-mérnökség a szituációs kontextus hatékony megadására összpontosít.

Összefüggés és hatás

Prompt és kontextus — alapvető fogalmak a transformer-ek működésében, amelyek meghatározzák, hogyan érzékeli a modell a bemeneti adatokat, és mi alapján generálja az eredményt. Architektúrálisan a transformer nem tesz különbséget a „prompt" és a „kontextus" között — mindkettő a bemeneti tokensorozat részét képezi, amelyek embeddingekké alakulnak, pozicionális információval gazdagodnak, és az önfigyelmi rétegek együttesen dolgozzák fel őket.

A prompt és a kontextus elválaszthatatlanul összekapcsolódnak: a kontextus a prompt alkotóeleme.

  • A kontextus formálja a promptot: A mérnök kiválasztja és strukturálja a releváns kontextust a promptba való beillesztéshez.
  • A kontextus irányítja a modellt: A megadott információ lehetővé teszi az LLM számára, hogy szűkítse a lehetséges válaszok terét, a releváns szempontokra összpontosítson, és elkerülje a hallucinációkat.
  • A kontextus minősége meghatározza a válasz minőségét: A hiányos, irreleváns vagy ellentmondásos kontextus pontatlan, általános vagy hibás válaszokhoz vezet. A pontos és teljes kontextus növeli a generálás specifikusságát és hasznosságát.
  • Hatás az utasítások értelmezésére: A kontextus pontosíthatja vagy módosíthatja a promptban szereplő általános utasítások értelmezését.

A prompt hatékonysága nagymértékben attól függ, hogy a mérnök mennyire sikeresen gyűjtötte össze, szűrte és mutatta be a releváns kontextust a modell számára.

A kontextus típusai

A kontextus különböző szempontok szerint osztályozható:

Forrás szerint:

  • Felhasználó által megadott: A felhasználó explicit bevitele, kérdése vagy feladatleírása.
  • Párbeszéd előzményeiből: A felhasználó és az asszisztens korábbi üzenetei (rövid távú memória).
  • Kinyert (Retrieved): Külső forrásokból (dokumentumok, adatbázis, web) RAG segítségével származó adatok.
  • Profilból/tudásbázisból: Hosszú távú információ a felhasználóról vagy a szakterületről.
  • Statikus/Instruktív: A mérnök által a prompt sablonba beépített információ (utasítások, példák, szerepmeghatározások).

Dinamikusság szerint:

  • Statikus kontextus: A prompt változatlan része (utasítások, meghatározások, példák). Meghatározza az általános feladatot.
  • Dinamikus kontextus: Kérésenként változó információ (felhasználói adatok, RAG-eredmények, aktuális idő). Specifikus részleteket nyújt.

Tárolási idő szerint (Memória):

  • Rövid távú kontextus: Az aktuális párbeszéd-munkamenet előzményei.
  • Hosszú távú kontextus: A felhasználóra vagy korábbi interakciókra vonatkozó tárolt adatok, amelyek tárolási és visszakeresési mechanizmusokat igényelnek.

Kontextuskezelés

A hatékony kontextuskezelés a prompt-mérnökség kulcsfeladata, különösen az LLM kontextusablakának korlátaira tekintettel. Főbb módszerek:

  • RAG: A legelterjedtebb módszer nagy információmennyiséggel való munkához. Lehetővé teszi, hogy a promptba csak a kiterjedt tudásbázis legrelevánsabb részletei kerüljenek be dinamikusan. Vektoros adatbázist és hatékony keresési mechanizmusokat (lexikális vagy szemantikai) igényel.
  • Darabolás (Chunking): A nagy dokumentumok szemantikailag összefüggő vagy rögzített méretű részekre való bontása indexelés és RAG-on keresztüli visszakeresés céljából.
  • Összefoglalás (Sumarizáció): A hosszú párbeszéd-előzmények vagy terjedelmes dokumentumok tömörítése a lényeg átadása érdekében a korlátozott kontextusablakban.
  • Memóriakezelés (Memory Management): Különböző stratégiák alkalmazása a párbeszéd-előzmények tárolására és visszakeresésére csevegőrobotokban és ágensekben (pl. ConversationBufferMemory, ConversationSummaryBufferMemory a LangChain-ben).
  • Csúszóablak (Sliding Window): Csak az N legutóbbi párbeszédüzenet megtartása a kontextusban.
  • Szűrés és prioritizálás: A legrelevánsabb kontextusrészletek kiválasztása fontosságuk alapján (pl. a keresés során kapott relevanciapont-számok segítségével) a végső prompt összeállítása előtt.

A kontextus szerepe a prompt-mérnökségben

  • Relevancia növelése: A kontextus lehetővé teszi a modell számára, hogy a felhasználó kérésének és helyzetének pontosan megfelelő válaszokat generáljon.
  • Hallucinációk csökkentése: A tényszerű információk megadása (RAG-on keresztül) arra kényszeríti a modellt, hogy azokra támaszkodjon, ne pedig tényeket találjon ki.
  • Személyre szabás: A felhasználóra vonatkozó kontextus (preferenciák, előzmények) lehetővé teszi a válaszok testreszabását.
  • Állapotkezelés: Párbeszédekben és többlépéses folyamatokban a kontextus (előzmények) biztosítja a folytonosságot és a modell tájékozottságát az előző lépésekről.
  • A modell tudáskorlátainak leküzdése: A RAG lehetővé teszi a modell számára, hogy válaszoljon a tanítása után bekövetkezett eseményekre, vagy specifikus/privát adatokra vonatkozó kérdésekre.

Korlátok

  • A kontextusablak korlátja: Annak ellenére, hogy a modern modelleknél 1-2 millió tokenre nőtt, az ilyen mennyiségek feldolgozása drága és lassú lehet. Hatékony tömörítési és kiválasztási stratégiákat igényel (RAG, összefoglalás).
  • Releváns kontextus keresése: A RAG hatékonysága a keresés minőségétől függ. A helytelenül kinyert kontextus összezavarhatja a modellt („szemét be – szemét ki").
  • „A közömbösség völgye" (Valley of Meh): A nagyon hosszú prompt közepén elhelyezett információt a modell figyelmen kívül hagyhatja. A prompt strukturálását igényli (pl. „szendvics-technika").
  • Kontextus-injektálás kockázata: Ha a kontextus nem megbízható forrásokból (pl. weboldalakról) kerül kinyerésre, rosszindulatú utasításokat tartalmazhat (prompt-injektálás).

Irodalom

  • 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.

Lásd még

  • Nagy nyelvi modellek
  • Kontextusablak
  • Vektoros adatbázisok
  • LangChain