原文:https://www.toutiao.com/article/7299498535408665088/?log_from=d9f79b9fe2182_1699572121760
专注LLM深度应用,关注我不迷路
周二凌晨,全球无数AI科技工作者与极客们翘首以盼的首届OpenAI开发者大会上,仅仅四十分钟的主题演讲掌声不断,带给全球AI届大量的震撼与惊喜,很多人惊呼,AI届的iPhone时刻真的已经到来。会上宣布的GPT模型升级与新能力发布,都已经成为这两天耳熟能详的热门话题(参考:今天凌晨,OpenAI首届开发者大会带来的几大更新)。OpenAI也在当天即向全球开发者更新了带有大量新特性的API Beta版,瞬间引起了互联网极客们的狂欢,各种GPT-4V、Dall-E3、Assistants API的有趣用例也被疯狂传播。
本文将带领大家领略OpenAI最新放出的应用API更新,涵盖了本次DevDay上发布的几项重大能力升级:
首先是GPT-4 Turbo这个新的模型(测试版本的模型名称为gpt-4-1106-preview),很显然这是一个GPT-4的升级版本(其实OpenAI也对GPT-3.5模型进行了同步升级,将原来的普通模型与16k模型统一到了新的gpt-3.5-turbo-1106模型)。除了模型本身的128K上下文、数据截止到2023年4月以外,对应用层面来说最有意义的两个提升是JSON模式与可重现输出。
JSON模式
对于直接使用ChatGPT的个人用户没有太大意义,但是对于API使用者特别是企业用户来说,很多时候需要大模型输出结构化的JSON数据,但是在实际使用中来,由于大模型输出的不确定性,经常会出现无效输出的现象。现在,你可以通过设定API该参数,确保生成有效的JSON字符串。
需要注意的是:即使指定了该参数,你仍然必须在Prompt中给出明确要求生成JSON的指示,否则会出错。此外,仍然可能由于tokens限制导致输出被截断,进而导致无法解析输出。因此你必须对API返回的end_reason做判断,自行处理。
可重现的输出
大模型的使用者都知道,即使在完全一致的输入下,也无法确保大模型输出完全一致的响应。现在,你可以通过API参数进行控制,确保输出的可重现(输入一致的情况下)。我们认为,这可适用于以下应用场景:
具体使用方法为:在需要获得一致性响应的调用中设定一个相同的seed值,比如1234,那么在所有其他的输入参数相同时(prompt,temprature等),你将获得一致的输出,消除随机性。
此外,在输出中有一个system_fingerprint参数用来表示每次调用的OpenAI基础环境指纹,如果该指纹不一样,即使其他参数一致,结果也可能不一致。
所有能够访问GPT-4 API的开发者现在可以通过新的模型gpt-4-vision-preview来调用带有视觉能力的GPT-4 Turbo。GPT-4V包含了传统GPT-4的全部能力,只是是增加了图片理解能力,在使用上没有太多的不同:
在API中使用参数传入图片URL网络地址或者直接传入base64编码的图片内容即可:
几个应用重点
使用成本:很贵
官方给出的GPT-4V API的大致成本(tokens)计算方式:取决于图片的大小与detail参数。
GPT-4V的应用
关于GPT-4V的应用,其实在之前微软的论文中几乎涵盖了所有的可能性,现在也有很多网友创造的耳目一新脑洞大开的应用(可以参考我们之前的文章:【深度】全面解读多模态GPT-4V能力:微软166页论文“浓缩版”),比如:
这里推荐一个OpenAI官方的cookbook中的一个例子作为学习:借助GPT-4V和TTS的API为视频生成画外音(notebook:
https://github.com/openai/openai-cookbook/blob/main/examples/GPT_with_vision_for_video_understanding.ipynb),其大致思路是:
另外一个典型的应用就是对多模态文本的RAG处理。这个问题很多开发人员都遇到过,比如企业内部的PDF文档中的图片,如何来实现向量化后的检索,并能够传入大模型增强回答。在我们之前的文章中有详细描述(参考GPT4-V之前:企业私有知识库中半结构化与多模态数据的RAG方案思考),现在有了GPT-4V可以更加完美的实现这一方案。
OpenAI本次推出的最激动人心的特性,也是其在AI Agents领域最重要的布局。在之前的视频中已经演示了通过OpenAI的Playground环境来体验Assistants API的威力:
不支持的音频/视频格式
00:00 / 00:00
简单的说,通过该API,你可以简单的创建具备完整的长短期记忆、工具使用、自主规划能力的AI Agent/Assistant。这个Agent可以借助大模型、工具和上传的知识来响应用户输入,并输出结果文字或者文件。
Agent能力解读
我们来看看Assistants API是如何具备AI Agent所必需的规划、记忆、工具这三大能力。
Assistants API的工作原理图,Thread用来保存你和Agent之间的一次对话过程的消息,Run则代表Agent在一次对话中的自主工作过程,其输入来自于Thread,结果保存到Thread。你可以往Thread放一个用户输入消息,然后开始一次Run,AI会借助各种工具完成任务,最后返回输出,并把结果保存在Thread。通过这样的循环,你可以与Agent进行持久的交互,获得最终结果。
最后我们看一个X上面有人分享的创建基于网站内容回答的AI助理,只用了30行代码:
代码演示一个assistant的创建过程:首先通过sitemapper来获得网站爬取的全部url,然后通过url爬取网站内容生成文件,最后把文件交给Assistants API生成assistant。然后你可以对这个Assistant提问关于这个网站上的内容。
本次OpenAI的更新展示了其强大的实力与未来更清晰的战略,当然,也有人担心OpenAI这次掀了很多初创企业的桌子,甚至担忧未来将形成一家独大的局面,我们认为无需过度忧虑。