- OpenAI hat vor Kurzem eine leistungsstarke Funktion namens Predicted Outputs vorgestellt
- In den Tech-Medien hat sie kaum größere Aufmerksamkeit bekommen, ist aber durchaus beachtenswert
- Mit dieser Funktion lässt sich die Wartezeit bei API-Antworten verringern und die Generierung vorhersagbarer Ausgaben deutlich beschleunigen
Was ist Predicted Outputs?
- Eine Funktion in der Chat Completion API, die die Antwortgeschwindigkeit erhöht, wenn die Antwort weitgehend vorhersagbar ist
- Über den Parameter
prediction kann dem Modell die erwartete Ausgabe übergeben werden, damit es Ergebnisse effizienter erzeugt
- Derzeit nur für die Modelle gpt-4o und gpt-4o-mini verfügbar
So funktioniert Predicted Outputs
- Wenn der Großteil des Inhalts bereits vorhersagbar ist, kann dieser Inhalt dem Modell als Vorhersagewert mitgegeben werden
- Das Modell nutzt diesen Vorhersagewert, um die Antworterzeugung zu beschleunigen und die Leistung zu verbessern
Beispiel: Aktualisierung einer Konfigurationsdatei
- Beim Aktualisieren einer JSON-Konfigurationsdatei kann Predicted Outputs genutzt werden
- Statt die gesamte bestehende Datei neu zu erzeugen, wird die vorhandene Datei als Vorhersagewert übergeben und es werden nur die nötigen Änderungen angefordert
import OpenAI from "openai";
const config = `
{
"appName": "MyApp",
"version": "1.0.0",
"settings": {
"enableFeatureX": false,
"maxUsers": 100
}
}
`.trim();
const openai = new OpenAI();
const updatePrompt = `
Change "enableFeatureX" to true in the following JSON configuration. Respond only with the updated JSON, without any additional text.
`;
const completion = await openai.chat.completions.create({
model: "gpt-4o",
messages: [
{ role: "user", content: updatePrompt },
{ role: "user", content: config }
],
prediction: {
type: "content",
content: config
}
});
console.log(completion.choices[0].message.content);
Beispiel: Streaming und Predicted Outputs
- In Anwendungen, die Streaming-Antworten benötigen, reduziert Predicted Outputs die Latenz noch weiter
import OpenAI from "openai";
const config = `...`; // bestehende JSON-Konfigurationsdatei
const openai = new OpenAI();
const updatePrompt = `...`; // bestehender Request-Prompt
const completion = await openai.chat.completions.create({
model: "gpt-4o",
messages: [ /* ... */ ],
prediction: {
type: "content",
content: config
},
stream: true
});
for await (const chunk of completion) {
process.stdout.write(chunk.choices[0]?.delta?.content || "");
}
Tipps für Entwickler
- Das Beste daran ist, dass man für die Nutzung fast nichts zusätzlich tun muss
- Dem bestehenden API-Request muss lediglich ein neuer Parameter hinzugefügt werden
Einschränkungen
- Modellkompatibilität: Nur mit den Modellen gpt-4o und gpt-4o-mini nutzbar
- Kosten: Auch abgelehnte Vorhersage-Tokens werden genauso berechnet wie generierte Tokens. Um die Kosten im Blick zu behalten, sollte
rejected_prediction_tokens überwacht werden
- Nicht unterstützte Parameter:
- n (Werte größer als 1)
- logprobs
- presence_penalty (Werte größer als 0)
- frequency_penalty (Werte größer als 0)
- max_completion_tokens
- tools (kein Function Calling möglich)
- Modalitätsbeschränkung: Es wird nur die Textmodalität unterstützt; Audio-Ein- und -Ausgabe sind nicht möglich
Fazit
- OpenAIs Predicted Outputs ist ein innovatives Werkzeug zur Lösung häufiger Latenzprobleme in KI-Anwendungen
- Durch die Bereitstellung vorhersagbarer Ausgaben werden Antwortzeiten verkürzt und die Nutzererfahrung verbessert
1 Kommentare
Erinnert ein wenig an LMQL.