<EbeneX/>
LLM Praxis · Updated 19. Februar 2026

Prompt Compression

Definition

Techniken, um Prompts zu verkürzen ohne wesentliche Informationen zu verlieren – für geringere Token-Kosten, niedrigere Latenz und bessere Nutzung des Kontextfensters.

Experte 2 Min. Lesezeit EN: Prompt Compression

Einfach erklärt

Jedes Token kostet Geld und Zeit. Bei RAG-Systemen werden oft mehrere Dokumente in den Prompt eingefügt – viele davon enthalten redundante oder irrelevante Informationen. Prompt Compression entfernt diese überflüssigen Teile, bevor der Prompt an das LLM gesendet wird.

Das Ziel: Gleiche oder bessere Antwortqualität bei deutlich weniger Tokens.

Kompressionsstrategien:

MethodeAnsatzKompressionsrate
ExtraktionWichtigste Sätze behalten2–5x
ZusammenfassungLLM fasst zusammen5–20x
LLMLinguaToken-Level-Kompression2–6x
Selective ContextSelf-Information-basiert2–4x

Technischer Deep Dive

LLMLingua in Python

from llmlingua import PromptCompressor

compressor = PromptCompressor(
    model_name="microsoft/llmlingua-2-bert-base-multilingual-cased-meetingbank",
    use_llmlingua2=True,
)

# Langer RAG-Kontext
context = """
[Dokument 1] ... sehr langer Text ...
[Dokument 2] ... weiterer langer Text ...
[Dokument 3] ... noch mehr Text ...
"""

compressed = compressor.compress_prompt(
    context,
    rate=0.5,          # 50% der Tokens behalten
    force_tokens=['\n'],  # Zeilenumbrüche immer behalten
)

print(f"Original: {compressed['origin_tokens']} Tokens")
print(f"Komprimiert: {compressed['compressed_tokens']} Tokens")
print(f"Einsparung: {compressed['ratio']:.1f}x")

RAG-Pipeline mit Kompression

async def rag_with_compression(query: str) -> str:
    # 1. Dokumente abrufen
    docs = await vector_db.search(query, top_k=10)
    context = "\n\n".join([d.text for d in docs])

    # 2. Kontext komprimieren (vor LLM-Call)
    compressed = compressor.compress_prompt(
        context,
        question=query,  # Query-aware Kompression
        rate=0.4,
    )

    # 3. LLM mit komprimiertem Kontext aufrufen
    response = await llm.generate(
        f"Kontext:\n{compressed['compressed_prompt']}\n\nFrage: {query}"
    )
    return response

Prompt Compression ist wie das Packen eines Koffers für eine Reise: Du nimmst nicht alles mit, was du besitzt, sondern nur das Wesentliche. Ein erfahrener Packer (Kompressionsalgorithmus) weiß, was wirklich gebraucht wird und was weggelassen werden kann – ohne dass die Reise schlechter wird.

Reduziert Token-Anzahl im Prompt – direkte Kostenersparnis bei API-Calls

Besonders relevant bei RAG: Abgerufene Dokumente oft redundant oder irrelevant

Methoden: Extraktion, Zusammenfassung, Selective Context, LLMLingua

RAG-Optimierung

Abgerufene Dokumente vor dem Einfügen in den Prompt komprimieren – weniger Tokens, gleiche Qualität

Long-Context-Verarbeitung

Lange Dokumente auf das Wesentliche reduzieren, bevor sie ins Kontextfenster passen müssen

Kostenreduktion

Bei hohem API-Volumen können 50% weniger Input-Tokens die Kosten halbieren

Verliert man durch Kompression wichtige Informationen?

Es gibt immer einen Trade-off zwischen Kompressionsrate und Informationserhalt. Gute Algorithmen wie LLMLingua erreichen 2-5x Kompression mit minimalem Qualitätsverlust. Für kritische Anwendungen sollte man die Kompressionsrate begrenzen und die Ausgabequalität evaluieren.

Wann lohnt sich Prompt Compression?

Besonders bei RAG-Systemen mit langen abgerufenen Dokumenten, bei hohem API-Volumen (Kostenersparnis), wenn das Kontextfenster ausgeschöpft ist, oder wenn Latenz kritisch ist. Für kurze Prompts ist der Overhead des Kompressionsschritts oft nicht gerechtfertigt.

Was ist der Unterschied zwischen Prompt Compression und Chunking?

Chunking teilt Dokumente in kleinere Teile auf, bevor sie in die Vektordatenbank gespeichert werden – ein Preprocessing-Schritt. Prompt Compression reduziert den bereits ausgewählten Text kurz vor dem LLM-Call – ein Inference-Schritt. Beide ergänzen sich in RAG-Pipelines.

Dein persönliches Share-Bild für Instagram – 1080×1080px, bereit zum Posten.