- 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 응용 프로그램에서 공통적으로 발생하는 지연 문제를 해결하는 혁신적인 도구임
 
- 예측 가능한 출력을 제공하여 응답 시간을 단축하고 사용자 경험을 향상시킴