OpenAI 12天发布会Day9, 今日宣布推出一系列针对开发者的强大模型、全新定制工具以及性能、灵活性和成本效益的升级,旨在助力开发者构建更智能、更强大的 AI 应用。本次更新涵盖以下关键内容:
1. API 中的 OpenAI o1
OpenAI o1 模型正式在 API 中向 5 级使用用户开放。作为 OpenAI o1-preview 的继任者,o1 模型旨在处理复杂的、多步骤任务,并提供更高的准确性。该模型具备以下关键特性:
- • 函数调用: 无缝连接 o1 模型与外部数据和 API。
- • 结构化输出: 生成可靠地遵循自定义 JSON Schema 的响应。
- • 开发者消息: 允许开发者指定模型的指令或上下文,例如定义语气、风格和其他行为指导。
- • 视觉能力: 能够理解图像,为科学、制造或编码等需要视觉输入的领域解锁更多应用。
- • 更低延迟: 针对给定请求,o1 模型平均使用的推理 Token 比 o1-preview 少 60%。
- • 推理力度参数: 新增
reasoning_effort
API 参数,允许开发者控制模型在回答问题前的思考时间
本次发布的 o1-2024-12-17 版本是两周前在 ChatGPT 中发布的模型的全新后训练版本。它在基于用户反馈的模型行为方面进行了改进,同时保持了在 o1 系统卡片中评估的前沿能力。此外,ChatGPT 中的 o1 模型也同步更新至此版本。
在多个基准测试中,o1-2024-12-17 取得了最新的技术水平,显著提高了成本效益和性能。具体数据如下:
类别 | 评估指标 | o1-2024-12-17 | o1-preview |
通用 | GPQA diamond | 75.7 | 73.3 |
MMLU (pass @1) | 91.8 | 90.8 | |
编码 | SWE-bench Verified | 48.9 | 41.3 |
LiveCodeBench | 76.6 | 52.3 | |
数学 | MATH (pass @1) | 96.4 | 85.5 |
AIME 2024 (pass @1) | 79.2 | 42.0 | |
MGSM (pass @1) | 89.3 | 90.8 | |
视觉 | MMMU (pass @1) | 77.3 | — |
MathVista (pass @1) | 71.0 | — | |
事实性 | SimpleQA | 42.6 | 42.4 |
代理 | TAU-bench (零售) | 73.5 | — |
TAU-bench (航空) | 54.2 | — |
此外,测试表明,o1-2024-12-17 在函数调用和结构化输出方面显著优于 gpt-4o
OpenAI 将逐步增加模型的访问权限,同时努力扩展访问范围至其他使用级别并提高速率限制。
2. 实时 API 改进
实时 API 旨在帮助开发者创建低延迟、自然的对话体验,适用于语音助手、实时翻译工具、虚拟导师等应用场景。本次更新重点包括:
WebRTC 支持: 引入 WebRTC 支持,简化跨平台实时语音产品的构建和扩展。WebRTC 负责处理音频编码、流式传输、噪声抑制和拥塞控制。以下是一个使用 JavaScript 集成 WebRTC 的示例代码:
async function createRealtimeSession(localStream, remoteAudioEl, token) {
const pc = new RTCPeerConnection();
pc.ontrack = e => remoteAudioEl.srcObject = e.streams[0];
pc.addTrack(localStream.getTracks()[0]);
const offer = await pc.createOffer();
await pc.setLocalDescription(offer);
const headers = { Authorization: `Bearer ${token}`, 'Content-Type': 'application/sdp' };
const opts = { method: 'POST', body: offer.sdp, headers };
const resp = await fetch('https://api.openai.com/v1/realtime', opts);
await pc.setRemoteDescription({ type: 'answer', sdp: await resp.text() });
return pc;
}
降低 GPT-4o 和 GPT-4o mini 的实时快照成本: 发布 gpt-4o-realtime-preview-2024-12-17,语音质量更高,输入更可靠,成本降低 60%。同时,推出 GPT-4o mini 的实时版本 gpt-4o-mini-realtime-preview-2024-12-17,以更低的成本提供相同的语音体验
更强大的响应控制:
- • 并发带外响应: 支持后台任务,例如内容审核或分类,而不会中断用户的语音交互
- • 自定义输入上下文: 允许开发者指定哪些会话项作为模型输入
- • 受控响应时序: 支持使用服务器端语音活动检测(VAD),并手动触发语音回复,从而更好地控制时序和准确性
- • 最大会话时长: 从 15 分钟增加到 30 分钟
3. 偏好微调
微调 API 现在支持偏好微调,使开发者可以根据用户和开发者的偏好定制模型。该方法使用直接偏好优化(DPO)来比较模型响应对,教会模型区分偏好和非偏好输出。偏好微调在语气、风格和创造性等主观任务上尤为有效。
与监督微调相比,偏好微调具有以下差异:
监督微调 (SFT) | 偏好微调 (PFT) | |
目标 | 鼓励模型生成正确的输出 | 优化模型以倾向期望的行为 |
通过复制标记的输出 | 通过加强偏好响应并降低非偏好响应的可能性 | |
训练数据 | 确切的输入和输出对 | 通过人工注释、A/B 测试或合成数据生成的偏好和非偏好模型输出对 |
用例 | 易于准备理想输出的任务,例如自定义代码格式和严格的正确性 | 对于“更好”的响应是主观的,例如创意写作或总结的任务更有效 |
偏好微调已开始与合作伙伴进行测试,并已取得令人鼓舞的成果。偏好微调将首先应用于 gpt-4o-2024-08-06,并将很快支持 gpt-4o-mini-2024-07-18。
4. Go 和 Java SDK
OpenAI 还推出了两个新的官方 SDK,分别针对 Go 和 Java,以完善现有的 Python、Node.js 和 .NET 库。
Go SDK: 适用于构建可扩展的 API 和后端系统。以下是 Go SDK 的示例代码:
client := openai.NewClient()
ctx := context.Background()
prompt := "Write me a haiku about Golang."
completion, err := client.Chat.Completions.New(
ctx,
openai.ChatCompletionNewParams{
Messages: openai.F(
[]openai.ChatCompletionMessageParamUnion{
openai.UserMessage(prompt),
},
),
Model: openai.F(openai.ChatModelGPT4o),
},
)
Java SDK: 则适用于企业软件开发,提供类型化的请求和响应对象,以及管理 API 请求的实用工具。以下是 Java SDK 的示例代码:
OpenAIClient client = OpenAIOkHttpClient.fromEnv();
ChatCompletionCreateParams params = ChatCompletionCreateParams
.builder()
.message(List.of(
ChatCompletionMessageParam.ofChatCompletionUserMessageParam(
ChatCompletionUserMessageParam
.builder()
.role(ChatCompletionUserMessageParam.Role.USER)
.content(
ChatCompletionUserMessageParam.Content.ofTextContent(
"What is the origin of Java's Duke mascot?"
)
)
.build()
)
))
.model(ChatModel.O1_PREVIEW)
.build();
ChatCompletion chatCompletion = client.chat().completions().create(params);
总结
OpenAI 的此次更新为开发者带来了强大的工具和模型,旨在推动 AI 应用的创新和发展。无论你是构建新的语音应用、微调模型还是开发前沿的代理应用,这些更新都将为你带来更大的灵活性和效率。建议开发者查阅 API 文档,开始探索和实验这些新功能