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