LLM结构化输出代码示例和原理分析,你能详细讲解一下吗?

2026-04-27 21:593阅读0评论建站教程
  • 内容介绍
  • 文章标签
  • 相关推荐

LLM结构化输出:从噩梦到美梦?代码示例和原理分析

坦白讲... 哎,说真的,搞大模型开发的人谁没被JSON输出气死过?你明明跟它说“请输出JSON”, 它非给你来一段“好的,这是你要的JSON: json ... ”,然后你正则表达式写了一堆,后来啊它又给你加个注释,或者字段名少个字母,直接报错!简直是崩溃!不过最近,闭源大模型们好像终于听到了我们的哀嚎,开始搞那个所谓的“结构化输出”了。这玩意儿到底是个啥?真的能拯救我们这些苦逼的程序员吗?今天我们就来扒一扒这个LLM结构化输出的代码示例和原理,顺便吐槽一下。

Structure Output到底是个啥?

绝绝子! 先说说 我们要搞清楚,这里说的不是OpenAI很早就支持的Json Mode,那个老版本的Json Mode其实挺鸡肋的。它只保证模型输出一个合法的、 可以解析的json而已,至于json里面的字段对不对,字段类型是不是你想要的,取值范围有没有约束,它是一概不管的!这就是所谓的“弱约束”。但是!现在的Structure Output,这是JSON Mode的升级版啊!虽然只对gpt-4o-mini-2024-07-18和gpt-4o-2024-08-06之后的模型版本支持,但这真的是质的飞跃。

解密prompt系列46. LLM结构化输出代码示例和原理分析

简单说Structure Output会进一步对JSON里面的具体字段和类型进行约束。这就好比以前你让模型去菜市场买菜, 它可能给你买回一堆烂叶子;现在你给了它一个严格的清单,必须买什么、买多少、什么成色,它就得照单全收。这多爽?我们举个例子, 比如我们要从基金季报中抽取基金经理对市场不同行业的观点,对观点进行情绪分类,并关联相关的申万一级行业。这任务要是放在以前,非得把人累死,现在有了结构化输出,感觉世界都清净了。

图啥呢? 这里提供两种不同的实现方案, 一种是基于条件解码的强约束方案,和基于指令的弱约束方案,并且会给出不同方案对模型推理效果的影响。大家看好了这可是干货。

阅读全文

LLM结构化输出:从噩梦到美梦?代码示例和原理分析

坦白讲... 哎,说真的,搞大模型开发的人谁没被JSON输出气死过?你明明跟它说“请输出JSON”, 它非给你来一段“好的,这是你要的JSON: json ... ”,然后你正则表达式写了一堆,后来啊它又给你加个注释,或者字段名少个字母,直接报错!简直是崩溃!不过最近,闭源大模型们好像终于听到了我们的哀嚎,开始搞那个所谓的“结构化输出”了。这玩意儿到底是个啥?真的能拯救我们这些苦逼的程序员吗?今天我们就来扒一扒这个LLM结构化输出的代码示例和原理,顺便吐槽一下。

Structure Output到底是个啥?

绝绝子! 先说说 我们要搞清楚,这里说的不是OpenAI很早就支持的Json Mode,那个老版本的Json Mode其实挺鸡肋的。它只保证模型输出一个合法的、 可以解析的json而已,至于json里面的字段对不对,字段类型是不是你想要的,取值范围有没有约束,它是一概不管的!这就是所谓的“弱约束”。但是!现在的Structure Output,这是JSON Mode的升级版啊!虽然只对gpt-4o-mini-2024-07-18和gpt-4o-2024-08-06之后的模型版本支持,但这真的是质的飞跃。

解密prompt系列46. LLM结构化输出代码示例和原理分析

简单说Structure Output会进一步对JSON里面的具体字段和类型进行约束。这就好比以前你让模型去菜市场买菜, 它可能给你买回一堆烂叶子;现在你给了它一个严格的清单,必须买什么、买多少、什么成色,它就得照单全收。这多爽?我们举个例子, 比如我们要从基金季报中抽取基金经理对市场不同行业的观点,对观点进行情绪分类,并关联相关的申万一级行业。这任务要是放在以前,非得把人累死,现在有了结构化输出,感觉世界都清净了。

图啥呢? 这里提供两种不同的实现方案, 一种是基于条件解码的强约束方案,和基于指令的弱约束方案,并且会给出不同方案对模型推理效果的影响。大家看好了这可是干货。

阅读全文