- OpenAI presentó recientemente una potente función llamada Predicted Outputs
- Aunque no recibió demasiada atención en los medios tecnológicos, vale la pena prestarle atención
- Esta función puede reducir la latencia de las respuestas de la API y acelerar considerablemente la generación de salidas que pueden anticiparse de antemano
¿Qué es Predicted Outputs?
- Función de la Chat Completion API que acelera las respuestas cuando estas son en gran parte predecibles
- Usa el parámetro
prediction para proporcionar al modelo una salida esperada y así generar el resultado de forma más eficiente
- Actualmente solo es compatible con los modelos
gpt-4o y gpt-4o-mini
Cómo funciona Predicted Outputs
- Cuando la mayor parte del contenido ya es predecible, ese contenido puede pasarse al modelo como valor de predicción
- El modelo usa ese valor de predicción para acelerar la generación de la respuesta y mejorar el rendimiento
Ejemplo: actualización de un archivo de configuración
- En una situación donde se actualiza un archivo JSON de configuración, se puede aprovechar Predicted Outputs
- En lugar de volver a generar todo el archivo desde cero, se entrega el archivo existente como valor de predicción y solo se solicitan los cambios necesarios
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);
Ejemplo: streaming y Predicted Outputs
- En aplicaciones que requieren respuestas en streaming, Predicted Outputs reduce todavía más la latencia
import OpenAI from "openai";
const config = `...`; // archivo de configuración JSON existente
const openai = new OpenAI();
const updatePrompt = `...`; // prompt de solicitud existente
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 || "");
}
Consejos para desarrolladores
- Lo mejor es que casi no hace falta nada para usarlo
- Basta con añadir un nuevo parámetro a una solicitud existente de la API
Limitaciones
- Compatibilidad de modelos: solo puede usarse con los modelos
gpt-4o y gpt-4o-mini
- Costo: los tokens de predicción rechazados también se cobran al mismo precio que los tokens generados. Para controlar los costos, hay que monitorear
rejected_prediction_tokens
- Parámetros no compatibles:
n (valores mayores que 1)
logprobs
presence_penalty (valores mayores que 0)
frequency_penalty (valores mayores que 0)
max_completion_tokens
tools (no se permite function calling)
- Restricción de modalidad: solo admite modalidad de texto; no permite entrada ni salida de audio
Conclusión
- Predicted Outputs de OpenAI es una herramienta innovadora para resolver los problemas de latencia que aparecen con frecuencia en las aplicaciones de IA
- Al proporcionar una salida predecible, reduce el tiempo de respuesta y mejora la experiencia del usuario
1 comentarios
Da una sensación parecida a LMQL.