paint-brush
Resultados previstos: la función de OpenAI que probablemente no conocíapor@iamarsenibragimov
Nueva Historia

Resultados previstos: la función de OpenAI que probablemente no conocía

por iamarsenibragimov4m2024/11/20
Read on Terminal Reader

Demasiado Largo; Para Leer

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. La característica parece ser una oferta única que aborda la necesidad específica de reducción de latencia al regenerar contenido.
featured image - Resultados previstos: la función de OpenAI que probablemente no conocía
iamarsenibragimov HackerNoon profile picture
0-item


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.


¿Qué son los resultados previstos?

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 .


¿Cómo funcionan los resultados previstos?

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.


Ejemplo personalizado: actualización de archivos de configuración

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.


Transmisión con resultados previstos

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.


Consejos para desarrolladores

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.


Limitaciones

Si bien los resultados previstos ofrecen ventajas significativas, hay que tener en cuenta aspectos importantes:

  • Compatibilidad de modelos : solo los modelos gpt-4o y gpt-4o-mini admiten resultados previstos. Creo que el hecho de que solo esté disponible en estos modelos no es un problema en absoluto, porque actualmente son los mejores modelos de OpenAI y, de todos modos, el GPT-4 original es demasiado lento para esto.
  • Implicancias de facturación : los tokens de predicción rechazados se facturan a la misma tarifa que los tokens generados. Controle los tokens de rejected_prediction_tokens en los datos de uso para administrar los costos.
  • Parámetros no admitidos :
    • 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)
  • Restricciones de modalidad : solo se admiten modalidades de texto; las entradas y salidas de audio son incompatibles con las salidas previstas.


Conclusión

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.