2026年7月2日 周四晚上19:30,报名腾讯会议了解“如何构建自进化的动态知识库(Brain)”(限30人)
免费POC, 零成本试错
FDE知识库

FDE知识库

学习大模型的前沿技术与行业落地应用


收藏

llama3 Post-Training(长上下文&工具使用)

发布日期:2024-09-12 14:41:52 浏览次数: 2943
作者:MLSys2024

微信搜一搜,关注“MLSys2024”

长上下文
在最终的预训练阶段,我们将Llama 3的上下文长度从8K个标记扩展至128K个标记。与预训练阶段相似,我们在微调过程中发现,必须精细调整训练方案,以平衡处理短上下文与长上下文的能力。

SFT与合成数据生成:若仅采用包含短上下文数据的现有SFT方案进行简单应用,则会导致预训练阶段所具备的长上下文能力出现显著退化,这凸显了在我们SFT数据组合中融入长上下文数据的必要性。然而,在实际操作中,由于阅读长篇幅上下文既繁琐又耗时,因此让人类去标注此类示例在很大程度上并不切实际。因此,我们主要依赖合成数据来填补这一空白。我们利用Llama 3的早期版本,基于关键的长上下文用例生成合成数据,这些用例包括(可能包含多轮对话的)问答、长文档摘要以及对代码仓库的推理,下文将对这些用例进行更详细的描述。

1.问答系统:我们从预训练数据集中精心挑选了一系列长文档,并将这些文档切割成每段8K个标记的区块。随后,我们利用Llama 3的早期版本模型,针对随机选取的区块生成问答对。在训练过程中,我们采用完整的文档作为上下文。
2.长文摘要:对于长上下文文档,我们采用了分级摘要的方法。首先,使用我们最强大的Llama 3 8K上下文模型对每段8K长度的输入进行摘要,然后再对这些初步摘要进行二次摘要。训练时,我们提供完整的文档,并提示模型在保留所有重要细节的同时对文档进行摘要。此外,我们还基于文档的摘要生成问答对,并向模型提出需要全局理解整个长文档的问题。
3.长上下文代码推理:我们解析Python文件,识别导入语句并确定其依赖关系。在此基础上,我们选择了那些被其他文件引用最多的关键文件(即至少被其他五个文件引用的文件)。然后,我们从代码库中移除这些关键文件之一,并提示模型识别哪些文件依赖于缺失的文件,并生成必要的缺失代码。
我们进一步根据序列长度(16K、32K、64K和128K)对这些合成样本进行分类,以便更精确地针对输入长度进行优化。
通过细致的消融实验,我们观察到,将0.1%的合成长上下文数据与原始短上下文数据混合,能够在短上下文和长上下文基准测试中均实现性能优化
对于DPO部分,我们发现,只要SFT(监督微调)模型擅长处理长上下文任务,那么在DPO中仅使用短上下文训练数据并不会对长上下文性能产生负面影响。我们推测,这可能是因为我们的DPO方案中的优化器步骤少于SFT。基于这一发现,我们在长上下文SFT检查点的基础上,保留了DPO的标准短上下文方案。
工具使用

教授大型语言模型(LLMs)使用搜索引擎或代码解释器等工具,能够极大地扩展它们能够解决的任务范围,使它们从纯粹的聊天模型转变为更通用的助手(Nakano等人,2021;Thoppilan等人,2022;Parisi等人,2022;Gao等人,2023;Mialon等人,2023a;Schick等人,2024)。我们训练Llama 3与以下工具进行交互:

1.搜索引擎:Llama 3经过训练,能够使用Brave Search7来回答关于近期事件的问题,这些问题可能超出了其知识范围,或者需要从网络上检索特定信息。
2.Python解释器:Llama 3能够生成并执行代码,以执行复杂计算、读取用户上传的文件,并基于这些文件完成任务,如问答、摘要、数据分析或可视化。
3.数学计算引擎:Llama 3可以利用Wolfram Alpha API8更准确地解决数学和科学问题,或从Wolfram数据库中检索准确信息。
生成的模型能够在聊天环境中使用这些工具解决用户的查询,包括多轮对话。如果查询需要多次调用工具,模型可以编写一个逐步计划,按顺序调用工具,并在每次工具调用后进行推理。
我们还提升了Llama 3的零样本工具使用能力——在给定上下文中的潜在未见工具定义和用户查询时,我们训练模型生成正确的工具调用。
实现方式我们将核心工具实现为具有不同方法的Python对象零样本工具可以作为带有描述、文档(即使用示例)的Python函数实现,模型仅需要函数的签名和文档字符串作为上下文来生成适当的调用。此外,我们还将函数定义和调用转换为JSON格式,例如用于Web API调用。所有工具调用均由Python解释器执行,该解释器必须在Llama 3的系统提示符中启用。核心工具可以在系统提示符中单独启用或禁用。
数据收集:与Schick等人(2024)的方法不同,我们依赖人工标注和偏好来训练Llama 3使用工具。与Llama 3中常用的后训练流程相比,存在两个主要差异
1)工具使用与对话标注:在工具使用中,对话往往包含多个助手消息(例如,调用工具并对工具输出进行推理)。因此,我们在消息级别进行标注,以收集更细致的反馈:标注者需在相同上下文中比较两个助手消息,选择其中一个作为偏好,或者如果两者都存在重大问题,则编辑其中一个消息。选定的或编辑后的消息随后被添加到上下文中,对话继续。这种方式既为助手调用工具的能力提供了人类反馈,也为对工具输出的推理能力提供了反馈。标注者无法对工具输出进行排序或编辑。
2)无拒绝采样:由于在我们的工具基准测试中未观察到收益,因此我们未采用拒绝采样。
为加快标注过程,我们首先通过在前一个Llama 3检查点上微调合成生成的数据,来引导基本的工具使用能力。这样,标注者需要进行的编辑工作就减少了。同样地,随着Llama 3在开发过程中的逐步改进,我们逐步使我们的人工标注协议复杂化:从单轮工具使用标注开始,逐步过渡到对话中的工具使用标注,最后进行多步骤工具使用和数据分析的标注。
工具数据集:为了创建工具使用应用的数据,我们采用以下流程:

1)单步工具使用:我们首先从少量示例生成合成用户提示,这些提示本质上需要调用我们的核心工具之一(例如,超出我们知识截止日期的问题)。接着,仍然依赖少量示例生成,我们为这些提示生成适当的工具调用,执行它们,并将输出添加到模型的上下文中。最后,我们再次提示模型,基于工具输出生成对用户查询的最终答案。我们得到的轨迹形式如下:系统提示、用户提示、工具调用、工具输出、最终答案。我们还筛选了大约30%的数据集,以移除无法执行的工具调用或其他格式问题。

2)多步工具使用:我们遵循类似的协议,并首先生成合成数据,以教授模型基本的多步工具使用能力。为此,我们首先提示Llama 3生成用户提示,这些提示需要至少两次工具调用,这些调用可以是来自我们核心集的相同或不同工具。然后,基于这些提示,我们使用少量示例提示Llama 3生成一个由交替的推理步骤和工具调用组成的解决方案,类似于ReAct(Yao等人,2022)。请参见图10,了解Llama 3执行涉及多步工具使用任务的示例。

3)文件上传:我们为以下文件类型进行标注:.txt、.docx、.pdf、.pptx、.xlsx、.csv、.tsv、.py、.json、.jsonl、.html、.xml。我们的提示基于提供的文件,要求总结文件内容、查找并修复错误、优化代码片段、进行数据分析或可视化。请参见图11,了解Llama 3执行涉及文件上传任务的示例。

在针对这些合成数据进行微调后,我们收集了在不同且具挑战性的场景下的人工标注,这些场景包括多轮交互、超过三步的工具使用,以及工具调用未能给出满意答案的实例。我们通过向合成数据中增加不同的系统提示来增强数据集,以教导模型仅在激活时才使用工具。为了训练模型避免对简单查询调用工具,我们还添加了来自简单数学或问答数据集(Berant等人,2013;Koncel-Kedziorski等人,2016;Joshi等人,2017;Amini等人,2019)的查询及其无需工具即可获得的响应,但在系统提示中仍激活工具。

零样本工具使用数据:我们通过在一个庞大且多样化的部分合成数据集(包含函数定义、用户查询及相应调用)上进行微调,提升了Llama 3的零样本工具使用能力(也称为函数调用)。我们在一组未见过的工具上评估了我们的模型。

1)单一、嵌套及并行函数调用:调用可以是简单的,也可以是嵌套的,即我们将一个函数调用作为另一个函数的参数传递;或者并行的,即模型返回一个独立函数调用的列表。生成一系列多样化的函数、查询和基准真值可能具有挑战性(Mekala等人,2024),因此我们借助挖掘Stack(Kocetkov等人,2022)的方法,将我们的合成用户查询与真实函数相关联。更具体地说,我们提取函数调用及其定义,进行清理和过滤(例如,针对缺少文档字符串或不可执行的函数),并使用Llama 3为函数调用生成对应的自然语言查询。

2)多轮函数调用:我们还为多轮对话中的函数调用生成了合成数据,遵循了与Li等人(2023b)提出的协议类似的方法。我们使用多个代理来生成领域、API、用户查询、API调用和响应,同时确保生成的数据覆盖多样化的领域和现实的API。所有代理都是Llama 3的不同变体,根据它们的角色以不同的方式被提示,并以逐步协作的方式工作。

53AI,企业落地大模型首选服务商

产品:场景落地咨询+大模型应用平台+行业解决方案

承诺:免费POC验证,效果达标后再合作。零风险落地应用大模型,已交付160+中大型企业

联系我们

售前咨询
186 6662 7370
预约演示
185 8882 0121

微信扫码

添加专属顾问

回到顶部

加载中...

扫码咨询

扫码登录
登录即表示您同意《53AI网站服务协议》
服务协议

欢迎您使用【53AI 官方网站】(以下简称“本网站”或“我们”)。本《会员服务协议》(以下简称“本协议”)是您(以下简称“会员”或“用户”)与【深圳市博思协创网络科技有限公司】之间关于注册、登录及使用本网站会员服务所订立的法律协议。

在您注册或登录前,请务必审慎阅读、充分理解各条款内容,特别是免除或限制责任的条款、知识产权条款、争议解决条款等。此类条款将以加粗形式提示您注意。 当您通过微信公众号授权、手机验证码验证或其他方式成功登录本网站时,即视为您已完全理解并同意接受本协议的全部内容。

一、 定义

本网站:指由【深圳市博思协创网络科技有限公司】运营的,域名为【53ai.com】的网站及相关移动端页面。

会员服务:指本网站向注册会员提供的知识库文章查阅、内容检索及其他相关增值服务。

知识库内容:指本网站发布的包括但不限于文字、图表、数据、研究报告、行业分析等数字化内容资源。

二、 账号注册与登录

登录方式:本网站支持以下登录方式,您可根据实际情况选择:

微信公众号授权登录:您同意将您的微信OpenID信息授权给本网站,用于创建或关联会员账号。

手机验证码登录:您需提供真实有效的手机号码,并通过短信验证码完成身份验证与登录/注册。

账号安全:您的账号仅限您本人使用,禁止赠与、借用、租用、转让或售卖。因您保管不善导致的账号被盗、密码泄露等损失,由您自行承担。

实名认证:根据相关法律法规要求,我们可能要求您在特定功能下完成实名认证。如您拒绝提供,可能无法使用部分或全部服务。

未成年人保护:若您未满18周岁,请在法定监护人的陪同下阅读本协议,并在征得监护人同意后使用本服务。

三、 服务内容与规范

知识库查阅权限:会员登录后,有权按照其会员等级对应的权限范围,在线浏览、检索本网站知识库中的相关文章及内容。

服务变更:我们有权根据业务发展需要,调整、变更或终止部分服务内容,并将以网站公告、公众号消息等方式提前通知。

禁止行为:您在使用服务时不得实施以下行为:

利用技术手段批量爬取、下载、转存知识库内容;

将知识库内容用于商业目的或未经授权地向第三方传播;

干扰本网站正常运行或侵犯其他用户合法权益;

发布违法违规信息或从事违反公序良俗的活动。

四、 知识产权声明

权利归属:本网站知识库中的排版设计、软件代码等内容的知识产权均归【公司全称】或原权利人所有,受《中华人民共和国著作权法》等法律保护。

有限许可:本网站授予会员一项非独占、不可转让、不可转授权的普通许可,仅限于个人学习、研究之目的在线查阅知识库内容。

侵权追责:未经书面许可,任何单位或个人不得以任何形式复制、转载、摘编、镜像、汇编或以其他方式使用上述内容。一经发现,我们保留追究其法律责任的权利。

五、 个人信息保护

我们重视对您个人信息的保护。关于我们如何收集、使用、存储和保护您的个人信息,请单独阅读 《隐私政策》。

您通过微信公众号授权或手机号验证所提供的信息,我们将严格按照《个人信息保护法》的规定处理,仅用于身份识别、服务提供及安全验证等必要用途。

您可以随时通过网站设置或联系客服行使查阅、更正、删除个人信息及撤回授权同意的权利。

六、 免责声明

内容准确性:知识库内容仅供参考,不构成专业建议。我们不对其完整性、准确性、时效性作任何明示或暗示的保证,您应自行判断并承担使用风险。

不可抗力:因自然灾害、政策法规变化、网络故障、第三方平台接口异常(如微信接口维护、运营商短信通道故障)等不可抗力导致的服务中断或延迟,我们不承担违约责任。

第三方链接:本网站可能包含指向第三方网站的链接,该等网站的内容和服务不受我们控制,请您自行甄别风险。

七、 违约责任

如您违反本协议约定,我们有权视情节采取警告、限制功能、暂停服务、注销账号等措施,并保留要求赔偿损失的权利。

如因您的违约行为导致我们遭受行政处罚、第三方索赔或商誉损失,您应承担全部赔偿责任(包括但不限于罚款、赔偿金、律师费、公证费等)。

八、 法律适用与争议解决

本协议的订立、执行和解释均适用中华人民共和国大陆地区法律。

因本协议产生的或与本协议有关的任何争议,双方应友好协商解决;协商不成的,任何一方均可向【公司所在地】有管辖权的人民法院提起诉讼。

九、 其他

本协议构成双方就本服务达成的完整协议,取代此前任何口头或书面约定。

本协议任一条款被认定为无效或不可执行的,不影响其他条款的效力。

我们对本协议享有最终解释权,并在法律允许的范围内保留随时修改的权利。修改后的协议一经公布即生效,继续使用服务即视为同意修订内容。


已查阅