一文弄懂 LLM 结构化数据生成原理

VLLM 格式化LLM输出 vllm OpenAI Compatible Server 提供了格式化LLM输出的能力,默认的格式化解码后端应该是outlinesguided_json: 按照给定的json schema输出guided_choice: 从给定的选项里面选一个guided_regex: 按照给定的正则表达式输出guided_grammar: 按照给定的 扩展巴科斯范式(EBNF)格式 的上下文无关语法输出(我也不懂)下面我们直接看看如何使用这四个参数,控制LLM的输出messages=[], 阅读详情

前言

目前 LLM(Large Language Model)从文本补全到内容创作,都展示出了强大的生成能力。然而通过 LLM 生成结构化的数据如 JSON 格式的输出,却仍然是一个有挑战性的任务。

生成结构化的数据不仅要求模型输出符合特定的语法规则,还需要确保数据的正确性和一致性。

虽然通过 prompt 工程可能可以实现指定格式的结构化数据生成,但是这也很大程度取决于模型的能力。

本文将探讨如何结合人工规则让 LLM 输出符合 JSON 格式的数据。

结构化生成原理

本文主要是结合 lm-format-enforcer ( https://github.com/noamgat/lm-format-enforcer ) 这个库来讲解如何让 LLM 生成指定格式的 JSON 数据。

目前该库也是被 vllm 作为 JSON 格式输出的后端之一:https://github.com/vllm-project/vllm/blob/main/vllm/model_executor/guided_decoding/lm_format_enforcer_decoding.py

结构化数据生成的原理用一句话概括就是:

每个 step 拿到当前 model 给出的 logits 之后,在采样下一个 token 之前,通过人工设定的规则可以得到当前 step 只允许采样的 token 集合,接着通过加 bias 的方式压制其他不允许采样的 token,从而实现指定的结构化数据生成。

那么怎么得到当前 step 可允许采样的 token 集合,就是本文重点讲解的内容了。

lm-format-enforcer 这个库包含两个核心模块,分别是 tokenizer 前缀树 和 字符级别的解析器,通过这两个模块就可以实现上述的功能。

构造 tokenizer 前缀树

lm-format-enforcer 这个库在初始化阶段,首先会根据 tokenizer 给出的词表,初始化一个字符级别的前缀树,这个前缀树怎么理解呢?

通过 tokenizer 给出的词表,我们可以得到一个词表中的 字符串 和 对应 token id 的映射。通过这些映射,就可以来构造这个前缀树。

树上每个节点对应词表中某个字符串的其中一个字符,每个节点的子节点就是连着的下一个字符,当字符串中的字符已经遍历完了,这时候就是填入该字符串对应的 token id。

现在通过具体的例子解释一下,这个前缀树是如何构造的。

我们用 llama2 模型的词表来解读,假设就取词表中的一个小子集:

在这里插入图片描述

下面用图展示树的构造过程:

遍历第1个映射:图片

遍历第2个映射:图片

遍历第3个映射:图片

遍历第4个映射:图片

遍历第5个映射:图片

遍历第6个映射:图片

遍历第7个映射:图片

通过上面图示,展示了如何通过词表子集构造前缀树,实际的前缀树比这个大多了,整个词表中的 字符串 和 token id 的映射都会通过这样的方式插入到前缀树中。

约束每个 step 可允许采样 token 范围

构造好前缀树之后,接下来就是讲解怎么得到每个 step 可允许采样的 token 集合。

lm-format-enforcer 还有另一个重要的模块就是 字符级别的解析器。

这个解析器的作用简单来理解就是,在初始化的时候,会接收用户指定的 json schema,接着在后续每一步生成过程中,会根据之前生成的内容,判断目前处于什么状态,然后根据当前所处的状态直接给出限定的字符集合。

下面举个简单的例子,比如用户指定的 json schema 是:

在这里插入图片描述

想要 LLM 生成一个 JSON object ,内容是包含一个 city 属性,该属性的内容是一个字符串,表示一个城市的名字,同时该 city 必须要在结果中出现。

解析器的作用就是,比如目前已经生成好的内容是 :

{
  "

那么下一步一定是要生成 city 这个字符串,解析器的作用就是根据目前的状态,会给出限定的字符集合 ['c', 'i', 't', 'y'] 。

然后接下来比如生成到了:

{
  "city": "

那么接下就是要 LLM 生成一个城市的名字,但是其实对于解析器来说,他只知道接下来要生成的内容是字符串,而且内容只需要符合 JSON 格式就行了,所以这时候给出的限定字符集合就非常大了,词表中的 token 对应的字符串只要符合 JSON 格式的都可以。

最后具体能生成什么城市名字,还有这个城市是否真实存在,就得看 LLM 的能力了。

下面用一个具体的例子讲解一下,怎么结合 前缀树 和 解析器,获取每个 step 限定的 token 集合。

假设用户的输入 prompt 和指定的 json schema 是:

prompt = "Please output a JSON segment representing the name of a city, including fields for city name."
JSON_SCHEMA = {
    "type": "object",    
    "properties": {     
       "city": {        
           "type": "string",            
           "description": "Name of the city."        
       }    
   },    
   "required": ["city"]
}
第 1 个采样 step

有一点需要注意,获取可允许采样 token 集合在 lm-format-enforcer 库中是通过递归的方式实现的,下面为了讲解方便,会给每一层递归编个号:

第 0 层递归

首先解析器给出的限定字符集合就是

[' ', '\t', '\n', '\r', '{']

包括空格和大括号在内的5个字符。

然后将这个5个字符和前缀树根节点的所有第一层子节点对应的字符集合做一个交集。

获取得到的字符交集还是这 5 个字符:

[' ', '\t', '\n', '\r', '{']

接着遍历这个字符交集。

遍历每个字符的时候会假设目前已经生成了该字符,比如一开始遍历空格字符 ' ',会将空格当作已经生成的内容加入到解析器中,这时候解析器内部状态会变化,同时取前缀树中空格字符节点对应的所有子节点,进入下一轮递归。

下一轮递归开始的时候,首先将会该子节点包含的所有 token id 加入到当前 step 的候选 token 列表中,然后继续重复上述流程。

第 1 层递归

首先看目前遍历到的前缀树节点包含的 token id 集合是

[35, 29871]

分别对应 llama2 词表中的字符串

"<0x20>"
"▁"

其中, 0x20 表示 ASCII 编码表中的空格字符,所以 在 llam2 的词表中,空格对应的 token 有两个。

接着继续看第 1 层的递归,解析器在上一层添加了空格字符之后,给出的限定字符集合仍然是

[' ', '\t', '\n', '\r', '{']

因为假设前面生成的是空格的情况下,接下来的可生成的字符其实还是可以是之前的 5 个中选一个。

然后前缀树当前节点下的所有第一层子节点的字符集合:

[' ', 't', 'a', 's', 'd', 'c', 'w', 'p', 'f', 'm', 'o', 'b', 'i', 'h', 'l', 'n', 'I', '(', 'C', 'S', 'u', 'A', '\\', 'e', 'T', 'v', 'g', '*', 'r', 'M', 'y', 'P', 'B', '=', 'D', 'L', '"', 'H', 'E', 'F', 'R', '$', '#', 'W', 'G', 'N', 'k', '`', '{', 'j', 'J', 'O', 'q', '-', 'п', 'K', 'V', 'в', '}', 'U', 'z', '[', "'", '<', 'с', ':', 'и', 'Y', 'о', 'Q', 'д', 'н', '&', '+', '@', 'з', 'м', '–', 'Z', '—', 'à', 'б', '/', 'С', '«', 'у', '.', '|', '_', 'é', 'x', 'В', 'П', 'к', 'X', 'К', 'г', 'а', 'М', '%', 'А', 'р', '“', 'Б', 'Н', '>', 'Д', 'Р', '?', 'ф', 'Г', 'О', 'е', 'Т', 'т', ')', '!', '„', 'Л', 'і', ',', 'У', '»', ';', 'è', 'И', 'ä', 'я', 'э', 'З', 'ч', 'ü', 'Ф', 'ј', '·', 'î', 'Х', 'É', 'Е', 'ш', 'č', 'л', 'Ч', '~', 'ц', 'ú', 'ö', 'á', 'Ш', 'ș', 'х', 'ж', ']', 'Э', '‘', 'І', 'Ц', 'щ', 'Я', 'ž', 'ś', '^', 'Ö', 'š', '†', '°', '\r', 'Ю', 'Ж', 'Ü', 'Á', 'й', 'Č', 'ê', 'ю', 'À', '№', 'Š', 'å', 'є', '•', '→', 'Ś', 'Å', 'ї', 'Ä', 'Î', '│', '×', 'ż', 'Ž', '−', 'È', 'Ł', 'Є', 'í', 'Ż', 'Й', '£', 'Ј', '…', '’', '§', 'ó', 'Ú', '¿', 'ř', 'â', 'α', '\xa0', 'ő', 'њ', 'ا', '€', '”', 'Ó', 'Щ', 'ł', 'Í', '¡']

其实对应的都是词表中起始字符是空格的 token ,然后两者的交集是:

[' ', '\r', '{']

其实就是对应词表中以空格起始的三个 token :

"▁▁": 259
"▁\r": 6756
"▁{": 426

接着遍历交集 [' ', '\r', '{'] ,进入第 2 层递归。

由于 llama2 词表中包含连续空格的 token 最长的有15个连续空格 token :

"▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁": 462

但是递归最多只会深入到 12 层,因为 lm-format-enforcer 库中默认限定了最长连续的空格数量是 12 个,所以连续探索空格达到 12 层递归之后就会终止探索,接着回溯到第 1 层,继续那一层其他剩下还没探索的交集字符的递归过程。

一直重复直到所有层 前缀树 和 解析器 的所有字符交集都探索完毕。

最终第一个 step 得到的可允许采样的 token 集合是:

在这里插入图片描述

第 6 个采样 step

然后我们直接跳到第 6 个 step,假设目前 LLM 已经生成的内容是,

{
"

前面每个 step 生成的内容按顺序是 ['\n', '\n', '\n', '{', '\n', '"']:

然后根据用户设定的 json schema,接下来其实就是要限制采样必须生成 city 这个字符串,我们来看下递归的过程。

第 0 层递归

首先解析器给出的限定字符集合就是 ['c']

然后前缀树根节点所有第一层子节点的交集就只有 'c' 字符,然后将 c 加入解析器,同时取根节点下 c 对应的所有子节点进入

第 1 层递归

而由于上一层生成了字符 c ,那么对于解析器来说,接下来的字符肯定要是 i ,所以给出的限定字符集合就是 ['i'],和当前树节点的第一层子节点的交集自然也就是只有字符 'i',然后继续递归。

以此类推,可得当前 step 的限定 token 集合为:

在这里插入图片描述

第 9 个采样 step

接着跳到第 9 个 step,假设到目前为止已经生成了:

{
"city": "

那么这时候,根据解析器的判断,接下来其实就是可以自由生成任意符合 json 格式的字符,所以这时候返回的 token 集合会非常大,接近词表大小。

lm-format-enforcer 中对这个情况做了优化,就是这些 token 集合是可以在生成前缀树的过程中拿到。

所以如果当前是自由生成字符模式,则不会进入递归过程,直接返回这些 token 集合即可。

如何在采样过程中压制特定 token

在拿到可允许采样的 token 集合之后,接下来的操作就简单了,只需要给 logits tensor 加一个偏置即可,伪代码实现:

在这里插入图片描述

通过给不允许采样的 token 加一个负无穷的方式来压制这些 token 不会被采样得到。

总结

其实除了 lm-format-enforcer 的实现方式之外,还有其他人工规则的结构化生成库比如 github 上 star 更多的 outlines 库。感兴趣的读者可以进一步对比两者的实现有什么不同。

​

如何学习AI大模型?

作为一名热心肠的互联网老兵,我决定把宝贵的AI知识分享给大家。 至于能学习到多少就看你的学习毅力和能力了 。我已将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。

这份完整版的大模型 AI 学习资料已经上传优快云,朋友们如果需要可以微信扫描下方优快云官方认证二维码免费领取【保证100%免费】

一、全套AGI大模型学习路线

AI大模型时代的学习之旅:从基础到前沿,掌握人工智能的核心技能!

img

二、640套AI大模型报告合集

这套包含640份报告的合集,涵盖了AI大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师,还是对AI大模型感兴趣的爱好者,这套报告合集都将为您提供宝贵的信息和启示。

img

三、AI大模型经典PDF籍

随着人工智能技术的飞速发展,AI大模型已经成为了当今科技领域的一大热点。这些大型预训练模型,如GPT-3、BERT、XLNet等,以其强大的语言理解和生成能力,正在改变我们对人工智能的认识。 那以下这些PDF籍就是非常不错的学习资源。

img

四、AI大模型商业化落地方案

img

作为普通人,入局大模型时代需要持续学习和实践,不断提高自己的技能和认知水平,同时也需要有责任感和伦理意识,为人工智能的健康发展贡献力量。

AI生成Json结构化数据的几种方案 个人目前认为最好的方式依然是TypeScript约束Prompt + Yaml格式输出,适用于90%的结构化输出场景。如果不缺钱,使用接口提供的Json Mode也是一种很好的选择。希望这篇文章能给大家带来帮助,也欢迎一起讨论探索更好的方式。 阅读详情

相关推荐

RELLM: 利用正则表达式进行结构化生成的LLM库

人工智能语言模型(LLM)如 GPT 等,在生成文本时通常不限制输出格式。然而,在某些应用场景下,遵循特定的输出格式(如 JSON 格式)可以显著提高可用性。为此,RELLM 提供了一种将 Hugging Face 的模型与正则表达式相结合的方法,确保输出符合指定的结构。

safHTEAHE的博客 832

面向结构化数据的文本生成技术研究

来自:DataFunTalk进NLP群—>加入NLP交流群导读今天讨论的是面向结构化数据的文本生成技术研究,这是现在AIGC特别火的场景之一。这种技术不同于传统的文本生成,它的输入是一种比较特殊的结构,比如几百条不同的三元组或者很多种数字的信息。在使用传统的ChatGPT时,我们可以通过做一些摘要任务、翻译任务等来随意提出问题,但是对于结构化数据,它需要更高的生成能力,因为它包含了更多的信息...

zenRRan的博客 556

LLM结构化输出:约束解码、CFG和response_format

摘要:LLM结构化输出主要有三类方法:基于Prompt的Kor、厂商提供的function calling,以及基于constrained decoding的开源方案。constrained decoding通过预计算合法token范围并屏蔽无效输出,确保结果符合schema,同时跳过固定内容生成提升效率。实现方式包括基于有限状态机(FSM)的outlines、优化FSM的SGLang,以及处理复杂结构的CFG方法(如OpenAI方案)。相比非结构化输出,这种方法可能提升生成速度和质量,但仍需优质微调模型支

Cachel Wood的博客 622

文弄懂 LLM 结构化数据生成原理

目前 LLM(Large Language Model)从文本补全到内容创作,都展示出了强大的生成能力。然而通过 LLM 生成结构化的数据如 JSON 格式的输出,却仍然是一个有挑战性的任务。 生成结构化的数据不仅要求模型输出符合特定的语法规则,还需要确保数据的正确性和一致性。 虽然通过 prompt 工程可能可以实现指定格式的结构化数据生成,但是这也很大程度取决于模型的能力。

2401_85325397的博客 1162

东方财富网API接口逆向分析:手把手教你破解那个带jQuery回调的股票数据接口

本文详细解析了东方财富网股票数据API接口的逆向工程实战技巧,重点介绍了JSONP接口的核心机制、参数解析及数据处理方法。通过Python代码示例演示了如何构造请求、处理分页数据及应对反爬策略,帮助开发者高效获取股票数据。文章还提供了完整的爬虫实现案例和常见问题排查指南。

weixin_30790841的博客 720

从代码学习深度强化学习 - 目标导向的强化学习-HER算法 PyTorch版

经典的深度强化学习算法,如 PPO、SAC 等,在各自擅长的任务中都取得了非常好的效果。但它们通常都局限在解决单个任务上,换句话说,训练好的算法,在运行时也只能完成一个特定的任务。想象一个场景:我们想让一个机械臂能把桌子上的任何一个物体重置到任意一个指定位置。对于传统强化学习而言,如果目标物体的初始位置和目标位置每次都变化,那么这就是一个全新的任务。即便任务的“格式”——抓取并移动——是一样的,但策略本身可能需要重新训练。这显然效率极低。为了解决这类问题,

weixin_43887510的博客 1504

解密LLM结构化输出:代码示例与原理分析

结构化输出指的是语言模型(LLM)生成的遵循特定格式(如JSON、XML)的数据,这些数据易于解析和处理。相较于非结构化文本,结构化输出在自动化系统中的优势显著,包括易于解析、处理高效、减少错误率等。

GZM888888的博客 1482

体系结构学习-6-超标量处理器

 MIPS32-5段流水线采用了指令级并行方式(5个流水段同时运行5条指令)提升系统吞吐率,是一种标量处理器(CPI≥1CPI \ge 1CPI≥1),但是一个周期一条指令以及无法满足现代计算机需求了。 超标量处理器(Superscalar) 1、基本思想:增强指令集并行,让每个周期执行更多指令,实现 CPI<1CPI<1CPI<1 。(IPC=1/CPIIPC = 1...

qq_40891899的博客 1214

Guardrails代码实现原理:深入解析LLM响应处理的内部机制

在人工智能快速发展的今天,大型语言模型(LLM)的应用越来越广泛,但如何确保LLM输出的安全性和可靠性成为了一个重要挑战。Guardrails作为一个开源框架,专门为LLM添加安全护栏,今天我们就来深入解析Guardrails的代码实现原理,看看它是如何通过内部机制来处理LLM响应的。🚀 ## Guardrails整体架构解析 Guardrails的架构设计非常精妙,它将整个LLM交互过程分

gitblog_00545的博客 725

secureCRT 破解方法

3、输入注册信息打开keygen.exe,点击path,选择SecureCRT的安装目录(例如D:\VanDykeSoftware\Clients)的securecrt.exe打开,继续下一步打开LicenseHelper.exe,如下。1、注册SecureCRT9.1打开keygen.exe,出现以下问题(没有关掉安全防护,一双击打开,Windows会自动识别keygen.exe为bingdu并删除)打开桌面SecureCRT,此界面不输入内容,直接点击下一步。2、存储配置文件夹(可以默认安装)

逆水行舟 1万+

YOLOv12涨点改进| Kimi团队 2026 |独家创新首发、注意力改进篇|爆火AttnRes残差自注意力模块,含多种创新改进,借助残差思想,缓解细节信息在传播过程中被稀释,促进YOLOv12涨点

🔥本文提出AttnRes残差自注意力模块改进YOLOv12模型,通过深度维度的注意力加权机制替代传统固定残差累加方式。该模块能自适应选择更有价值的历史层特征进行聚合,缓解浅层信息在深层传播中被稀释的问题,提升小目标和复杂场景的检测能力。文章详细介绍了模块结构、原理及优势,并提供了完整的代码实现和配置方法,包括三种改进方案:yolov12n_AttnRes.yaml、yolov12n_AttnRes-2.yaml和yolov12n_A2C2f_AttnRes2D.yaml。

Ai缝合怪、助力小伙伴高效发论文 183

XGrammar:陈天奇团队推出的LLM结构化生成引擎

XGrammar是由陈天奇团队推出的开源软件库,专为大型语言模型(LLM)设计,提供高效、灵活且可移植的结构化数据生成能力。基于上下文无关语法(CFG),XGrammar支持递归组合以表示复杂结构,适用于生成JSON、SQL等格式数据,并通过字节级下推自动机优化解释CFG,实现百倍加速。

士多啤梨先生の博客 1598

服务部署之配置WSUS更新服务(基于Windows配置 Server 2022)

服务部署之配置WSUS更新服务(基于Windows配置 Server 2022)

2301_77192876的博客 2216

Instructor模型压缩:减小LLM部署体积的结构化输出方案

你是否还在为大型语言模型(LLM)部署时的存储占用和推理延迟而烦恼?在边缘计算和资源受限环境中,动辄数十亿参数的模型几乎无法落地。本文将系统介绍如何利用Instructor框架的结构化输出能力,通过模型蒸馏技术实现LLM的轻量化部署,同时保持任务关键的结构化数据生成能力。读完本文,你将掌握: - 基于函数蒸馏的结构化数据微调方法 - 三步实现模型体积缩减70%的实操流程 - 量化与结构化输出结合...

gitblog_00790的博客 965

【机器学习-18】特征筛选:提升模型性能的关键步骤

我们将介绍不同类型的特征筛选方法,包括基于统计的方法、基于模型的方法和嵌入式方法等,并详细解释每种方法的原理和适用场景。通过特征筛选,我们可以减少数据集的维度,降低模型的复杂度,提高模型的泛化能力,并加速模型的训练过程。通过选择适当的特征筛选方法,我们可以减少模型的复杂度,提高模型的泛化能力,并加速模型的训练过程。然而,并非所有的特征都对模型的性能提升有所贡献,有些特征甚至可能是冗余的、噪声较大的或者与目标变量无关的。我们的目标是通过特征筛选选择出对欺诈检测最有用的特征,以提高模型的预测精度。

qq_38614074的博客 1万+

关于IBV_WR_RDMA_WRITE_WITH_IMM的理解

对于IBV_WC_RECV_RDMA_WITH_IMM的描述是这样的,也就是说并不需要sge,所以下发的sge,可以是NULL,个数可以是0。(1)需要下发post_recv,但是下发是post_recv当中的sge的地址可以是空,sge个数可以是0。伪代码,实际的rkey和addr已经通过socket交换。并且poll_cq时,有返回,在这篇文章当中对于poll_cq时,主要区别点有两个,这个是对于接收端而言。(2)可以带即时数据,

qq_38158479的博客 2422

LLM结构化输出:JSON Schema与Tool Calling原理对比与应用指南

在人工智能与自然语言处理领域,大语言模型(LLM)的文本生成能力带来了革命性突破,但其自由发挥的特性也为实际工程应用带来了挑战。其核心原理是基于概率预测生成连贯文本,这导致输出格式往往难以直接用于下游自动化流程。为了解决这一问题,结构化输出技术应运而生,它通过定义明确的格式规范,将非结构化的文本转换为机器可读、可解析的数据结构,从而打通了LLM智能与自动化系统间的关键桥梁。在工程实践中,JSON Schema约束和Tool Calling(工具调用)是两种主流实现路径。JSON Schema通过提示词工程,

weixin_33744141的博客 339

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

API调用型LLM智能体:无环境合成数据生成与实战指南

API调用型LLM智能体作为大语言模型的重要应用方向,通过理解自然语言指令并转换为具体API操作,实现了从对话到实际操作的跨越。其技术原理基于意图识别、参数提取、API选择等核心环节,能够有效连接外部系统和服务。在技术价值方面,这种智能体打破了自然语言与程序接口的壁垒,显著提升了非技术用户的操作效率。应用场景广泛覆盖客户服务、数据分析、办公自动化等领域,解决了传统方法依赖真实环境交互的成本高、效率低问题。Apple提出的无环境合成数据生成方法基于API文档自动生成训练数据,采用文档解析器、指令生成器等关键技

weixin_30924087的博客 363

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

GraphGen:革命性AI数据生成框架,如何用知识图谱增强LLM微调效果?

GraphGen是一个革命性的AI数据生成框架,通过知识图谱驱动的方式为大语言模型(LLM)微调生成高质量的合成数据。这个开源项目为AI开发者提供了一个强大的工具,能够显著提升LLM在监督微调(SFT)中的表现效果。GraphGen的核心优势在于它能够自动构建知识图谱、识别知识缺口,并生成针对性的训练数据,帮助开发者以更低的成本获得更好的模型性能。 ## 🔥 为什么需要GraphGen这样的A

gitblog_00759的博客 450

IFStruct数据生成原理揭秘:6种呈现风格、LLM拟人化改写与“边想边说“提示设计

IFStruct 是 Liquid AI 推出的**结构化输出合规基准**(structured-output compliance benchmark):它考验大模型能否按用户要求生成合法 JSON/YAML,且结构完全符合给定 schema。而理解这个基准的关键,在于它的数据生成原理——**6 种呈现风格、LLM 拟人化改写、"边想边说"式提示设计**三者叠加,让 2,000 条测试提示尽可能

gitblog_01199的博客 4

Apple无环境合成数据生成:API调用型LLM智能体训练新范式

API调用是LLM智能体实现外部能力扩展的核心技术,其原理是通过结构化请求与外部服务进行数据交互。在工程实践中,训练能够准确调用API的智能体面临真实数据稀缺、环境依赖性强等挑战。Apple研究人员提出的无环境合成数据生成方法,基于OpenAPI等规格文档,通过模式推断和参数约束分析自动生成高质量训练样本。这种技术显著降低了数据获取成本,避免了生产环境风险,特别适用于企业级AI助手、自动化业务流程等应用场景。该方法为API调用型智能体的规模化训练提供了可行路径,解决了传统方法中的数据瓶颈问题。

cong84596496的博客 374
上一篇: 主流AI Agent框架对比,让你轻松构建企业专属大模型!
下一篇: 普通电脑也能跑大模型,三步搞定私人AI助手 | LLaMA-3本地部署小白攻略
AI_小站
博客等级 码龄3年 6255粉丝 1154原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值