The Llama 3 Herd of Models 第4部分后训练的全文

Llama 3前三部分包括介绍、总体概述和预训练icon-default.png?t=N7T8https://blog.csdn.net/qq_51570094/article/details/140682445?spm=1001.2014.3001.5501

4 Post-Training 后训练

        我们通过应用几轮后训练6或将模型与人类反馈对齐来生成对齐的Llama 3模型(Ouyang等人,2022;Rafailov等人,2024)在预先训练的检查点之上。每一轮训练后都包括监督微调(SFT),然后是直接偏好优化(DPO;Rafailov等人,2024)对通过人工注释或合成生成收集的示例进行了分析。我们的训练后建模和数据方法分别在4.1节和4.2节中描述。我们将进一步详细介绍自定义数据管理策略,以改进推理、编码、事实性、多语言、工具使用、长上下文和精确的指令。

4.1 Modeling 建模

        我们的培训后策略的支柱是激励模型和语言模型。我们首先使用人工标注的偏好数据在预训练的检查点上训练激励模型(见第4.1.2节)。然后,我们用监督微调(SFT;参见4.1.3节),并进一步将检查点与直接偏好优化(DPO;参见4.1.4节)。这个过程如图7所示。除非另有说明,否则我们的建模过程适用于Llama 3 405b,为了简单起见,我们将Llama 3 405b称为Llama 3。

4.1.1 Chat Dialog Format 对话框格式

        为了调整LLM进行人机交互,我们需要为模型定义一个聊天对话协议,以理解人类指令并执行会话任务。与其前身相比,Llama 3具有新的功能,例如工具使用(章节4.3.5),可能需要生成多个消息并发送在单个对话框中,将它们转移到不同的位置(例如,user, ipython)。为了支持这一点,我们设计了一个新的多消息聊天协议,它使用了各种特殊的头和终止tokens。标头tokens用于指示会话中每个消息的源和目的地。同样,终止tokens表示何时该在人类和AI之间交替发言。

4.1.2 Reward Modeling 激励模型

        我们在预先训练的检查点上训练了一个激励模型(RM),涵盖了不同的能力。训练目标与Llama 2相同,除了我们删除了损失中的边际项,因为我们观察到数据缩放后的改进逐渐减少。在Llama 2中,我们在过滤掉具有相似反应的样本后,将所有偏好数据用于激励建模。除了标准的偏好对(选择,拒绝)响应之外,注释还为某些提示创建第三个“编辑响应”,其中从对中选择的响应被进一步编辑以进行改进(参见第4.2.1节)。因此,每个偏好排序样本都有两个或三个具有明确排序(编辑>选择>拒绝)的响应。在训练期间,我们将提示和多个响应连接到一行中,并随机打乱响应。这近似于将响应放在单独的行中并计算分数的标准场景,但在我们的实验中,这种方法提高了训练效率,同时又不损失准确性。

4.1.3 Supervised Finetuning 监督微调

        然后使用激励模型对我们的人类注释提示执行拒绝抽样,其细节将在4.2节中描述。与此拒绝采样数据和其他数据源(包括合成数据)一起,我们使用目标标记上的标准交叉熵损失(同时屏蔽提示标记上的损失)来微调预训练的语言模型。关于数据混合的更多细节可以在4.2节中找到。我们把这个阶段称为监督微调(SFT;魏等,2022a;Sanh等,2022;Wang等人,2022b),尽管许多训练目标是模型生成的。我们最大的模型在8.5K到9K步的过程中被微调为1e-5的学习率。我们发现这些超参数设置在不同回合和数据混合中都能很好地工作。

4.1.4 Direct Preference Optimization 直接的偏好优化

        我们进一步用直接偏好优化(DPO;Rafailov等人,2024)的人类偏好对齐。对于训练,我们主要使用最近一批的偏好数据,这些数据是使用前几轮校准中表现最好的模型收集的。因此,我们的训练数据更符合每轮正在优化的策略模型的分布。我们还探索了PPO (Schulman等人,2017)等策略算法,但发现DPO对于大规模模型需要更少的计算并且表现更好,特别是在IFEval等基准指令之后(Zhou等人,2023)。

        对于Llama 3,我们使用1e-5的学习率,并将β超参数设置为0.1。此外,我们对DPO进行了以下算法修改:

                •屏蔽DPO丢失中的格式化tokens:我们从丢失中的选择和拒绝响应中屏蔽特殊的格式化tokens,包括标头和终止tokens(见第4.1.1节),以稳定DPO训练。我们观察到,让这些tokens导致损失可能会导致不希望的模型行为,如尾部重复或突然生成终止tokens。我们假设这是由于DPO损失的对比性质——在被选择和被拒绝的响应中存在共同的tokens导致了一个相互冲突的学习目标,因为模型需要同时增加和减少这些tokens的可能性。

                •使用NLL损失进行正则化:我们在所选序列上添加了一个额外的负对数似然(NLL)损失项,其缩放系数为0:2,类似于Pang等人(2024)。这有助于进一步稳定DPO训练,通过维持所需的生成格式和防止所选响应的对数概率下降(Pang等人,2024;Pal et al, 2024)。

4.1.5 Model Averaging 模型平均

        最后,我们对每个RM、SFT或DPO阶段使用不同版本的数据或超参数从实验中获得的模型进行平均(Izmailov等人,2019;Wortsman等,2022;Li et al ., 2022)。

 4.1.6 Iterative Rounds 迭代

        在Llama 2 之后,我们将在6轮中应用上述方法。在每个周期中,我们收集新的偏好注释和SFT数据,从最新模型中采样合成数据。

4.2 Post-training Data 后训练数据

        训练后的数据组合对语言模型的有用性和行为起着至关重要的作用。在本节中,我们将讨论人工标注过程和偏好数据收集(第4.2.1节),SFT数据的组成(第4.2.2节),以及数据质量控制和清理的方法(第4.2.3节)。

4.2.1 Preference Data   偏好数据

        我们的首选项数据注释过程类似于Llama 2。我们在每一轮之后部署多个模型进行注释,并为每个用户提示从两个不同的模型中采样两个响应。这些模型可以使用不同的数据混合和校准方法进行训练,从而允许不同的能力强度(例如,代码专业知识)和增加的数据多样性。我们要求注释者通过将其分类为四个级别之一来评估他们偏好的强度,基于他们对选择的回答比拒绝的回答更喜欢的程度:明显更好,更好,稍好,或略好。我们还在偏好排序之后加入了编辑步骤,以鼓励注释者进一步改进首选响应。注释者直接编辑选择的响应,或者用反馈提示模型以改进它自己的响应。因此,我们的偏好数据的一部分有三个响应排序(编辑>选择>拒绝)。

        在表6中,我们报告了用于Llama 3训练的偏好注释的统计信息。通用英语涵盖了多个子类,例如基于知识的问答或精确的指令遵循,这些都不在特定能力的范围内。与Llama 2相比,我们观察到Llama 3的平均提示和反应时间有所增加,这表明我们可以训练Llama 3完成更复杂的任务。此外,我们实施了质量分析和人工评估流程,以严格评估收集到的数据,使我们能够改进提示并向注释者提供系统的、可操作的反馈。例如,随着Llama 3在每一轮后的改进,我们会根据模型滞后的目标区域相应地增加提示复杂度。

        在每一轮后训练中࿰

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/3280358.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

Null Pointer Exception: 如何快速定位和修复?️

Null Pointer Exception: 如何快速定位和修复?💡🛠️ Null Pointer Exception: 如何快速定位和修复?💡🛠️摘要引言正文内容什么是Null Pointer Exception?🤔NPE的常见原因&#x1f…

使子查询可行

使用 子查询 时,行为或要求可能不会保存为普通查询。 此查询有效: 但是,作为子查询,它不再起作用: 原因是子查询需要别名:当我们添加它时,原来的错误消失了,但又出现了新的错误&…

springboot集成thymeleaf实战

引言 笔者最近接到一个打印标签的需求,由于之前没有做过类似的功能,所以这也是一次学习探索的机会了,打印的效果图如下: 这个最终的打印是放在58mm*58mm的小标签纸上,条形码就是下面的35165165qweqweqe序列号生成的&…

FPGA知识基础之--按键控制LED灯项目

文章目录 前言一、按键简介按键:通过按下或者释放来控制电路通断的电子元件按键原理图 二、实验要求三、程序设计3.1思路整理3.2 模型搭建3.3 顶层模块3.4 波形分析 四、代码整理4.1RTL代码4.2 仿真只需在Testbench上增加上述一段代码即可将参数实例化,可达到在Testbench上更改…

卷积神经网络的入门基本介绍 | 带你快速上手各种概念【附图解】

文章目录 1、简介2、核心概念3、关键操作4、常见架构5、训练过程6、重要概念图解⭐6.1、卷积神经网络工作⭐6.2、卷积核6.3、全连接与卷积网络的对比6.4、池化层6.5、感受野和卷积堆叠6.6、神经元计算和激活函数 7、卷积网络可以改进的地方8、结论 🍃作者介绍&#…

vue3集成LuckySheet实现导入本地Excel进行在线编辑

第一步:克隆或者下载下面的代码 git clone https://github.com/dream-num/Luckysheet.git第二步:安装依赖 npm install npm install gulp -g 第三步:运行 npm run dev效果如下图所示 第四步:打包 打包执行成功后,…

TypeError: Components is not a function

Vue中按需引入Element-plus时,报错TypeError: Components is not a function。 1、参考Element-plus官方文档 安装unplugin-vue-components 和 unplugin-auto-import这两款插件 2、然后需要在vue.config.js中配置webPack打包plugin配置 3、重新启动项目会报错 T…

程序员开发指南

在这个快节奏的时代,作为一名程序员,大家都希望能更快地开发出高质量的应用,而不是花费大量时间在基础设施和后台服务的搭建上。今天,我要向大家介绍一款专为懒人开发者准备的一站式开发应用的神器——MemFire Cloud。 一站式开发…

制品库nexus

详见:Sonatype Nexus Repository搭建与使用(详细教程3.70.1)-CSDN博客 注意事项: 1.java8环境使用nexus-3.69.0-02-java8-unix.tar.gz包 2.java11环境使用nexus-3.70.1-02-java11-unix.tar.gz包 3.注意使用制品库/etc/yum.repos.…

动物大联盟游戏攻略:必备游戏攻略!VMOS云手机升级攻略教程!

在《动物大联盟》中,合理的称号选择、活动参与和组队合作可以极大提升游戏体验和效率。以下是详细的攻略建议: 称号选择 称号不仅能展示玩家的实力和成就,还能提供额外的属性加成。合理选择和更换称号是提升战力的重要途径。 前期称号选择&…

Matlab编程资源库(19)级数与符号方程求解

一、级数符号求和 求无穷级数的和需要 符号表达式求和函数 symsum ,其调用 格式为: symsum(s,v,n,m) 其中 s 表示一个级数的通项,是一个符号表达式。 v 是求和变 量, v 省略时使用系统的默认变量。 n 和 m 是求和的开始项 和…

【康复学习--LeetCode每日一题】3111. 覆盖所有点的最少矩形数目

题目&#xff1a; 给你一个二维整数数组 point &#xff0c;其中 points[i] [xi, yi] 表示二维平面内的一个点。同时给你一个整数 w 。你需要用矩形 覆盖所有 点。 每个矩形的左下角在某个点 (x1, 0) 处&#xff0c;且右上角在某个点 (x2, y2) 处&#xff0c;其中 x1 < x…

职业教育计算机网络综合实验实训室建设应用案例

近年来&#xff0c;职业教育在培养技能型人才方面发挥着越来越重要的作用。然而&#xff0c;传统的计算机网络技术教学模式往往重理论、轻实践&#xff0c;导致学生缺乏实际操作能力和职业竞争力。为了改变这一现状&#xff0c;唯众结合职业教育特点&#xff0c;提出了“教、学…

04.FreeRTOS任务创建

04. FreeRTOS任务创建与任务删除 1. FreeRTOS创建和删除任务相关API函数 函数描述xTaskCreate()动态方式创建任务xTaskCreateStatic()静态方式创建任务xTaskCreateRestricted()动态方式创建使用 MPU 限制的任务xTaskCreateRestrictedStatic()静态方式创建使用 MPU 限制的任务…

C# Unity 面向对象补全计划 之 继承(字段与属性)

本文仅作学习笔记与交流&#xff0c;不作任何商业用途&#xff0c;作者能力有限&#xff0c;如有不足还请斧正 本系列旨在通过补全学习之后&#xff0c;给出任意类图都能实现并做到逻辑上严丝合缝 Q&#xff1a;为什么要单讲继承字段与属性&#xff0c;不讲继承方法了吗&#x…

Centos 7配置问题

在VMWare12上面安装Centos 7 Linux虚拟机&#xff0c;在切换到命令界面时&#xff0c;需要登录用户名和密码&#xff0c;但发现输入用户后有字符显示&#xff0c;但是密码没有。 经过一系列查看后&#xff0c;发现这个是Linux的一种机制&#xff0c;即当你输入密码时不显示&…

为什么阿里开发手册不建议使用Date类?

在日常编码中&#xff0c;基本上99%的项目都会有一个DateUtil工具类&#xff0c;而时间工具类里用的最多的就是java.util.Date。 大家都这么写&#xff0c;这还能有问题&#xff1f;&#xff1f; 当你的“默认常识”出现问题&#xff0c;这个打击&#xff0c;就是毁灭性的。 …

Python学习计划——7.2数据可视化

数据可视化是数据分析的重要组成部分&#xff0c;通过图表和图形将数据直观地展示出来&#xff0c;帮助我们发现数据中的模式和趋势。Python中常用的数据可视化库有matplotlib和seaborn。以下是对这些库的详细讲解及可运行的Python案例。 1. matplotlib 库 matplotlib 是一个…

Git 基础操作手册:轻松掌握常用命令

Git 操作完全手册&#xff1a;轻松掌握常用命令 引言一、暂存&#xff1a;git add ✏️二、提交&#xff1a;git commit &#x1f4dd;三、拉取、拉取合并 &#x1f504;四、推送&#xff1a;git push &#x1f310;五、查看状态&#xff1a;git status &#x1f4ca;六、查看历…