- OpenAI gần đây đã công bố một tính năng mạnh mẽ có tên Predicted Outputs
- Dù chưa được truyền thông công nghệ chú ý nhiều, đây là một tính năng rất đáng quan tâm
- Tính năng này có thể giảm độ trễ khi chờ phản hồi API và tăng đáng kể tốc độ tạo ra những đầu ra có thể dự đoán trước
Predicted Outputs là gì?
- Đây là tính năng giúp tăng tốc độ phản hồi trong Chat Completion API khi phản hồi chủ yếu có thể dự đoán trước
- Bằng cách dùng tham số
prediction, bạn có thể cung cấp trước đầu ra dự kiến cho mô hình để tạo kết quả hiệu quả hơn
- Hiện chỉ được hỗ trợ trên các mô hình gpt-4o và gpt-4o-mini
Cách Predicted Outputs hoạt động
- Nếu phần lớn nội dung đã có thể dự đoán từ trước, bạn có thể cung cấp nội dung đó cho mô hình dưới dạng giá trị dự đoán
- Mô hình sẽ dùng giá trị dự đoán này để tăng tốc quá trình tạo phản hồi và cải thiện hiệu năng
Ví dụ: cập nhật tệp cấu hình
- Có thể tận dụng Predicted Outputs trong tình huống cập nhật tệp cấu hình JSON
- Thay vì tạo lại toàn bộ tệp hiện có, bạn cung cấp tệp hiện tại làm giá trị dự đoán và chỉ yêu cầu các thay đổi cần thiết
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);
Ví dụ: streaming và Predicted Outputs
- Trong các ứng dụng cần phản hồi streaming, Predicted Outputs giúp giảm độ trễ hơn nữa
import OpenAI from "openai";
const config = `...`; // existing JSON configuration file
const openai = new OpenAI();
const updatePrompt = `...`; // existing request prompt
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 || "");
}
Mẹo cho nhà phát triển
- Điểm hay là hầu như không cần thêm gì để sử dụng tính năng này
- Bạn chỉ cần thêm một tham số mới đơn giản vào yêu cầu API hiện có
Hạn chế
- Tương thích mô hình: chỉ dùng được với gpt-4o và gpt-4o-mini
- Chi phí: ngay cả các token dự đoán bị từ chối cũng bị tính phí như token được tạo ra. Cần theo dõi
rejected_prediction_tokens để quản lý chi phí
- Các tham số không được hỗ trợ:
- n (giá trị lớn hơn 1)
- logprobs
- presence_penalty (giá trị lớn hơn 0)
- frequency_penalty (giá trị lớn hơn 0)
- max_completion_tokens
- tools (không thể gọi hàm)
- Giới hạn modality: chỉ hỗ trợ modality văn bản, không hỗ trợ đầu vào và đầu ra âm thanh
Kết luận
- Predicted Outputs của OpenAI là một công cụ đột phá để giải quyết vấn đề độ trễ thường gặp trong các ứng dụng AI
- Bằng cách cung cấp đầu ra có thể dự đoán trước, tính năng này rút ngắn thời gian phản hồi và cải thiện trải nghiệm người dùng
1 bình luận
Cảm giác khá giống LMQL nhỉ