13 pontos por xguru 2024-11-22 | 1 comentários | Compartilhar no WhatsApp
  • A OpenAI revelou recentemente um recurso poderoso chamado Predicted Outputs
  • Embora não tenha recebido grande destaque na mídia de tecnologia, vale muito a pena prestar atenção nele
  • Esse recurso pode reduzir a latência das respostas da API e acelerar bastante a geração de saídas previsíveis com antecedência

O que é Predicted Outputs?

  • É um recurso da Chat Completion API que acelera a resposta principalmente quando há uma resposta previsível
  • Usando o parâmetro prediction, é possível fornecer ao modelo a saída esperada para gerar o resultado com mais eficiência
  • Atualmente, ele é compatível apenas com os modelos gpt-4o e gpt-4o-mini

Como Predicted Outputs funciona

  • Quando a maior parte do conteúdo já é previsível, esse conteúdo pode ser fornecido ao modelo como valor previsto
  • O modelo usa esse valor previsto para acelerar a geração da resposta e melhorar o desempenho

Exemplo: atualização de arquivo de configuração

  • É possível usar Predicted Outputs em uma situação de atualização de um arquivo JSON Conf
  • Em vez de gerar novamente todo o arquivo existente, você fornece o arquivo atual como valor previsto e solicita apenas as mudanças necessárias
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);  

Exemplo: streaming e Predicted Outputs

  • Em aplicações que precisam de respostas em streaming, Predicted Outputs reduz ainda mais a latência
import OpenAI from "openai";  
  
const config = `...`; // arquivo de configuração JSON existente  
  
const openai = new OpenAI();  
  
const updatePrompt = `...`; // prompt de solicitação 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 || "");  
}  

Dicas para desenvolvedores

  • O mais legal é que quase nada é necessário para usar esse recurso
  • Basta adicionar um novo parâmetro à requisição existente da API

Limitações

  • Compatibilidade de modelo: só pode ser usado nos modelos gpt-4o e gpt-4o-mini
  • Custo: tokens de previsão rejeitados também são cobrados com o mesmo custo dos tokens gerados. Para controlar os custos, é preciso monitorar rejected_prediction_tokens
  • Parâmetros sem suporte:
    • n (valor maior que 1)
    • logprobs
    • presence_penalty (valor maior que 0)
    • frequency_penalty (valor maior que 0)
    • max_completion_tokens
    • tools (não é possível fazer function calling)
  • Limitação de modalidade: apenas a modalidade de texto é compatível; entrada e saída de áudio não são possíveis

Conclusão

  • O Predicted Outputs da OpenAI é uma ferramenta inovadora para resolver problemas de latência comuns em aplicações de IA
  • Ao fornecer saídas previsíveis, ele reduz o tempo de resposta e melhora a experiência do usuário

1 comentários

 
woung717 2024-11-23

Parece algo semelhante ao LMQL.