写点什么

7.5K 星开源项目“白做了”?OpenAI 发布开发者最期待的头号功能,让多个优秀开源项目瞬间凉了!

  • 2024-08-09
    北京
  • 本文字数:2117 字

    阅读完需:约 7 分钟

大小:1.01M时长:05:51
7.5K星开源项目“白做了”?OpenAI发布开发者最期待的头号功能,让多个优秀开源项目瞬间凉了!

应广大用户需求,OpenAI 终于发布重量级新功能。

 

JavaScript 对象表示法(JSON)的文件与数据交换格式已然成为行业标准,因为其既适合人类阅读,又可轻松被机器解析处理。

 

然而,众所周知大语言模型(LLM)在 JSON 这边出了不少问题——最重要的就是经常产生幻觉,即生成仅部分遵循指令的奇怪响应,或者无法完全解析 JSON 内容。面对此类情况,开发者往往需要借助开源工具、多种不同提示词组合或者重复请求等方法以保证输出的互操作性。

 

如今,OpenAI 已经通过在 API 中发布其结构化输出来帮助缓解上述问题。此项功能已经于今天正式发布,旨在确保模型生成的输出与 JSON 模式相匹配。这些模式之所以如此重要,就是因为其描述了给定 JSON 文档中的内容、结构、数据类型以及预期约束。

 

OpenAI 表示,这也是开发者们长期呼吁开放的头号功能,允许在各类应用程序之间保持一致性。OpenAI 公司 CEO Sam Altman 也在 X 上发帖表示,此次发布“迎合了广大用户的迫切需求”。

 

该公司还强调,其最新 GPT-4o 模型的结构化输出获得了“100%的完美”评估得分。



从开源项目中汲取灵感

 

JSON 是一种用于数据存储和交换的文本类格式,凭借着突出的简单性、灵活性以及与多种编程语言的兼容性而在开发者中成为最具人气的数据格式之一。OpenAI 在去年的 DevDay 上就为其模型发布了 JSON 模式,迅速满足了开发者提出的诉求。

 

借助 API 中的结构化输出,开发人员可以约束 OpenAI 模型以匹配数据模式。OpenAI 方面表示,这项功能还使得模型能够更好地理解较为复杂的数据模式。

 

该公司在博文中写道,“结构化输出代表着 JSON 模式的演变。虽然两者都能保证生成有效的 JSON,但只有结构化输出能够确保遵循数据模式。”也就是说,开发人员“不必担心模型会遗漏掉必要的键,或者以幻觉的形式生成无效的枚举值。”(枚举值是一种在语言当中命名常量的过程,旨在改善代码的可读性和可维护性。)

 

开发人员可以要求结构化输出以分步方式生成答案,用以引导输出按照预期路线前进。根据 OpenAI 的介绍,开发人员无需验证或者重试格式不正确的响应,该功能还支持更简单的提示词,同时提供明确的拒绝表述。

 

该公司还在博文中强调,“安全是 OpenAI 的首要任务——新的结构化输出功能也将遵循我们的现有安全政策,且依然允许模型拒绝不安全的请求。”

 

结构化输出适用于 GPT-4o-mini、GPT-4o 以及这些模型的微调版本,同时可用于 Chat Completions API、Assistant API 和 Batch API,而且兼容视觉输入。

 

OpenAI 方面强调,这项新功能“是从开源社区的优秀工作中汲取到的灵感,包括 outlines、jsonformer、instructor、guidance 以及 lark 库。”

 

OpenAI 提到的这些开源项目基本都是专门做大模型结构化输出的,其中 outlines 目前有 7.5k 星,作者在 GitHub 页面称已经“创办了一家公司,不断突破结构化生成的界限。”另外,jsonformer 有 4.1k 星、instructor 有 7k 星......

 


OpenAI 在其 API 中引入原生结构化输出支持,通过原生实现此项功能,OpenAI 可以在生成过程中严格控制大模型,从而保证其 100%符合所指定的模式。以往,用户必须使用开放模式并对生成过程加以干预才能达成这个目标。值得注意的是,Cohere 最近同样将结构化生成引入其 API。

 

此前,虽然很多人还没有意识到这就是使用大模型的最佳技术,但他们在日常应用时已经在不知不觉中依赖相应的社区库。

 

因此有网友认为这些社区项目基本上可能等于“白做了”,“理解大模型的能力边界真的很重要,不然很有可能做很多无用功。”

 

但同时需要提醒各位,目前 OpenAI 的这套 beta 测试版恐怕满足不了大多数实际应用需求,理由如下:

  • 生成首个 token 的速度太太太慢了。由于 OpenAI 需要将模式编译为语法以用于生成,因此初始开销导致每次调用都会耗费大量时间。OpenAI 后续其实也可以通过更快的编译和对重复使用的模式加以缓存来克服这个问题,但至少目前这项功能在很大程度上还不可用。

  • 其 API 能够接受的 JSON 模式仍然有限。OpenAI 声称他们专注于核心用例,而忽略掉了不必要的“长尾”附加功能。有网友尝试把现有代码迁移到这种新格式时,发现很多模式都不被接受。至少大家还需要调整习惯,才能配合 JSON 子集正常使用具备此项功能。

 

此次发布的 Python SDK 实际上并不包含文档当中宣传的所有变更。具体来讲,其目前还不支持将 Pydantic BaseModel 子类定义为模式并进行传递。相信未来的版本将有所改进。但这再次提醒我们,OpenAI 发布的仍然只是一项 beta 测试版功能。

 

那我们到底该怎么办?有开发者认为 Instructor + Pydantic 的组合仍然是在 OpenAI 乃至其他大模型方案之上实现结构化输出的最简单方法。虽然无法保证生成结果的合规性(如果无法控制大模型本身,就不可能实现这种合规性),但其会使用响应模型的定义来验证结果,甚至能够在遇到验证错误时根据提示信息进行重试。

 

很高兴看到 OpenAI 能意识到结构化输出的强大功能,并将其纳入 API 当中,相信在未来一段时间内,这也将成为软件开发者们将大模型集成至自有代码中的主要方式。只是从前期探索到最终落地,中间恐怕还需要再观察一段时间。

 

参考链接:

https://venturebeat.com/business/transform-2024-dont-miss-the-6th-annual-women-in-ai-breakfast-women-in-ai-awards/

https://everything.intellectronica.net/p/structured-outputs-big-time

2024-08-09 11:148443

评论 1 条评论

发布
用户头像
OpenAI的新功能对开发者来说是一个重大进步,尽管目前还处于beta测试阶段,存在一些技术限制和挑战。这项功能可能会影响一些开源项目的价值,但长远来看,它将促进大模型更有效地集成到软件开发中。
2024-08-17 11:48 · 广东
回复
没有更多了
发现更多内容

极狐GitLab CI/CD 变量黑魔法之预定义变量

极狐GitLab

DevOps 镜像 CI/CD pipeline

2023年终盘点系列| 用友BIP持续迭代,进化发展

用友BIP

上海国家会计学院第六届智能财务高峰论坛成功举办

用友BIP

智能财务

写代码还是写标书

escray

技术人写作 21 天技术人写作行动营 21 天

浅谈接口自动化测试

QE_LAB

接口自动化测试

文心一言 VS 讯飞星火 VS chatgpt (154)-- 算法导论12.3 1题

福大大架构师每日一题

福大大架构师每日一题

app开发

Geek_8da502

Databend 开源周报第 123 期

Databend

Go未来演进:基于共同目标和数据驱动的决策

Tony Bai

golang 编程语言 Go 语言 gopher

30 | 图的表示:如何存储微博、微信等社交网络中的好友关系

鲁米

2023年度总结——我是如何利用AI高效完成学习与工作任务的

小王撤了

AI

分布式基础概念-消息中间件[RabbitMQ]

派大星

Java 面试题

Azure AI Studio使用体验——企业级AI工厂

Bruce Talk

AI Azure AI Studio Azure AI

功能有更新 | Bonree ONE 权限版本新增环境、资源域、角色概念

博睿数据

Zookeeper数据存储源码剖析

极客罗杰

人人都能用的AI编程助手 CodeGeeX

凌览

AI 前端 后端 AIGC

用友发布数智化转型成熟度评价体系,加速国有企业转型

用友BIP

企业数智化

软件测试/测试开发/人工智能丨人工智能是否会取代软件测试工程师

测试人

人工智能 软件测试

Wireshark使用技巧

小齐写代码

【写作训练营打卡|05】 什么是 Web3?

写作 web3

项目经验分享:机器学习在智能风控中的应用

YoLo

AI

.h 头文件 | AI工程化部署

AIWeker

c AI工程化部署

融合事项会计与用友BIP商旅及费控:提升企业运营效率和透明度

用友BIP

商旅费控 事项会计

聊点写标题那点破事儿

6点无痛早起学习的和尚

写作 21 天技术人写作行动营 标题

简单之道

Tony Bai

golang 设计 Google Rob Pike Go 语言

如何找到数据资产入表的破局点,听听用友怎么说

用友BIP

数据资产入表

落地设备备件按单采购,助力光伏单晶行业数智化管理

用友BIP

光伏单晶行业 数智化管理

Mint Blockchain 2024 年发展路线图和开发计划

NFT Research

区块链 NFT Layer 2

入选首个开源贡献世纪榜,TDengine 亮相 FICC 开源计算机系统大会

TDengine

tdengine 时序数据库

7.5K星开源项目“白做了”?OpenAI发布开发者最期待的头号功能,让多个优秀开源项目瞬间凉了!_生成式 AI_核子可乐_InfoQ精选文章