Zum Hauptinhalt springen
Lektion 4 von 20 · Produktion, Evaluierung und Optimierung

Vorhergesagte Ausgaben: Schnellere Antworten

Lektion 4 von 20 Aktualisiert am 3. November 2026 Fortgeschritten
Auf dieser Seite
  1. Antworten beschleunigen, wenn Sie die Struktur bereits kennen
  2. Der Validierungsmechanismus
  3. Automatische Entscheidung
  4. Kernaussagen

Lektion aktualisiert am 3. November 2026 basierend auf dem Predicted Outputs-Guide und der Deprecations-Seite von OpenAI: Diese Funktion existiert ausschließlich in Chat Completions (der Parameter prediction wird von der Responses API nicht akzeptiert, sodass die vorherige Version dieser Lektion fehlschlagen würde) und nur mit den Modellen GPT-4o, GPT-4o mini, GPT-4.1 und GPT-4.1 mini, die OpenAI am 14. Januar 2027 zurückziehen wird (GPT-4.1 nano wurde am 23. Oktober zurückgezogen). Der Guide listet keine neueren kompatiblen Modelle auf: Entwickeln Sie keine neuen Produkte auf Basis dieser Funktion, ohne einen Ausstiegsplan zu haben. Quellen: Predicted Outputs · Deprecations.

Antworten beschleunigen, wenn Sie die Struktur bereits kennen

Vorhergesagte Ausgaben (Predicted Outputs) adressieren ein sehr häufiges Szenario in der Produktion: Sie bitten das Modell, bestehenden Inhalt zu ändern, und Sie wissen im Voraus, dass der Großteil des Ergebnisses identisch mit dem Eingabewert sein wird. Ohne Vorhersage generiert das Modell jedes Token von Grund auf neu, einschließlich Zeilen, die niemand geändert haben möchte. Mit Vorhersage stellen Sie den erwarteten Text bereit; das Modell validiert, was übereinstimmt, und generiert ausschließlich die Teile, die sich tatsächlich unterscheiden. Die Latenz sinkt entsprechend.

Dieser Wandel verändert insbesondere das Profil von Bearbeitungsaufgaben. Ein Assistent, der eine Datei mit zweihundert Zeilen bearbeitet, um eine Funktionszeichenatur zu ändern, zahlt nicht mehr für die Generierung der gesamten Datei, sondern nur für die berührten Zeilen: Der Großteil der Arbeit reduziert sich auf einen Vergleich. Die relevanten Fälle sehen alle ähnlich aus: Code-Editierung, bei der Sie die vollständige Datei für eine gezielte Änderung senden; teilweise Umschreibung, bei der nur ein einzelner Absatz eines langen Dokuments umformuliert werden muss; Vorlage-Ergänzung, bei der nur Variablenfelder geändert werden; und strukturierte Daten-Updates, bei denen zwei oder drei Werte in einem JSON sich entwickeln, während der Rest der Struktur gleich bleibt. In jedem dieser Fälle existiert die erwartete Antwort bereits mit nur geringfügigen Unterschieden.

Ein Beispiel zur Code-Editierung

Der Aufruf ist wie ein standardmäßiger Chat Completions-Aufruf aufgebaut, ergänzt um einen prediction-Parameter, der den Inhalt enthält, den Sie antizipieren.

import openai

client = openai.OpenAI()

code_original = """
def calculate_price(quantity, unit_price, vat=0.20):
    subtotal = quantity * unit_price
    total = subtotal * (1 + vat)
    return total

def format_invoice(client, items):
    lines = []
    for item in items:
        price = calculate_price(item["qty"], item["price"])
        lines.append(f"{item['name']}: {price:.2f}€")
    return "\n".join(lines)
"""

# Wir prognostizieren, dass der Großteil des Codes unverändert bleibt
instruction = (
    "Modifizieren Sie die calculate_price-Funktion, um einen Rabatt-Parameter "
    "mit einem Standardwert von 0 hinzuzufügen. Wenden Sie den Rabatt vor der MwSt. an. "
    "Antworten Sie nur mit Code."
)

completion = client.chat.completions.create(
    model="gpt-4.1",
    messages=[
        {"role": "user", "content": instruction},
        {"role": "user", "content": code_original},
    ],
    prediction={
        "type": "content",
        "content": code_original,  # Die Vorhersage
    },
)

print(completion.choices[0].message.content)
# Das Modell regeneriert nur die modifizierten Zeilen — reduzierte Latenz

Die format_invoice-Funktion wird durch die Anfrage nicht beeinflusst: Sie wird so validiert, wie sie ist, ohne Generierungskosten. Nur die Zeilen von calculate_price, die den neuen Parameter aufnehmen, werden tatsächlich erzeugt.

Der Validierungsmechanismus

Das Verständnis dessen, was im Hintergrund passiert, vermeidet zwei häufige Missverständnisse. Das Modell vergleicht seine eigene Generierung Token für Token mit der von Ihnen bereitgestellten Vorhersage; solange die beiden übereinstimmen, werden die Token sofort validiert, wodurch die vollständige Generierungsrechnung umgangen wird. Sobald sie sich unterscheiden, übernimmt die normale Generierung. Das Endergebnis bleibt daher korrekt: Vorhersage beschleunigt die Dinge, sie zwingt nichts. Wenn Ihre Vorhersage falsch ist, erhalten Sie dennoch die richtige Antwort, einfach ohne den Gewinn.

Das zweite Missverständnis betrifft die Preisgestaltung. Abgelehnte Vorhersage-Token werden berechnet, was die Operation kontraproduktiv macht, wenn die erwartete Antwort nichts mit der Vorhersage zu tun hat. Messen Sie daher die Akzeptanzrate, bevor Sie das Muster verallgemeinern.

completion = client.chat.completions.create(
    model="gpt-4.1",
    messages=[
        {"role": "user", "content": "Fügen Sie einen Rabatt-Parameter zur calculate_price-Funktion hinzu."},
        {"role": "user", "content": code_original},
    ],
    prediction={
        "type": "content",
        "content": code_original,
    },
)

usage = completion.usage
print(f"Output tokens: {usage.completion_tokens}")
print(f"Accepted tokens (prediction): "
      f"{usage.completion_tokens_details.accepted_prediction_tokens}")
print(f"Rejected tokens (prediction): "
      f"{usage.completion_tokens_details.rejected_prediction_tokens}")

# Je höher das Verhältnis von akzeptierten zu Gesamt-Token, desto größer der Gewinn

Automatische Entscheidung

Da der Gewinn vollständig vom Typ der Anfrage abhängt, sollte die Entscheidung, Vorhersagen zu aktivieren oder nicht, kodifiziert werden und nicht jedem Entwickler überlassen bleiben. Die folgende Heuristik lehnt Vorhersagen bei Texten ab, die zu kurz sind, da die Overhead-Kosten des Sendens den Nutzen aufheben, und reser viert sie für Anweisungen, die eine Modifikation ausdrücken.

def should_use_prediction(original_text: str, instruction: str) -> bool:
    """Heuristik, um zu entscheiden, ob Predicted Outputs sich lohnen."""
    # Der Text muss lang genug sein
    if len(original_text) < 200:
        return False

    # Die Anweisung muss eine gezielte Modifikation sein
    edit_words = ["modify", "change", "replace", "add", "fix"]
    is_edit = any(word in instruction.lower() for word in edit_words)

    return is_edit

Dieser gleiche Schluss gilt auch für strukturierte Daten, wo die Ausbeute noch besser ist: Ein Konfigurations-JSON behält seine Schlüssel, Einrückungen und Reihenfolge bei, und nur die Werte verschieben sich.

import json

original_data = {
    "company": "Corsen AI",
    "employees": 42,
    "departments": ["Engineering", "Sales", "Marketing"],
    "address": {
        "street": "123 Avenue de la République",
        "city": "Paris",
        "zip_code": "75011",
    },
}

json_original = json.dumps(original_data, indent=2, ensure_ascii=False)

completion = client.chat.completions.create(
    model="gpt-4.1",
    messages=[
        {"role": "user", "content": (
            "Aktualisieren Sie das folgende JSON: Ändern Sie die Anzahl der Mitarbeiter "
            "auf 58 und fügen Sie die Abteilung Data Science hinzu. Antworten Sie nur mit JSON."
        )},
        {"role": "user", "content": json_original},
    ],
    prediction={
        "type": "content",
        "content": json_original,
    },
)

Drei Vorbehalte vor der Bereitstellung. Streaming ist kompatibel, und dies ist sogar dort, wo der Latenzgewinn am deutlichsten ist. Mehrere Parameter sind jedoch nicht kompatibel: n größer als 1, logprobs, positive presence_penalty oder frequency_penalty, Audio, Modalitäten außer Text, max_completion_tokens und Tools (Function Calling). Schließlich ist die Funktion an Modelle mit Ende des Lebenszyklus gebunden: GPT-4o, GPT-4o mini, GPT-4.1 und GPT-4.1 mini werden am 14. Januar 2027 zurückgezogen, und kein neueres Modell wird als kompatibel angekündigt. Für schnelle Editierungen auf aktuellen Modellen ist der nachhaltige Weg, das Modell nach einem Diff oder einem Patch zu fragen, anstatt die gesamte Datei.

Kernaussagen

  • Vorhergesagte Ausgaben beschleunigen Antworten, wenn Sie die erwartete Struktur kennen — ausschließlich in Chat Completions
  • Ideal für Code-Editierung, JSON-Updates, teilweise Umschreibung
  • Prüfen Sie accepted_prediction_tokens, um den tatsächlichen Gewinn zu messen
  • Abgelehnte Vorhersage-Token werden berechnet: Vorhersagen nicht willkürlich treffen
  • Nutzen Sie sie nicht für völlig neue Generierungen
  • Kompatible Modelle (GPT-4o, GPT-4.1 und deren Mini-Versionen) wurden am 14. Januar 2027 zurückgezogen: Planen Sie eine Alternative, wie die Diff-Generierung