12P by xguru 4일전 | favorite | 댓글 1개
  • OpenAI는 최근 Predicted Outputs라는 강력한 기능을 공개했음
  • 기술 미디어에서 크게 주목 받지 못했지만, 이는 주목할 만한 가치가 있음
  • 이 기능은 API 응답 대기 시간을 줄이고, 미리 예상 가능한 출력물의 생성 속도를 크게 향상 시킬 수 있음

Predicted Outputs란 무엇인가?

  • Chat Completion API에서 주로 예측 가능한 응답이 있는 경우 응답 속도를 높이는 기능
  • prediction 매개변수를 사용하여 예상되는 출력을 모델에 제공하여 효율적으로 결과를 생성할 수 있음
  • 현재 gpt-4o 및 gpt-4o-mini 모델에서만 지원됨

Predicted Outputs의 작동 방식

  • 이미 대부분의 콘텐츠가 예상 가능한 경우 해당 콘텐츠를 모델에 예측값으로 제공 가능
  • 모델은 이 예측값을 사용해 응답 생성을 가속화하고 성능을 향상시킴

예제: Configuration 파일 업데이트

  • JSON Conf 파일을 업데이트하는 상황에서 Predicted Outputs를 활용 가능
  • 기존 파일 전체를 새로 생성하는 대신, 기존 파일을 예측값으로 제공하고 필요한 변경만 요청함
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);  

예제 : 스트리밍 및 Predicted Outputs

  • 스트리밍 응답을 필요로 하는 애플리케이션에서는 Predicted Outputs가 대기 시간을 더욱 줄여줌
import OpenAI from "openai";  
  
const config = `...`; // 기존 JSON 구성 파일  
  
const openai = new OpenAI();  
  
const updatePrompt = `...`; // 기존 요청 프롬프트  
  
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 || "");  
}  

개발자를 위한 팁

  • 멋진 점은 사용하기 위해 거의 아무것도 필요하지 않다는 것
  • 그냥 기존 API 요청에 단순히 새로운 매개변수를 추가하면 됨

제약 사항

  • 모델 호환성: gpt-4o 및 gpt-4o-mini 모델에서만 사용 가능
  • 비용: 거부된 예측 토큰도 생성된 토큰과 동일한 비용이 부과됨. 비용 관리를 위해 rejected_prediction_tokens를 모니터링해야 함
  • 지원되지 않는 매개변수:
    • n (1보다 큰 값)
    • logprobs
    • presence_penalty (0보다 큰 값)
    • frequency_penalty (0보다 큰 값)
    • max_completion_tokens
    • tools (함수 호출 불가)
  • 모달리티 제한: 텍스트 모달리티만 지원하며, 오디오 입력 및 출력은 불가능함

결론

  • OpenAI의 Predicted Outputs는 AI 응용 프로그램에서 공통적으로 발생하는 지연 문제를 해결하는 혁신적인 도구임
  • 예측 가능한 출력을 제공하여 응답 시간을 단축하고 사용자 경험을 향상시킴

LMQL 비슷한 느낌이군요