Prompt en context
Prompt en context zijn fundamentele begrippen in prompt-engineering voor grote taalmodellen (LLM).
Context is een kritisch belangrijk onderdeel van de prompt, dat het vermogen van een LLM bepaalt om nauwkeurige, relevante en nuttige antwoorden te genereren. Effectief prompt-engineering bestaat grotendeels uit de kunst van het verzamelen, filteren, structureren en presenteren van de juiste context aan het model op het juiste moment, waarbij tegelijkertijd de beperkingen van moderne LLM's worden overwonnen.
Definitie van Prompt
Prompt (Engels: prompt) — dit is de volledige verzameling invoergegevens die aan een LLM wordt verstrekt om een antwoord te genereren. Het is niet slechts een vraag of opdracht, maar een gestructureerde tekst die het volgende kan bevatten:
- Instructies: Directe aanwijzingen aan het model over wat er gedaan moet worden, in welk formaat, stijl of toon.
- Hoofdvraag (Query): De directe vraag van de gebruiker of een beschrijving van de hoofdtaak.
- Context: Aanvullende informatie die nodig is voor de correcte uitvoering van de opdracht.
- Voorbeelden (Few-shot examples): Demonstratie van het gewenste formaat of de gewenste stijl van het antwoord op vergelijkbare taken.
De kwaliteit en volledigheid van de prompt bepalen rechtstreeks de relevantie, nauwkeurigheid en bruikbaarheid van het antwoord van de LLM.
Definitie van Context
Context binnen prompt-engineering is alle informatie binnen de prompt die het model helpt de taak, de specificiteit van de situatie of de verwachtingen van de gebruiker beter te begrijpen, maar die geen deel uitmaakt van de oorspronkelijke trainingsgegevens. Context biedt situationele details die nodig zijn voor het genereren van een adequaat antwoord.
Context kan het volgende omvatten:
- De geschiedenis van eerdere dialogen (in chatbots).
- Gegevens die zijn opgehaald uit externe bronnen (documenten, databases, webpagina's) — de basis van RAG.
- Informatie over de gebruiker (profiel, voorkeuren).
- Specifieke details van de huidige taak of situatie.
- Voorbeelden van de uitvoering van vergelijkbare taken (als onderdeel van few-shot prompting).
Het is belangrijk om de context die in de prompt wordt verstrekt te onderscheiden van de algemene kennis die het model tijdens zijn voorafgaande training heeft opgedaan. Prompt-engineering richt zich op het effectief verstrekken van juist de situationele context.
Onderlinge Relatie en Invloed
Prompt en context zijn fundamentele begrippen bij de werking van transformers en bepalen hoe het model invoergegevens verwerkt en op basis waarvan het resultaten genereert. Architecturaal maakt een transformer geen speciaal onderscheid tussen 'prompt' en 'context' — beide zijn onderdelen van de invoersequentie van tokens, die worden omgezet in embeddings, worden verrijkt met positionele informatie en gezamenlijk worden verwerkt door de self-attention-lagen.
Prompt en context zijn onlosmakelijk met elkaar verbonden: context is een samenstellend deel van de prompt.
- Context vormt de prompt: De engineer selecteert en structureert relevante context voor opname in de prompt.
- Context stuurt het model: De verstrekte informatie stelt de LLM in staat de ruimte van mogelijke antwoorden te verkleinen, zich te concentreren op relevante aspecten en hallucinaties te vermijden.
- De kwaliteit van de context bepaalt de kwaliteit van het antwoord: Onvoldoende, niet-relevante of tegenstrijdige context leidt tot onnauwkeurige, algemene of foutieve antwoorden. Nauwkeurige en volledige context verhoogt de specificiteit en bruikbaarheid van de generatie.
- Invloed op de interpretatie van instructies: Context kan de interpretatie van algemene instructies in de prompt verduidelijken of wijzigen.
De effectiviteit van de prompt hangt grotendeels af van hoe succesvol de engineer erin geslaagd is relevante context te verzamelen, te filteren en aan het model te presenteren.
Typen Context
Context kan worden geclassificeerd op basis van verschillende kenmerken:
Op basis van bron:
- Door de gebruiker verstrekt: Expliciete invoer van de gebruiker, zijn vraag of taakomschrijving.
- Uit de dialooggeschiedenis: Eerdere berichten van de gebruiker en de assistent (kortetermijngeheugen).
- Opgehaald (Retrieved): Gegevens uit externe bronnen (documenten, databases, web) via RAG.
- Uit een profiel/kennisbank: Langetermijninformatie over de gebruiker of het domein.
- Statisch/Instructief: Informatie die door de engineer in de promptsjabloon is opgenomen (instructies, voorbeelden, roldefinities).
Op basis van dynamiek:
- Statische context: Het onveranderlijke deel van de prompt (instructies, definities, voorbeelden). Bepaalt de algemene taak.
- Dynamische context: Informatie die per verzoek verandert (gebruikersgegevens, RAG-resultaten, huidige tijd). Biedt specifieke details.
Op basis van opslagduur (Geheugen):
- Kortetermijncontext: Geschiedenis van de huidige dialoogsessie.
- Langetermijncontext: Opgeslagen gegevens over de gebruiker of eerdere interacties, waarvoor opslag- en ophaalmechanismen nodig zijn.
Contextbeheer
Effectief contextbeheer is een kernopgave van prompt-engineering, met name in het licht van de beperkingen van het contextvenster van LLM's. De belangrijkste methoden:
- RAG: De meest gebruikte methode voor het werken met grote hoeveelheden informatie. Maakt het mogelijk om dynamisch alleen de meest relevante fragmenten uit een uitgebreide kennisbank te vinden en in de prompt op te nemen. Vereist een vectordatabase en effectieve zoekmechanismen (lexicaal of semantisch).
- Chunking: Het opsplitsen van grote documenten in semantisch samenhangende of vaste onderdelen voor indexering en latere opvraging via RAG.
- Samenvatting (Summarization): Het comprimeren van een lange dialooggeschiedenis of omvangrijke documenten om de essentie over te brengen binnen het beperkte contextvenster.
- Geheugenbeheer (Memory Management): Het gebruik van diverse strategieën voor het opslaan en ophalen van de dialooggeschiedenis in chatbots en agents (bijv. ConversationBufferMemory, ConversationSummaryBufferMemory in LangChain).
- Sliding Window: Alleen de N meest recente berichten van de dialoog in de context bewaren.
- Filteren en Prioriteren: Het selecteren van de meest relevante contextfragmenten op basis van hun belang (bijv. met behulp van relevantiebeoordelingen die bij het zoeken worden verkregen) vóór de samenstelling van de uiteindelijke prompt.
De Rol van Context in Prompt-Engineering
- Verhoging van Relevantie: Context stelt het model in staat antwoorden te genereren die nauwkeurig aansluiten bij de vraag en de situatie van de gebruiker.
- Vermindering van Hallucinaties: Het verstrekken van feitelijke informatie (via RAG) dwingt het model om daarop te steunen in plaats van feiten te verzinnen.
- Personalisatie: Context over de gebruiker (voorkeuren, geschiedenis) maakt het mogelijk antwoorden aan te passen.
- Statusbeheer: In dialogen en meerstapsprocessen zorgt de context (geschiedenis) voor continuïteit en bewustzijn van het model over eerdere stappen.
- Overwinnen van Kennisbeperkingen van het Model: RAG stelt het model in staat vragen te beantwoorden over gebeurtenissen die hebben plaatsgevonden na de training, of over specifieke/privégegevens.
Beperkingen
- Limiet van het Contextvenster: Ondanks een vergroting tot 1-2 miljoen tokens bij moderne modellen kan de verwerking van dergelijke hoeveelheden duur en traag zijn. Vereist effectieve compressie- en selectiestrategieën (RAG, samenvatting).
- Ophalen van Relevante Context: De effectiviteit van RAG is afhankelijk van de kwaliteit van het zoeken. Onjuist opgehaalde context kan het model in verwarring brengen ("garbage in, garbage out").
- "Valley of Meh": Informatie die zich in het midden van een zeer lange prompt bevindt, kan door het model worden genegeerd. Vereist structurering van de prompt (bijv. de "sandwichtechniek").
- Risico op Context-injectie: Als context wordt opgehaald uit onbetrouwbare bronnen (bijv. webpagina's), kan deze schadelijke instructies bevatten (prompt-injecties).
Literatuur
- 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.
Zie ook
- Grote taalmodellen
- Contextvenster
- Vectordatabases
- LangChain