OpenAI 大量接口更新解读:结构化输出、实时API、偏好微调等全面升级
1. 为什么 OpenAI 要发布大量接口更新?
OpenAI 近期发布了一系列接口更新,旨在提升开发者在使用其模型时的灵活性和效率。这些更新并非简单的修修补补,而是对现有功能进行了大幅增强,并引入了全新的能力,如结构化输出、实时API、偏好微调等。这次更新的目标非常明确,就是让开发者能够更轻松地构建更强大、更智能的应用程序。
2. OpenAI 的 “o1” 模型有哪些重大更新?
2.1 “o1” 正式版发布,告别 “o1-preview”
- 新模型名称: “o1” 取代了之前的 “o1-preview”,标志着该模型进入正式版阶段。
- 对应模型代号: “o1-2024-12-17”
- 上下文长度: 支持 上文 200k,下文 100k 的超长上下文。
2.2 最核心更新:结构化输出
- 什么是结构化输出? 简单来说,就是让模型能够按照预定义的格式(如 JSON)返回数据。这使得处理模型输出变得更加容易,也为更复杂的应用场景打开了大门。
- 结构化输出有什么用? 最直接的应用就是支持 Function Call,使得模型能够连接互联网,获取实时信息或执行外部操作。此外,结构化输出还能让模型生成更有条理、更易于解析的数据,例如生成包含产品信息的 JSON 格式数据,或者生成用于数据库查询的 SQL 语句。
- 如何理解 Function Call? 可以把它想象成给 AI 模型配备了一个“万能遥控器”,它可以根据你的指令调用各种工具,比如搜索信息、订机票、或者控制智能家居设备。有了 Function Call,AI 的能力就不仅仅局限于回答问题,它还可以帮你完成具体的任务。
- 例子: 你可以要求模型生成一个包含“商品名称”、“价格”、“库存”等字段的 JSON 格式商品列表,然后将这个 JSON 数据直接导入到你的电商系统中。
- 参考资料: 你可以参考这篇文章了解如何利用结构化输出进行 AI 搜索:看完这篇,你也能做 AI 搜索:论「结构化输出」在 o1 中
2.3 新增 developer 角色和 reasoning_effort 参数
- developer 角色: 等同于 4o 模型的 system 角色,允许开发者更精细地控制模型的行为。你可以通过设置 developer 角色来定义模型的性格、专业领域、以及它应该如何回应用户的请求。
- reasoning_effort 参数: 可以调整模型的推理强度,有 low、medium 和 high 三个选项。 low 推理速度快,但结果可能不够准确; high 推理更加深入,但速度较慢。根据实际应用场景的需求,你可以灵活调整此参数以平衡速度和准确性。
2.4 模型输入输出能力升级
- 最新 o1 模型支持图片和文字输入,并支持结构化输出,这意味着模型可以理解图像内容并生成结构化的文本结果。
- o1-mini 模型则仅支持纯文本输入和输出。
3. Realtime API 有什么新进展?
3.1 模型升级与折扣
- 新模型 gpt-4o-mini-realtime-preview-2024-12-17 享受一折优惠。
- 支持 WebRTC 和 WebSocket 两种协议。
- WebRTC 文档: https://platform.openai.com/docs/guides/realtime-webrtc
- WebSocket 文档: https://platform.openai.com/docs/guides/realtime-websocket
3.2 Realtime API 支持 SDK 调用
- 现已支持通过 SDK 调用 Realtime API。
- SDK 文档: 在 Github 的 ReadMe 中: https://github.com/openai/openai-python
- 注意: 文档可能存在问题,旧模型 2024-10-01 可能出现频繁错误,建议使用新模型。
- 参考示例: 请参考作者提供的示例 (此处应插入作者提供的示例链接,原文未提供,请自行补充)。
- 什么是 WebRTC 和 WebSocket? WebRTC 可以让你在浏览器之间进行实时音视频通信,而 WebSocket 则提供了一种持久的、双向的通信通道。 这两种技术使得开发实时交互应用(例如在线会议、在线游戏、实时客服等)成为可能。
- 具体来说,如何使用 Realtime API? 你可以使用 SDK 或者直接调用 API 来建立与 OpenAI 模型的实时连接。你发送的语音、视频或者文本数据会被实时传输到模型进行处理,模型处理完毕后的结果也会实时返回到你的应用中。
4. 偏好微调:告诉模型你想要什么,不想要什么
4.1 微调方式升级
- 之前的微调是告诉模型“应该怎么输出”。
- 新增 偏好微调(Preference Fine-tuning) 是告诉模型“你想要什么,同时不要什么”。
- 语料要求: 需要 提问、希望的输出 和 不希望的输出 三个内容。
- 偏好微调有什么用? 这种方式可以更精确地引导模型学习你所期望的行为,从而生成更符合你需求的输出。例如,你可以通过提供“希望的输出”来鼓励模型生成更详细的回答,通过提供“不希望的输出”来避免模型生成带有偏见的言论。
- 例子: 如果你希望模型生成更礼貌的回答,你可以提供一个包含礼貌用语的“希望的输出”和一个包含不礼貌用语的“不希望的输出”的语料,让模型学习如何更好地表达。
- 详细文档: https://platform.openai.com/docs/guides/fine-tuning#preference
5. 新增 Go 和 Java SDK:告别第三方库
- Go SDK: https://github.com/openai/openai-go
- Java SDK: https://central.sonatype.com/artifact/com.openai/openai-java
- 为什么需要官方 SDK? 官方 SDK 能够提供更好的稳定性和兼容性,并且通常能够更早地支持新的 API 功能。
6. 其他值得关注的内容
- Claude 在 OpenAI 发布会期间也尝试“蹭热度”,发邮件宣称自己也进行了更新,但实际上更新内容并不算新。
- OpenAI DevDay 的部分视频被放出, 其中 “Realtime + 结构化输出” 的结合值得重点研究。
7. 总结与感悟
OpenAI 的这次更新堪称一次“大跃进”,不仅模型本身的能力得到了显著提升,还引入了许多新的工具和功能,让开发者能够更加高效地利用 AI。 结构化输出、实时API 和 偏好微调 等新功能,将会在未来的 AI 应用开发中发挥至关重要的作用。
我认为:这更新像是一场暴雨,洗刷了旧的秩序,也预示着新的变革。那些曾经束缚手脚的限制,被一一打破。结构化的输出,犹如精密的齿轮,让AI的运作更加高效;实时API,则打开了沟通的桥梁,让AI与现实世界无缝连接。而偏好微调,更像是为AI塑造灵魂,让它更加符合使用者的心意。只是这繁荣的景象下,也隐藏着些许不安,AI的快速发展,究竟会将我们带向何方?这仍需我们深思。
OpenAI #WebSocket
© 版权声明
文章版权归作者所有,未经允许请勿转载。