13 points par xguru 2024-11-22 | 1 commentaires | Partager sur WhatsApp
  • OpenAI a récemment dévoilé une fonctionnalité puissante appelée Predicted Outputs
  • Elle n’a pas beaucoup attiré l’attention des médias tech, mais elle mérite clairement qu’on s’y intéresse
  • Cette fonctionnalité peut réduire la latence des réponses API et accélérer considérablement la génération de sorties prévisibles

Qu’est-ce que Predicted Outputs ?

  • Une fonctionnalité de la Chat Completion API qui accélère les réponses lorsqu’elles sont en grande partie prévisibles
  • Elle permet de fournir au modèle une sortie attendue via le paramètre prediction afin de générer le résultat plus efficacement
  • Actuellement, elle n’est prise en charge que par les modèles gpt-4o et gpt-4o-mini

Comment fonctionne Predicted Outputs

  • Lorsque l’essentiel du contenu est déjà prévisible, il est possible de fournir ce contenu au modèle comme valeur de prédiction
  • Le modèle utilise cette prédiction pour accélérer la génération de la réponse et améliorer les performances

Exemple : mise à jour d’un fichier de configuration

  • On peut utiliser Predicted Outputs dans une situation où il faut mettre à jour un fichier de configuration JSON
  • Au lieu de régénérer tout le fichier existant, on fournit le fichier actuel comme prédiction et on ne demande que les modifications nécessaires
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);  

Exemple : streaming et Predicted Outputs

  • Dans les applications qui ont besoin de réponses en streaming, Predicted Outputs réduit encore davantage la latence
import OpenAI from "openai";  
  
const config = `...`; // fichier de configuration JSON existant  
  
const openai = new OpenAI();  
  
const updatePrompt = `...`; // prompt de requête existant  
  
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 || "");  
}  

Conseils pour les développeurs

  • L’un des aspects les plus intéressants est qu’il n’y a pratiquement rien à faire pour l’utiliser
  • Il suffit simplement d’ajouter un nouveau paramètre à une requête API existante

Limitations

  • Compatibilité des modèles : utilisable uniquement avec les modèles gpt-4o et gpt-4o-mini
  • Coût : les jetons de prédiction rejetés sont facturés au même prix que les jetons générés. Il faut surveiller rejected_prediction_tokens pour bien gérer les coûts
  • Paramètres non pris en charge :
    • n (valeur supérieure à 1)
    • logprobs
    • presence_penalty (valeur supérieure à 0)
    • frequency_penalty (valeur supérieure à 0)
    • max_completion_tokens
    • tools (appel de fonction non disponible)
  • Limitation de modalité : seule la modalité texte est prise en charge, l’entrée et la sortie audio ne sont pas possibles

Conclusion

  • Predicted Outputs d’OpenAI est un outil innovant pour résoudre les problèmes de latence courants dans les applications d’IA
  • En fournissant des sorties prévisibles, il réduit le temps de réponse et améliore l’expérience utilisateur

1 commentaires

 
woung717 2024-11-23

On dirait un peu LMQL.