13 puntos por xguru 2024-11-22 | 1 comentarios | Compartir por WhatsApp
  • 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

 
woung717 2024-11-23

Da una sensación parecida a LMQL.