Prompt och kontext
Prompt och kontext är grundläggande begrepp inom prompt-engineering för stora språkmodeller (LLM).
Kontexten är en kritiskt viktig komponent i prompten, som avgör LLM:s förmåga att generera exakta, relevanta och användbara svar. Effektiv prompt-engineering handlar till stor del om konsten att samla in, filtrera, strukturera och presentera rätt kontext för modellen vid rätt tillfälle, och samtidigt övervinna begränsningarna hos moderna LLM.
Definitionen av Prompt
Prompt (eng. prompt) — är den fullständiga uppsättningen indata som tillhandahålls LLM för att generera ett svar. Det är inte bara en fråga eller ett kommando, utan en strukturerad text som kan innehålla:
- Instruktioner: Direkta anvisningar till modellen om vad som ska göras, i vilket format, stil eller ton.
- Huvudförfrågan (Query): Användarens direkta fråga eller beskrivning av huvuduppgiften.
- Kontext: Ytterligare information som krävs för att förfrågan ska utföras korrekt.
- Exempel (Few-shot examples): Demonstration av önskat format eller svarsstil på liknande uppgifter.
Promptens kvalitet och fullständighet avgör direkt LLM-svarets relevans, precision och användbarhet.
Definitionen av Kontext
Kontext inom ramen för prompt-engineering är all information inuti prompten som hjälper modellen att bättre förstå uppgiften, situationens specificitet eller användarens förväntningar, men som inte är en del av dess ursprungliga träningsdata. Kontexten tillhandahåller situationsspecifika detaljer som krävs för att generera ett adekvat svar.
Kontexten kan inkludera:
- Historiken från tidigare dialog (i chattbottar).
- Data hämtad från externa källor (dokument, databaser, webbsidor) — grunden för RAG.
- Information om användaren (profil, preferenser).
- Specifika detaljer om den aktuella uppgiften eller situationen.
- Exempel på utförande av liknande uppgifter (som en del av few-shot prompting).
Det är viktigt att skilja den kontext som tillhandahålls i prompten från den allmänna kunskap som modellen förvärvat under sin förträning. Prompt-engineering fokuserar på att effektivt tillhandahålla just situationsspecifik kontext.
Samband och Påverkan
Prompt och kontext är grundläggande begrepp vid arbete med transformers, och de avgör hur modellen uppfattar indata och på vilken grund den genererar resultatet. Arkitekturellt skiljer transformern inte specifikt på \"prompt\" och \"kontext\" — båda är delar av den ingående tokensekvensen, som omvandlas till embeddings, berikas med positionsinformation och bearbetas gemensamt av självuppmärksamhetslager.
Prompt och kontext är oskiljaktigt förenade: kontexten är en del av prompten.
- Kontexten formar prompten: Ingenjören väljer ut och strukturerar relevant kontext för inkludering i prompten.
- Kontexten vägleder modellen: Den tillhandahållna informationen gör det möjligt för LLM att begränsa utrymmet för möjliga svar, fokusera på relevanta aspekter och undvika hallucinationer.
- Kontextens kvalitet avgör svarets kvalitet: Otillräcklig, irrelevant eller motsägelsefull kontext leder till oprecisa, allmänna eller felaktiga svar. Exakt och fullständig kontext ökar specificiteten och användbarheten hos genereringen.
- Påverkan på tolkningen av instruktioner: Kontexten kan förtydliga eller förändra tolkningen av allmänna instruktioner i prompten.
Promptens effektivitet beror till stor del på hur framgångsrikt ingenjören har lyckats samla in, filtrera och presentera relevant kontext för modellen.
Typer av Kontext
Kontext kan klassificeras efter olika kriterier:
Efter källa:
- Tillhandahållen av användaren: Explicit inmatning från användaren, dennes fråga eller uppgiftsbeskrivning.
- Från dialoghistorik: Tidigare meddelanden från användare och assistent (korttidsminne).
- Hämtad (Retrieved): Data från externa källor (dokument, databaser, webb) med hjälp av RAG.
- Från profil/kunskapsbas: Långsiktig information om användaren eller domänen.
- Statisk/Instruktiv: Information som ingenjören lagt in i promptmallen (instruktioner, exempel, rolldefinitioner).
Efter dynamik:
- Statisk kontext: Oföränderlig del av prompten (instruktioner, definitioner, exempel). Definierar den övergripande uppgiften.
- Dynamisk kontext: Information som förändras från förfrågan till förfrågan (användardata, RAG-resultat, aktuell tid). Tillhandahåller specifika detaljer.
Efter lagringstid (Minne):
- Korttidskontext: Historik för den aktuella dialogsessionen.
- Långtidskontext: Sparad data om användaren eller tidigare interaktioner, vilket kräver lagrings- och hämtningsmekanismer.
Kontexthantering
Effektiv kontexthantering är en nyckeluppgift inom prompt-engineering, särskilt med tanke på begränsningarna hos LLM:s kontextfönster. Huvudmetoder:
- RAG: Den vanligaste metoden för att arbeta med stora informationsmängder. Gör det möjligt att dynamiskt hitta och inkludera enbart de mest relevanta fragmenten från en omfattande kunskapsbas i prompten. Kräver en vektordatabas och effektiva sökmekanismer (lexikala eller semantiska).
- Chunking: Uppdelning av stora dokument i semantiskt sammanhängande eller fast storlekade delar för indexering och efterföljande hämtning via RAG.
- Sammanfattning: Komprimering av lång dialoghistorik eller omfångsrika dokument för att förmedla det huvudsakliga innebörden inom ett begränsat kontextfönster.
- Minneshantering (Memory Management): Användning av olika strategier för att lagra och hämta dialoghistorik i chattbottar och agenter (till exempel ConversationBufferMemory, ConversationSummaryBufferMemory i LangChain).
- Glidande fönster (Sliding Window): Att enbart behålla de N senaste dialogmeddelandena i kontexten.
- Filtrering och Prioritering: Urval av de mest relevanta kontextfragmenten baserat på deras vikt (till exempel med hjälp av relevanspoäng från sökningen) innan den slutliga prompten sammanställs.
Kontextens Roll i Prompt-Engineering
- Ökad Relevans: Kontexten gör det möjligt för modellen att generera svar som exakt motsvarar användarens förfrågan och situation.
- Minskning av Hallucinationer: Tillhandahållande av faktainformation (via RAG) tvingar modellen att förlita sig på den, snarare än att hitta på fakta.
- Personalisering: Kontext om användaren (preferenser, historik) möjliggör anpassning av svaren.
- Tillståndshantering: I dialoger och flerstegsprocesser säkerställer kontexten (historiken) kontinuitet och modellens medvetenhet om tidigare steg.
- Övervinnande av Modellens Kunskapsbegränsningar: RAG gör det möjligt för modellen att svara på frågor om händelser som inträffat efter dess träning, eller om specifika/privata data.
Begränsningar
- Kontextfönstrets gräns: Trots en ökning till 1–2 miljoner tokens hos moderna modeller kan bearbetning av sådana volymer vara kostsam och långsam. Kräver effektiva komprimerings- och urvalstrategier (RAG, sammanfattning).
- Sökning efter Relevant Kontext: RAG:s effektivitet beror på sökningens kvalitet. Felaktigt hämtad kontext kan förvirra modellen ("skräp in – skräp ut").
- \"Ointressedalen\" (Valley of Meh): Information som placeras i mitten av en mycket lång prompt kan ignoreras av modellen. Kräver strukturering av prompten (till exempel \"smörgåsteknik\").
- Risk för Kontextinjektion: Om kontexten hämtas från opålitliga källor (till exempel webbsidor) kan den innehålla skadliga instruktioner (prompt-injektioner).
Litteratur
- 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.
Se även
- Stora språkmodeller
- Kontextfönster
- Vektordatabaser
- LangChain