Prompt-Kompression
Prompt-Kompression (engl. prompt compression) ist eine Sammlung von Methoden im Prompt-Engineering, die darauf abzielen, die Länge des Eingabetextes (Prompts) für große Sprachmodelle (LLM) zu reduzieren, während die wesentlichen Informationen erhalten bleiben[1]. Mit dem Anwachsen des Kontextfensters von LLMs auf Millionen von Tokens (z. B. bei Google Gemini) entstand die Möglichkeit, sehr lange Texte zu verarbeiten. Dies brachte jedoch neue Herausforderungen mit sich: hohe Kosten für API-Aufrufe, erhöhte Latenz und eine Abnahme der Schlussfolgerungsqualität aufgrund des „Lost-in-the-Middle“-Effekts[2].
Die Prompt-Kompression löst diese Probleme, indem sie die wesentlichsten Daten in einer verkürzten Eingabe konzentriert und redundante Informationen entfernt. Dies verringert das Risiko, das Kontextlimit zu überschreiten, beschleunigt die Generierung, senkt die Kosten und bewahrt gleichzeitig die Genauigkeit der Antworten[3].
Methoden der Prompt-Kompression
Die Methoden der Prompt-Kompression lassen sich in mehrere Hauptkategorien einteilen.
Token-Entfernung (Filterung)
Dieser Ansatz besteht darin, die am wenigsten informativen Tokens, Phrasen oder Sätze aus dem Originaltext zu entfernen, ohne die verbleibenden Teile zu verändern. Die Wichtigkeit der Tokens wird heuristisch bestimmt.
- LLMLingua: Eine von Microsoft entwickelte Methode, die die Perplexität jedes Tokens berechnet und diejenigen entfernt, die die Vorhersagbarkeit des Textes nur geringfügig beeinflussen. In der Version LongLLMLingua wird dieser Ansatz für lange Dokumente angepasst, wobei die Relevanz von Textabschnitten in Bezug auf eine spezifische Benutzeranfrage berücksichtigt wird[4].
- Selective-Context: Verwendet ein kleines Sprachmodell, um die Self-Information jedes Tokens zu bewerten und die Tokens mit der geringsten Informativität zu verwerfen[5].
- PCRL (Prompt Compression via Reinforcement Learning): Trainiert einen Agenten mittels Reinforcement Learning, um für jedes Token die Entscheidung „behalten“ oder „entfernen“ zu treffen, mit dem Ziel, eine Qualitätsmetrik (z. B. ROUGE) der finalen Antwort zu maximieren[6].
Abstraktive Kompression (Zusammenfassung)
Bei diesem Ansatz generiert ein Kompressor-Modell (normalerweise kleiner) eine kurze, abstrakte Zusammenfassung des Originaltextes, die dann an das Haupt-LLM übergeben wird.
- RECOMP (Retrieval-Compression-Prompting): Für jedes Dokument in der Wissensdatenbank wird vorab eine kurze Zusammenfassung (summary) generiert, die mögliche Benutzeranfragen berücksichtigt (query-aware summary). Dies ermöglicht nicht nur die Kompression, sondern auch die Vorverarbeitung von Informationen[7].
- PRCA (Prompt Compression with Reinforced Context Aggregation): Kombiniert das Training eines Summarizer-Modells mit Reinforcement Learning, um Zusammenfassungen zu generieren, die die Antwortqualität des Haupt-LLM maximieren[8].
- Prompt-SAW (Semantic Aware Winnowing): Extrahiert vor der Zusammenfassung einen Wissensgraphen (Entitäten und Beziehungen) aus dem Text, wählt relevante Knoten des Graphen aus und generiert auf deren Grundlage den komprimierten Text[9].
Extraktive Kompression
Diese Methode extrahiert Schlüsselfragmente (Sätze, Absätze) aus dem Originaltext, ohne sie umzuformulieren.
- Reranker-LLMs: Verwendet ein Reranker-Modell (reranker), das die Wichtigkeit jedes Absatzes oder Dokuments für die aktuelle Anfrage bewertet und nur die relevantesten auswählt[10].
- CompAct: Demonstriert eine iterative Extraktions-Zusammenfassungs-Methode. Das Modell nimmt sequenziell Segmente eines langen Textes, komprimiert sie und prüft, ob die Informationen für eine Antwort ausreichen. Falls nicht, wird das nächste Segment hinzugefügt und erneut komprimiert, wodurch eine erhebliche Kompression bei gleichbleibender Qualität erreicht wird[11].
Destillation und „Memory Tokens“
Eine neue Klasse von Methoden, bei der das Modell anstelle von Text speziell trainierte Platzhalter-Tokens oder Embeddings erhält, die komprimierte Informationen enthalten.
- Gist Tokens: Das LLM wird darauf trainiert, lange Anweisungen in einen kleinen Satz spezieller Gist-Tokens zu „falten“ (z. B. 20–30 Tokens anstelle von mehreren Tausend). Diese Tokens werden dann anstelle des ursprünglichen Prompts verwendet und ermöglichen eine bis zu 26-fache Kompression bei minimalem Qualitätsverlust[12].
- Soft Prompt Tuning: Anstelle eines textbasierten Prompts werden trainierbare „virtuelle Tokens“ (Embeddings) verwendet, die für die Lösung einer bestimmten Aufgabe optimiert werden.
- SelfCP: Schlägt vor, das eingefrorene LLM (frozen LLM) selbst als Kompressor zu verwenden. Indem dem Modell ein Textsegment mit speziellen Markierungen zugeführt wird, generiert es eine dichte Repräsentation (memory tokens), die es anschließend selbst für die Antwort verwendet[13].
Effektivität und Kompromisse
- Beschleunigung und Kostenreduktion: Da die Komplexität eines Transformers quadratisch ($O(n^2)$) mit der Sequenzlänge wächst, führt eine mehrfache Verkürzung des Prompts zu erheblichen Einsparungen. Beispielsweise zeigen Gist Tokens bei einer 26-fachen Kompression eine Einsparung von bis zu 40 % an FLOPs[12].
- Qualitätssteigerung: Manchmal kann die Prompt-Kompression sogar die Qualität der Antworten verbessern, wenn der Originaltext Rauschen oder ablenkende Details enthielt. Das Entfernen von irrelevantem Kontext hilft dem Modell, sich besser auf die wichtigen Aspekte der Aufgabe zu konzentrieren.
- Qualitätskompromiss (Faithfulness): Eine zu aggressive Kompression kann zum Verlust wichtiger Details (Daten, Namen, Negationen) führen, was die Antwortqualität beeinträchtigt. Abstraktive Methoden sind besonders anfällig für das Risiko von Halluzinationen. Die Kontrolle der Vollständigkeit und Genauigkeit (faithfulness) des komprimierten Prompts ist eine zentrale Herausforderung.
Bezug zu anderen Bereichen
- Retrieval-Augmented Generation (RAG): RAG und Prompt-Kompression sind eng miteinander verbunden. RAG kann als externer Kompressionsschritt betrachtet werden: Anstatt die gesamte Datenbank zu verarbeiten, werden relevante Dokumente gesucht und ausgewählt. Die Prompt-Kompression ergänzt RAG, indem sie das Volumen der bereits ausgewählten Dokumente reduziert, bevor sie dem LLM zugeführt werden.
- In-Context Learning: In-Kontext-Beispiele (Demonstrationen) erhöhen die Länge des Prompts erheblich. Die Kompression dieser Demonstrationen (z. B. durch Instruction Distillation, bei der viele Beispiele durch eine einzige kurze Anweisung ersetzt werden) ist ein aktives Forschungsfeld.
Literatur
- Ali, M. et al. (2024). Prompt-SAW: Semantic-Aware Winnowing for Prompt Compression. arXiv:2403.00000.
- Gao, C. et al. (2024). SelfCP: Compressing Over-Limit Prompt via the Frozen Large Language Model Itself. arXiv:2405.17052.
- Jiang, H. et al. (2023). LLMLingua: Compressing Prompts for Accelerated Inference of Large Language Models. arXiv:2310.05736.
- Jiang, H. et al. (2023). LongLLMLingua: Accelerating and Enhancing LLMs in Long-Context Scenarios via Prompt Compression. arXiv:2310.06839.
- Jung, H.; Kim, K. (2023). PCRL: Discrete Prompt Compression with Reinforcement Learning. arXiv:2308.08758.
- Li, M. et al. (2023). Selective-Context: Compressing Context to Summarise and Answer Questions. arXiv:2307.00000.
- Mu, J. et al. (2023). Learning to Compress Prompts with Gist Tokens. NeurIPS 2023.
- Xu, F.; Shi, W.; Choi, E. (2023). RECOMP: Improving Retrieval-Augmented LMs with Compression and Selective Augmentation. arXiv:2310.04408.
- Yang, C. et al. (2023). PRCA: Prompt Compression with Reinforced Context Aggregation. arXiv:2311.00000.
- Yoon, J. et al. (2024). CompAct: Interactive Prompt Compression for Long-Document QA. arXiv:2402.00000.
- Zhang, S. et al. (2024). Efficient Prompting Methods for Large Language Models: A Survey. arXiv:2404.01077.
- Jha, S. et al. (2024). Characterizing Prompt Compression Methods for Long Context Inference. arXiv:2407.08892.
Einzelnachweise
- ↑ Jha, S., et al. (2024). „Characterizing Prompt Compression Methods for Long Context Inference“. arXiv. [1]
- ↑ „Efficient Prompting Methods for Large Language Models: A Survey“. arXiv. [2]
- ↑ „Prompt Compression: A Guide With Python Examples“. DataCamp. [3]
- ↑ Jiang, H., et al. (2023). „LLMLingua: Compressing Prompts for Accelerated Inference of Large Language Models“. arXiv.
- ↑ Li, M. (2023). „Compressing context to summarize and answer questions“. arXiv.
- ↑ Jung, H., & Kim, K. (2023). „Learning to Compress Prompts with Reinforcement Learning“. arXiv.
- ↑ Xu, F., et al. (2024). „RECOMP: Improving Retrieval-Augmented LMs with Compression and Selective Augmentation“. arXiv.
- ↑ Yang, C., et al. (2023). „PRCA: A new framework for prompt compression“. arXiv.
- ↑ Ali, M., et al. (2024). „Prompt-SAW: A new method for prompt compression“. arXiv.
- ↑ Pradeep, R., et al. (2023). „How to select the best passages for RAG?“. arXiv.
- ↑ Yoon, J., et al. (2024). „CompAct: A new framework for interactive prompt compression“. arXiv.
- ↑ 12.0 12.1 Mu, J., et al. (2023). „Learning to Compress Prompts with Gist Tokens“. OpenReview. [4]
- ↑ Gao, C., et al. (2024). „SelfCP: Compressing Over-Limit Prompt via the Frozen Large Language Model Itself“. arXiv. [5]