OpenAI introdujo recientemente una potente función llamada Predicted Outputs (Resultados previstos) , que entró en escena sin que los medios técnicos le prestaran demasiada atención, un descuido que merece una corrección. Noté que mencionaron esto en X en su cuenta de desarrollador , pero no recibió mucha publicidad. Decidí llamar la atención sobre ello porque es una función realmente interesante y útil.
Las salidas previstas reducen significativamente la latencia de las respuestas del modelo, especialmente cuando gran parte de la salida se conoce de antemano. Esta característica es particularmente beneficiosa para aplicaciones que implican la regeneración de documentos de texto o archivos de código con modificaciones menores.
Los resultados previstos permiten a los desarrolladores acelerar las respuestas de la API a partir de las finalizaciones de chat cuando el resultado esperado es en gran medida predecible. Al proporcionar una predicción de la respuesta esperada mediante el parámetro prediction
en las finalizaciones de chat, el modelo puede generar el resultado requerido de manera más eficiente. Esta funcionalidad está disponible actualmente con los últimos modelos gpt-4o y gpt-4o-mini .
Cuando se tiene una respuesta en la que ya se conoce la mayor parte del contenido, se puede proporcionar ese contenido esperado como predicción al modelo. El modelo utiliza esta predicción para acelerar la generación de la respuesta, lo que reduce la latencia y mejora el rendimiento.
Imagina que tienes un archivo de configuración JSON que necesita una actualización menor. A continuación, se muestra un ejemplo de dicho archivo:
{ "appName": "MyApp", "version": "1.0.0", "settings": { "enableFeatureX": false, "maxUsers": 100 } }
Supongamos que desea actualizar "enableFeatureX"
a true
. En lugar de generar todo el archivo desde cero, puede proporcionar el archivo original como predicción e indicarle al modelo que realice el cambio necesario.
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 } }); // Output the updated configuration console.log(completion.choices[0].message.content);
En este ejemplo, el modelo genera rápidamente el archivo de configuración actualizado, aprovechando la predicción para minimizar el tiempo de respuesta.
Para las aplicaciones que requieren respuestas en streaming, las salidas previstas ofrecen reducciones de latencia aún mayores. A continuación, se muestra cómo puede implementar el ejemplo anterior mediante streaming:
import OpenAI from "openai"; const config = `...`; // Original JSON configuration const openai = new OpenAI(); const updatePrompt = `...`; // Prompt as before 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 || ""); }
Al momento de escribir este artículo, no existen alternativas a esta solución por parte de los competidores. La función de resultados previstos de OpenAI parece ser una oferta única que aborda la necesidad específica de reducción de latencia al regenerar contenido conocido con modificaciones menores.
Lo bueno es que para empezar a utilizarlo no se necesita prácticamente nada. Basta con cogerlo y usarlo añadiendo tan solo un nuevo parámetro a la solicitud de API. Esto hace que sea muy fácil para los desarrolladores implementar esta función en sus aplicaciones existentes.
Si bien los resultados previstos ofrecen ventajas significativas, hay que tener en cuenta aspectos importantes:
rejected_prediction_tokens
en los datos de uso para administrar los costos.n
(valores mayores que 1)logprobs
presence_penalty
(valores mayores que 0)frequency_penalty
(valores mayores que 0)max_completion_tokens
tools
(no se admite la llamada de funciones)
Los resultados previstos de OpenAI son una característica innovadora que aborda un desafío común en las aplicaciones de IA: reducir la latencia cuando la respuesta es en gran medida predecible. Al permitir que los desarrolladores proporcionen los resultados esperados, acelera los tiempos de respuesta y mejora la experiencia del usuario.
En mi opinión personal, los modelos de OpenAI no son tan sólidos como los de Anthropic. Sin embargo, OpenAI produce muchas soluciones interesantes y realmente necesarias en otras áreas. Características como los resultados previstos distinguen a OpenAI de otros proveedores de IA, ya que ofrecen soluciones únicas que satisfacen necesidades específicas de la comunidad de desarrolladores.