OpenAI 预告说,Day9 是属于开发者的一天。所以我早早的搬着小板凳来看直播了~
果然,今天直播放了大活:
第一件大事,满血版 o1 开放 API 调用了,带着 20 万 tokens 的上下文长度、最大 10 万输出 tokens 长度。
这次 OpenAI 开放 API 的模型命名为 o1-2024-12-17,是基于两周前的 o1 满血版后训练的船新版本。日后可能还会继续更新。
随着 o1 API 一起上线的,还有一系列开发者需要的功能:
- 指定推理工作量大小。新增了一个 reasoning effort 功能,可以自行选择 o1 的“推理工作量”,有高中低三档。如果增加推理工作量,o1 推理用的 tokens 更多,适用于难度更高的工作;推理的时间也会增加,响应更慢。
(注意,推理用的 tokens 也按输出 tokens 计费哦)
- 开发者消息(Developer messages)。功能类似于此前的“系统提示词(system prompt)”。
跑分这方面,OpenAI 就只跟自家的模型对比了一下,我们直接看图:
定价这方面,o1 与 o1-preview 保持一致:
15 美元(大约 109.27 元)/百万输入 tokens;
60 美元(约 437.08 元)/百万输出 tokens;
7.5 美元(约 54.64 元)/百万缓存输入 tokens。
另一个重要的点,就是他们更新了 Realtime 实时对话 API,最大对话时长延长到了 30 分钟。
更新有两项内容:
- 现在 4o 和 4o mini 模型都支持实时对话 API,OpenAI 也对这两个模型进行了更新:
gpt-4o-realtime-preview-2024-12-17:128k 上下文长度,最大输出 4096 tokens。
gpt-4o-mini-realtime-preview-2024-12-17,上下文和最大输出长度同上。
定价方面,4o 的音频成本降低 60%,而 4o mini 更是低至 1/10。
现在的定价(以每百万个 tokens 为计量)是:
4o:
文本:输入 2.5 美元(约人民币 18.21 元),输出 10 美元(72.84 元),缓存输入 1.25 美元(9.1 元)。
音频:输入 40 美元(291.38 元),输出 80 美元(582.76 元),缓存输入 2.5 美元(18.21 元)。
(之前的音频输入和输出价格分别是 100 和 200 美元,确实降了很多)
4o mini:
文本:输入 0.15 美元(1.09 元),输出 0.6 美元(4.37 元)。缓存输入 0.075 美元(0.55 元)。
音频:输入 10 美元(72.84 元),输出 20 美元(145.69 元),缓存输入 0.3 美元(2.18 元)。
讲得更直观一点的话:
1000 个 tokens 相当于 750 个单词。用 4o mini 音频功能,假设语速是 150 个单词/分钟,那就是 200 个 tokens,全按输出 tokens 计算,每分钟才花费 3 分钱。
非实时的音频模型中,OpenAI 还更新了一个 gpt-4o-audio-preview-2024-12-17,定价与新的 4o 模型相同。
- 实时对话 API 可以使用 WebRTC 了。WebRTC 可以处理音频编码、流式传输、噪声抑制和拥塞控制,更容易构建跨平台构建和扩展实时语音产品。即使网速很差,也能实现流畅且响应迅速的交互。
甚至只需要几行 Javascript 代码,就能添加实时功能。
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;
}
(WebRTC 还是个谷歌支撑起来的开源项目。既狙击人家,又要拿人家成果用,OpenAI 你怎么回事……)
更低的定价,更轻便的搭建方式,意味着实时 API 更广泛的应用。在直播时,OpenAI 还暗示,未来实时 API 可能会整合到 AI 眼镜等随身工具里。感觉还是非常有可能实现的。
以及,还有几个小而有用的更新点:
偏好微调(Direct Preference Optimization fine-tuning,简称 DPO),简单来说,就是增加一类输出风格的权重的同时,降低另一类输出风格的权重。
原理是向模型展示一个输入内容的两个输出结果,并告诉模型“哪个结果好,哪个结果不好”,从而让模型的输出风格更偏向效果好的那个。有点像推理模型中的奖励机制。
- 实时对话 API 支持调用 Python SDK 工具包。
直接附上 github 地址:https://github.com/openai/openai-python
- OpenAI 还更新了测试版的 Go 和 Java 的官方 SDK 工具包,再也不用去找第三方库了,泪目。
也是直接附上地址:
Java 库:https://github.com/openai/openai-java
Go 库:https://github.com/openai/openai-go
最后讲两个坏消息:
o1 的 API 调用目前仅开放给 OpenAI API 5 级用户(在 OpenAI 平台上消费超 1000 美元,约 7284 元人民币),后续逐渐向更多用户开放;
以及,Sora 和 200 美元/月的 o1 pro 模型,并没有开放 API。
当然,就目前 OpenAI API 上线的内容来看,已经完全够用了。
比起实时语音 API,我觉得 o1 的 API 更可能满足诸位开发者的需要。真正的 AI 革命,恰恰是 o1 与其他工具的无缝集成,甚至可以说是,它带来一个完全改写 agent 构建规则的新范式:
o1 负责思考、制定计划;小体量模型负责劳动、执行工作。
在一项工作中,最开始用 o1(会思考,但成本高的模型)进行长线思考、规划,制定一个详细的计划,然后将实际工作执行,分配给较小的模型们。随着 o1 API 的推出,这种工作方式只会越来越普遍、工作流程只会越来越简单。
如果把 AI 工作流成比作多米诺骨牌,那 o1 更像是多米诺骨牌的第一张。可能Agent时代就快要来了。
参考资料:
https://openai.com/index/o1-and-new-tools-for-developers/
https://platform.openai.com/docs/guides/reasoning
https://platform.openai.com/docs/guides/realtime-webrtc
https://x.com/hwchase17/status/1869086959010025799?s=46&t=1AUvwyftFbcog4yHzgnysw
https://x.com/_simonsmith/status/1869088212993655078?s=46&t=1AUvwyftFbcog4yHzgnys