13 Punkte von xguru 2024-11-22 | 1 Kommentare | Auf WhatsApp teilen
  • 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

 
woung717 2024-11-23

Erinnert ein wenig an LMQL.