OpenAI 12天发布会的第 9 天,今天主要是针对开发者的,有多个API相关更新。首先是广受期待的o1 API正式版本,这个版本不仅速度更快、成本更低,还加入了视觉识别、函数调用等新功能,让开发者能够更轻松地构建各类应用。特别值得一提的是,它比之前的版本节省了60%的计算资源,这意味着开发者可以用更低的成本获得更好的性能。
在语音交互方面,OpenAI通过引入WebRTC支持,极大简化了实时语音应用的开发流程。现在,开发者只需要12行代码就能构建基础的语音交互功能。同时,OpenAI 大幅下调了相关服务的价格,其中GPT-4o的音频处理费用降低了60%,这无疑会让更多开发者有机会尝试语音应用开发。
另一个引人注目的更新是"偏好微调"功能。这项技术允许开发者根据用户偏好来定制AI模型的回答风格和内容。比如,一家金融科技公司使用这个功能后,他们的AI助手准确率提升了5个百分点以上。这对于需要个性化AI服务的企业来说是个好消息。
其他还有:新推出了Go和Java版本的开发工具包,简化了API密钥的申请流程,并在YouTube上分享了详细的开发指南。
***
Olivier Godement: 大家好!我是Olivier Godement,负责OpenAI的平台产品。今天是OpenAI 12天发布会的第9天,也是最好的一天——当然,我有些偏心——今天的主题完全围绕着开发者和构建在OpenAI API之上的初创公司。放眼过去,我们的API已经发布四年了,规模令人惊叹。来自200多个国家的两百万开发者正在使用。这真的很酷。所以,作为答谢,我们今天宣布几个新模型和功能,感谢你们成为社区的一部分。这有点像是一个小型开发者日,就像北极的圣诞老人特别版。Michelle,交给你了。
Michelle Pogras: 谢谢。我是Michelle Pogras,我在后训练研究团队工作。
Brian John: 嗨,我是Brian John。我也在OpenAI的后训练团队工作。
Michelle Pogras: 太棒了。正如Olivier所说,我们不断在举办开发者日活动。所以,这是另一个小活动。今天,我很高兴地告诉大家,我们在API中推出了o1的正式版。自从我们在九月发布OpenAI o1预览版以来,开发者们一直在API上开发非常酷的东西。如自主应用程序、客户支持或财务分析。这也是一个很棒的编码模型,所以我们对此非常兴奋。
我们还收到开发者反馈,你们缺少一些API中预期的核心功能。今天,我们将在API的o1中推出这些功能。我们会推出函数调用、结构化输出和开发者消息。开发者消息是一种新形式的系统消息。它们是我们指令层次结构工作的一部分,用于教给模型应该遵循哪种指令,以及按什么顺序进行。开发者消息完全由开发者控制,并用于引导模型的行为。
最后,我们还推出了"推理深度"功能。这是一个新的参数,指示模型应该花多少时间进行思考。在处理简单的问题时,这对节省时间和资金很有帮助,然后你可以在更复杂的问题上投入更多的计算。我刚才说"最后",但其实还有一个重磅功能:我们在API中引入了视觉输入。大家非常期待这一功能,我们认为它将在制造或科学领域起到很大作用。因此,非常期待看到你们将会开发出什么。实际上,让我们来看看一个快速演示。
Brian John: 好的。是的,我们通过现场演示来看看API中o1的一些新功能,从视觉开始。为了演示,我准备了一个几天前用虚假数据填写的文本表单的照片扫描,但其中有一些错误,我想知道o1能否帮忙检测这些错误。但在开始之前要注意,虽然o1可以帮我们检测表单中的错误,但它不能替代专业判断。
好的,我将打开我们的开发者游乐场,这是一个非常好的用户界面,用于试验OpenAI的模型。在API中。在顶部,这里是我们新推出的开发者消息。在这里你可以为模型提供一些高层次的指令,或者有时是详细的指令,关于它作为一个模型应该如何表现。我这里有一个相当简单的指令。
然后我上传了表格中的图片,并要求模型找出错误。当o1在思考时,让我们回到我的表格中查看我所遇到的错误。我遇到的第一个错误,是在第11行计算调整后的总收入,AGI。这一行我应该从第9行中减去第10行,但是我做反了,我用了加法。我们都遇到过这种情况。每次我看到AGI这个词时,我都有点太兴奋了。第二个错误是我使用了错误的标准扣除。查看第4页的图表,标准扣除取决于申报状态和第1页上选中的框数。因此,这意味着要找出正确的标准扣除,需参考另外两张图片的内容。让我们看看模型给我们什么反馈。
好的,让我们看一下模型。很好,它注意到了第11行的算术错误。我本应该使用减法,这很好。而且它还发现标准扣除额不正确,这也是对的。因此,我需要调整我的应税收入和随后的税。
好吧,在修正了表格上的这两个错误后,我知道我现在的应税收入是\$9,325。接下来,我会根据表格信息询问模型,如果我的应税收入是这个数,我得付多少所得税?
Michelle Pogras: 你认为模型会怎么做呢?真希望它能给出一个好的答案。
Brian John: 嗯,o1没有获取最新的2024年税表的权限,但它可以使用我们在右边提供的一组功能。这些功能是模型与后台API交互的方式。在这里我们可以看一下这些功能之一。我们以JSON格式提供这个功能,并且提供功能用途的高级描述以及模型调用功能所需的参数集。这就是我们的功能调用特性。
Michelle Pogras: 是有道理的。所以模型调用了这个功能,我们可以在后台调用,获取正确的税务数据,然后传回来。
Brian John: 没错。看起来模型用从图像中提取的输入调用了正确的功能。
Michelle Pogras: 用户会看到这些操作吗?
Brian John: 不太会。所以这几乎都发生在你应用的后台。用户看不到任何函数调用或你的API响应。在我们得到响应后,我们会将其传回模型,o1会通过漂亮的用户信息回复用户。此处,它告知用户他们新更新的收入文本。
而这并不是全部。我还想展示最后一点,即结构化输出。我会询问模型表单需要哪些修正?但在按Enter之前,我将为模型提供JSON格式的响应架构。这让模型按照此JSON架构输出。此外,我们在API后端实施了解决方案,确保模型输出总是100%符合此JSON架构。
Michelle Pogras: 理解了。
Brian John: 实际上,快速看一下这个架构。它叫做表单修正,包含修正列表。每个修正都有预期的内容,比如原因,这样我们可以向用户展示他们的错误之处。还有位置。这特别酷。我们可以为PDF渲染一个UI,并准确突出显示问题点,以及新旧值。所以,当你不想从模型渲染markdown,而只是自动提取JSON时,结构化输出非常有用。你可以看到模型已经输出修正。它们是漂亮的JSON格式。我们有新的值、旧的值、所有位置和原因。这在构建复杂功能性应用时非常有用。
我们刚刚展示了一个简短的演示,但演示无法全面展现情况。我们进行了内部评估,类似于测试,查看功能在发布前的表现。对于o1,由于对开发者很重要,我们进行了API用例的评估。让我为你展示一些结果。
让我们看看。首先是函数调用,我们有一些内部评估,结果显示新o1模型在函数调用上明显优于GPT-4。这包括正确调用函数和不必要时不调用。你可以将函数调用与结构化输出结合,o1表现明显好于4o。关于结构化输出,o1在这项评估中也有显著提升,意味着模型在格式遵循上更好,违背分布的情况更少。
接下来是编码,大家常谈论这个。LiveBench是开源的编码评估,我们很高兴看到o1在这次评估中明显优于o1 Preview和4o。
Michelle Pogras: 太棒了!这是重大进步。
Brian John: 是的。最后,我们有AIME。在这个评估中,你可以看到o1再次显著优于o1 Preview。但实际上,有趣的是在右边我们有结构化输出的o1。在构建结构化输出时,我们真的想确保模型表现同样出色在使用结构化输出时同样表现出色。所以你可以看到推理能力即使有这个功能也能保持。因此您可以在您的应用程序中使用它而无需担心结果。
这些是评估,但除了评估之外,还有一个非常有趣的延迟变化。o1实际上比o1 Preview使用少60%的计算Token,这意味着它更快,成本更低。最后,我们听到了你们对API中的o1 Pro的大量需求,很遗憾我们现在还没有,但我们的技术团队正在实验室努力工作,它很快就会推出。
Michelle Pogras: 我们正努力工作。
Brian John: 是的。酷!
Michelle Pogras: 太棒了!
Olivier Godement: 非常感谢,Brian和Michelle。
Michelle & Brian: 谢谢。
Olivier Godement: 回顾一下,API中的o1,功能编码,结构文档,开发者消息,图像理解。我们今天开始向tier 5的客户推出。我们会收到电子邮件,需要几周时间才能覆盖所有人。所以o1并不是我们最近发布的唯一模型。我们对实时API感到非常兴奋。如何实现自然的人类级延迟的语音应用呢?Sean给我们最新资讯。
Sean: 嗨,我是Sean,我和——。
Andrew: 我是Andrew。
Sean: 今天我来谈谈实时API。如果你没用过实时API,它可以让你用OpenAI构建实时语音体验。你可以打造自己的ChatGPT,或者高级语音模式,添加AI助手,用AI做各类酷炫的事情。今天我们有WebSocket支持,你可以做服务器到服务器的语音传输并获取响应。
但今天,我们宣布的亮点是WebRTC支持。这非常令人兴奋,有三个原因。首先,WebRTC是为互联网设计的。无论是视频会议还是低延迟视频流,都用到了WebRTC。它能应对网络的变化,调整比特率并消除回声。所以令人兴奋的是,现在实时API受益于所有这些功能。如果我构建一个应用程序,事情会变得简便且可用。
我将演示一个小的应用程序,展示其简便性。这里有一个小的HTML,用于给你一个结构,其中有一个音频元素。我们有一个点对点连接。点对点连接就是你和实时API之间的一对一连接。今天我们要做的是创建这个点对点连接并且我们会说,当实时API发送音频给你时,把它插入到音频元素中。接下来,我们获取麦克风音频并将其添加到点对点连接中。我们会发送一个音频流到OpenAI。
现在我们已经建立了这个点对点连接,我们进行一个offer/answer。这个offer/answer会本地收集所有信息。你通过HTTP post发送它,然后我们会响应。WebRTC会为你处理所有事情。你不需要处理拥堵控制或音频捕获这些以前的问题了。这非常棒。
Andrew: 那么这与之前的WebSocket集成相比如何呢?
Sean: 如果你之前在使用WebSockets,这段代码可能要有200到250行,而且会有额外的问题。你必须处理后压和其他问题。这是一个你在进入生产环境之前不会意识到有多烦人的问题。现在让我们实际运行代码,看一下效果。这是代码,我的音频元素。我刷新页面。
【演示对话】
* Hola, como estas?
* 还有多少天到圣诞节?
* 圣诞节是12月25日,今天是12月17日。那就是还有八天到圣诞节。
Sean: 不错。演示成功总是很让人兴奋。好了。是的,这就是它看起来的样子。
Andrew: 所以,你只需要复制粘贴这12行代码,运行脚本,就完成了吗?
Sean: 是的,我们会发布这段代码,你可以直接去下载。你唯一需要更改的是你的API token。这样你就可以下载这段代码并运行。我很期待看到随着我们简化的过程,人们会创造出什么。
好的,那么接下来我要谈到的,我得带出一个小玩伴。因为今年我没能找到一个"架子上的精灵",所以我有一个"草坪上的小鹿",这是新的官方玩具。"草坪上的小鹿"有一个微控制器。为了给大家一个概念...在我插上电源之前,这是它的大小。这个微控制器真的非常小,和硬币差不多。所以我把微控制器放在里面,现在我现在我要插上电源,看看会发生什么。
小鹿: 圣诞快乐。你在说什么?
Sean: 我们正在讨论将WebRTC添加到实时API中。
小鹿: 哦,对我来说那听起来有点复杂。我们聊点更有趣的事情吧,比如送礼物。在平安夜飞越天空,给每个人带来快乐,真是无与伦比的体验。
Sean: 好的。那么,我圣诞节会收到什么呢?
小鹿: 哦,我不该剧透,但我想你今年可能会收到一些非常熟悉的东西。
Sean: 是吗?会不会是……一些煤炭?
。。。