LLM自对齐技术最新研究分享(二):对齐 Pipeline 数据合成(下)

news2024/9/19 9:36:43

LLM 自对齐技术最新研究进展分享 系列文章继续更新啦!本系列文章将基于下图的架构,对当前 Self-alignment 相关工作进行全面梳理,厘清技术路线并分析潜在问题。

添加图片注释,不超过 140 字(可选)

在上一篇文章中,我们主要探讨了 “如何让 LLM 合成 Instructions”,解决了 Instructions 从哪里来的问题,接下来要解决的问题就是如何让 LLM 采集 Response,那么此时我们需要面临抉择,到底是要进行 SFT 还是 RLAIF 方式进行对齐,不同的选择需要用到不同的方式。

SFT

SFT 路线的目标是让 LLM 合成符合 3H 原则的回答:Helpful、Honest、Harmless。 目前工作采用如下几种常见方法采集高质量回答,包括 Distillation、Critic&Refine、In-context、Guided Decoding、Self-Consistency、Task Decomposition 这些方法。

Distillation

Distillation 的思路在于得到其他 Strong model 的回答,之后可以直接在该回答上进行微调,比如 Baize 和 UltraChat 都是收集其他 LLM 的对话数据,再进行蒸馏。 虽然蒸馏省事简单,但是可能会遇到如下几个问题:

  1. 受 Strong model 的能力瓶颈限制。

  2. 受 Strong model 的 Bias 影响,可以借鉴 Co-Supervised Learning 的思想不限制 Response 的来源,从多个 Strong model 进行蒸馏缓解该问题。

  3. Strong model 的回答可能跟当前模型并不适配,需要进一步筛选。Selective Reflection-Tuning 不再将 Teacher model 的 Response 直接拿来蒸馏,而是对这些 Response 筛选出合适的,他们利用 Student model 的困惑度计算了一个 r-IFD 分数,该分数筛选得到的 Response 对于 Student model 来说与 Instructions 更加适配,这些 Response 更适合 Student model 进行学习。

Critic&Refine

该方法主要利用 LLM 的 Critic 和 Refine 能力。LLM 可以根据评论建议对自己的 Response 进行修改完善,利用该能力可以提高 Response 的质量。

SELF-REFINE 是较早挖掘 LLM Refine 能力的工作,对于生成的 Response,SELF-REFINE 让 LLM 自己对其进行评论,之后根据评论再对 Response 进行 Refine。

这里 Critic 可以由其他 Strong model 生成,之后 LLM 根据该 Critic 进行 Refine。IterAlign 让 LLM 通过self-reflection 对自己的 Response 进行 Refine,这里进行 self-reflection 时 LLM 参考了 GPT-3.5 的建议,之后 LLM 在 Refine 后的数据上进行 SFT。

我们也可以将 Critic、Refine 都交给 Strong model 来进行,LEMA 利用 GPT-4 对 LLM 不正确的 Response 进行错误定位、错误解释、错误修改,这些 GPT-4 的回答与分析将用来对当前 LLM 微调。 利用 Critic、Refine 来得到高质量 Response 可能有如下几个问题,这些问题的回答可以更好地利用这些能力:

  • 如何对 LLM 的 Critic、Refine 的能力进行测评。The critique of critique 构建了一个评测 Critic 的量化指标——MetaCritique ,该指标越高,模型的 Critic 可以引出更好的 Refine 结果。

  • 如何提高 LLM 的Critic、Refine 的能力。CriticBench 对 LLM 推理任务下的 Critic、Refine 能力进行了测评,发现 LLM 的 Generation 能力和批评、纠错的能力存在线性关系。

In-context

In-context 主要利用 LLM 的上下文学习能力,通过在 Prompt 中加入一些示例等上下文信息,引导产生相似回答,这里的信息可以是直接固定在上下文中,或者动态加入到上下文中。

  • 固定上下文信息:该方式一般会预定义好一些 Rules,并加入一些跟对齐目标相关 Examples,如 SELF-ALIGN 在 In-context 中加入 5 个示例和 16 个 Principles,让 LLM 生成符合这些 Principle 的回答。

  • 动态引入:该方式中的上下文信息不再固定,而是根据当前 Instructions 从数据库中检索出相关的示例,或者是直接从 LLM 中提取。比如 Human-Instruction-Free 希望提高 Specific Domain 下合成 Response 的质量,他们通过检索的方式从该 Domain 下的数据库中选择问题相似的 Examples 来作为上下文。OPO 也是采用了检索的方式,根据问题从数据库中检索相关的法律规定等信息加入到上下文中。

In-context 方法面临的问题主要在于对上下文中的信息较为敏感,需要根据对齐表现不断改进上下文的设计,如果需要更换任务则需要重新设计引入的信息。另外 In-context 方式生成 Response 也部分利用了现有数据的先验信息,未来也可以继续探索新的挖掘方式来为上下文引入更多信息。

Guided Decoding

对 LLM 的解码过程进行引导,可以提高回答的质量,此时一般需要对 LLM 的采样过程构建树或者图结构,选择高奖励值的路径。这种技术一般被用在解决复杂推理问题或者是提前中断可能会包含 Harmfule 内容的路径。

Guided Decoding 早期的相关工作为 CoT 技术,提示让 LLM 输出推理的中间步骤,只不过 CoT 的推理过程是一个简单的直线顺序结构,后续工作提出可以用树结构或图结构来表示推理过程,在构建树或者图的过程中对解码过程进行引导。

ToT 用树结构来表示LLM的思考过程,其中每个节点表示下一步采取的步骤、计划,LLM 会对每一个节点进行评价,选择最好的节点继续向下展开。GoT 在 ToT 的基础上对树结构进行了改进,将解码过程用一个图来表示,不同节点可以汇聚生成新的节点。

添加图片注释,不超过 140 字(可选)

除了聚焦于推理问题,Guided Decoding 也可以生成无害的回答。RAIN 就采用该技术提前裁剪掉可能包含有害内容的节点。

Guided Decoding 面临的主要问题在于采样效率,需要由其他模型进行状态估计,不过可以对该过程得到的答案进行蒸馏,推理时正常解码。比如 ALPHALLM 将该技术与 Self-training 进行结合。他们拿这种方式搜索得到的 Response 当做模型微调的数据,迭代进行 Self-training。

Self-Consistency

Self-Consistency 指的是当对 Response 进行多次采样时,正确答案可能会占据大多数,我们可以利用多数投票等方法得到正确的 Response,该技术可以帮助合成正确答案数据。Large Language Models Can Self-Improve 利用 CoT 和 Self-Consistency 来让模型进行自提升,产生正确的回答后作为微调数据将其蒸馏到参数中。

Task Decomposition

Task Decomposition 思路是采用分而治之的想法,对复杂任务进行拆解,分个解决后再汇总得到最终答案。 Decomposed Prompting 将复杂任务拆解后交给其他 LLM(当前 LLM 的 Copy)一起做,其他 LLM 接到任务后可以进一步拆解。LEAST-TO-MOST 则将复杂任务拆解为一个个接连的子任务,每一个任务的完成都能帮助后面的任务。Plan-and-Solve Prompting 则让 LLM 首先制定当前任务的计划,之后再根据该计划一步一步完成。

Task Decomposition 方法面临的主要问题在于:

  1. 将复杂任务拆分成这一步可能本来就是最困难的。

  2. 协作过程中错误可能累积。

  3. 部分任务并行化困难。某些任务只能顺序解决,无法多个 LLM 之间并行解决,会影响效率问题。

RLAIF

除了选择 SFT 这种方式进行参数更新,另一种就是 RLAIF。RLAIF 的主要目标在于自动采集偏好数据,来替代人类反馈。可以分为两个主要方法:

  1. 对产生的 Response 进行排序

  2. 直接生成具有偏好关系的 Response

对 Response 进行排序

我们可以用 LLM 来代替人类从多个回答中选择出较好的,这些选择结果将作为偏好数据来对模型进一步对齐。 CAI 是最早提出 RLAIF 的概念,尝试用 AI 来替代人类选择偏好数据,他们让 AI 来选择符合宪法要求的 Response,这种方法后面也用到了许多工作中,但是早期 RLAIF 的工作存在如下几个问题:

  1. 这些 AI 偏好选择产生的数据都是离线的,与当前正在训练的 LLM 的分布有偏差,可能会面临 Distribution shift 的问题,因此部分后续工作在 On-policy 这一点上继续改进。OAIF 采用另外的 Annotating model 来进行 Online 的偏好数据选择,SELF-JUDGE 提前训练好一个 Judge model,然后用该 Judge model 对当前产生的 Response 进行偏好选择。

  2. 另外一个问题则是奖励模型在训练中一般是冻结参数的,可能会随着训练进行无法继续提供有效的奖励信号,或者遇到 Rewad hack 问题。Self-Rewarding 提出让 LLM 自己当做奖励模型,每轮迭代时拿自己选择的偏好数据进行 DPO 训练,这样奖励模型会随着模型进化也会不断提高。

  3. 奖励模型一旦训练完成,我们无法再重新修改偏好。为了实现更精细化、动态的偏好选择,SALMON 引入了一个 Instructable Reward Model,可以在对齐时根据任意 principle 来对 Response 进行动态打分。

  4. 当模型对齐程度已经比较好的时候,用其他模型对 Response 排序会比较困难,不同 Response 之间可能没有明显差别。此时我们可以引入其他信号来帮助排序,CycleAlign 认为可以利用 LLM 自己产生 Response 的概率来辅助排序,首先分别用 Response 概率和其他模型排序得到两个结果,之后选择这两个结果的最长公共序列作为最终排序结果。

由于对 Response 进行排序本质是基于 LLM 的 Judge 能力,我们也可以对这种能力进一步拓展。

  • 利用工具或代码:AUTOIF 让 LLM 自己针对 Instructions 的要求生成验证的代码,这些代码可以判断 Response 是否符合指令的要求。

  • LLM 集成:PoLL 选择用多个模型来进行 Judge,缓解单一模型带来的 Bias。

直接生成具有偏好关系的 Response

除了对 Response 排序得到偏好数据,还可以用某些方法引导模型直接产生偏好数据。这种方式产生的偏好数据一般有清晰的偏好关系,包含的噪音更少,可以通过以下几种方式进行生成:

  • 通过 Prompt 直接生成:这种方式需要给出相反的指令,进而让模型产生相反的 Response。

GRATH 对于同一个 Questions,直接在 Prompt 中指明让 LLM 生成正确的答案和错误的答案,之后拿这些数据进行 DPO 训练,迭代进行该过程可以提高 LLM 的 truthfulness。RLCD 对 LLM 输入成对相反的 Prompt(如 Harmless 和 Harmfull),不同 Prompt 下得到的 Response 就可以直接作为偏好数据。

  • 通过模型探索轨迹生成:多次采样,收集 LLM 的每一步探索和对应结果,对应的正确和错误的结果可以当做偏好数据。

UltraInteract 利用 LLM 的 Response 构造了一棵 Preference Tree,这棵 Preference Tree 是二叉树,根节点为 Instruction,每个节点的子节点分别是正确和错误的 Response,对于错误的 Response,LLM 会根据环境反馈和 GPT-4 的建议进行 Refine,之后继续向下对树进行拓展。当一颗 Preference Tree 构建完毕,每对子节点就是一个偏好数据。

  • 通过对不同数据来源做出假设:对不同数据来源提前设定好一个偏好顺序,例如假定专家模型的回答优于当前较弱模型的回答,采集这些回答也可以构造偏好数据。

RLAIF 将人类反馈用 AI 反馈来进行替代,随之而来的一个问题在于我们无法确保 AI 提供的反馈是否本来就和人类对齐,另外为什么 AI 提供的反馈可以作为有效的对齐信号。例如 CriticBench 认为可能是有一部分知识模型难以通过生成的方式利用,只能通过评价反馈的方式利用。Self-Rewarding 则认为模型的反馈能力是指令跟随能力的副产品,随着模型不断对齐,其提供反馈的能力也在不断提高。

总结

本文我们重点探讨了“如何让 LLM 采集 Response”,解决了如何拿到 Response 的问题。至此,对于“对齐 Pipeline 数据合成”路线的 Self-alignment,我们需要关注的两大问题已全部有了答案。

在下一篇文章,我们将继续探讨 Self-alignment 的另一实现路线——Multi-agent 对齐,敬请期待哦!

系列传送门

LLM自对齐技术最新研究分享(一):对齐 Pipeline 数据合成(上)-CSDN博客

LLM自对齐技术最新研究分享(二):对齐 Pipeline 数据合成(下)-CSDN博客

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

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

相关文章

MySQL数据库——概念与安装

目录 一、数据库的概述 1、数据库的基本概念 2、数据库管理系统(DBMS) 2.1、数据库管理系统概述 2.2、DBMS的工作模式 3、数据库系统(DBS) 3.1、数据库系统概述 3.2、数据库系统发展史 3.3、当今主流数据库介绍 4、关系…

VS2022离线安装包 - 下载安装教程

总目录 前言 一般情况下我们都是通过网络下载并安装VS2022,但是有些情况下,由于公司内部网络管理比较严格,可能会需要安装离线安装包这样的操作。 一、下载Visual Studio bootstrapper 进入Visual Studio bootstrapper下载界面按照如下图示…

angular xlsx-style,复杂表头样式导出

导出效果如下图所示: 下载xlsx npm install xlsx angular.json中引入: "node_modules/xlsx/dist/xlsx.full.min.js","src/assets/js/jszip.js","src/assets/js/xlsx.js" 两个插件地址: 上传中,等…

Android U WMShell动画调用堆栈

本文主要简单介绍WMShell动画调用堆栈 代码环境:repo init -u https://mirrors.tuna.tsinghua.edu.cn/git/AOSP/platform/manifest -b android-14.0.0_r7 Systemserver侧 TAG: at com.android.server.wm.Transition.onTransactionReady(Transition.java:1575) TA…

Centos 设置成中国时区

原因是初始安装的 Centos 系统,时区是UTC,跟中国时间不一样,这样会导致一些问题,例如后面安装一些软件,证书认证失败等问题。 修改时间命令如下 1.首先,使用以下命令安装 tzdata 软件包(如果尚…

喜羊羊做Python二级(模拟考试--易错点)

今天距离Python二级考试,还有28天左右。坚持每天做几套试卷,保持记忆和手感。 个人在做题的过程中是先不断练习选择题。当你选择题不达标的时候,系统不会看大题(大概是觉得选择题都做的那么差,大题也不会那么好&#…

数据执行保护讲解

数据执行保护(Data Execution Prevention,简称DEP)操作系统中的一项安全功能,旨在防止恶意代码利用缓冲区溢出漏洞执行。它通过将内存的某些区域标记为不可执行,从而防止从这些区域执行代码。这适用于所有程序&#xf…

05:【江科大stm32】:定时器输出比较功能(PWM)

定时器输出比较功能(PWM) 1、LED呼吸灯2、PWM驱动舵机3、PWM驱动电机 1、LED呼吸灯 ①PWM.c文件的代码如下: #include "stm32f10x.h" // Device header/*使用定时器TIM2,通过通道CH1(PA0)输出PWM波 …

模型 PMI思考法

系列文章 分享 模型,了解更多👉 模型_思维模型目录。全面评估,三思而后行。 1 PMI思考法的应用 1.1 个人职业发展中的PMI思考法应用 张华是一位有志于提升自己职业竞争力的职场人士。他正在考虑报名参加一个专业认证课程,以期提…

Windows安装Ora2Pg(迁移表结构,表数据)

版本: windows server 2012 R2 oracle 12 说明: 目前该操作是在安装了oracle的机子上做的。 1、安装perl Strawberry Perl下载地址: Strawberry Perl for Windows - Releases 选择一个合适的版本,下载下来之后只需要选择…

百度广告联盟:抢占流量蓝海,精准营销新引擎

百度广告联盟:抢占流量蓝海,精准营销新引擎 在数字营销时代,争夺消费者的注意力与流量成为品牌竞争的关键。百度广告联盟,作为互联网营销领域的佼佼者,凭借其广泛的平台覆盖、精准的受众定位以及丰厚的合作回报…

水稻病害-目标检测数据集(包括VOC格式、YOLO格式)

水稻病害-目标检测数据集(包括VOC格式、YOLO格式 数据集: 链接:https://pan.baidu.com/s/1eiygobnVJklOdgyCwb2RVg?pwdvsoc 提取码:vsoc 数据集信息介绍: 共有 2148 张图像和一一对应的标注文件 标注文件格式提供了…

《深入浅出WPF》读书笔记.8路由事件

《深入浅出WPF》读书笔记.8路由事件 背景 路由事件是直接响应事件的变种。直接响应事件,事件触发者和事件响应者必须显示订阅。而路由事件的触发者和事件响应者之间的没有显示订阅,事件触发后,事件响应者安装事件监听器,当事件传…

MySQL EXPLAIN 完全解读

MySQL EXPLAIN 完全解读 一、一个EXPLAIN简单执行二、简单了解2.1. id:查询的标识符。2.2. select_type:查询的类型。2.3. table:输出结果集的表。2.4. type:连接类型,这是MySQL决定如何查找表中行的方法。2.5. possib…

学习之数据库相关概念

数据库相关概念 主流的关系型数据库管理系统:

HIVE 数据仓库工具之第一部分(讲解部署)

HIVE 数据仓库工具 一、Hive 概述1.1 Hive 是什么1.2 Hive 产生的背景1.3 Hive 优缺点1.3.1 Hive的优点1.3.2 Hive 的缺点 1.4 Hive在Hadoop生态系统中的位置1.5 Hive 和 Hadoop的关心 二、Hive 原理及架构2.1 Hive 的设计原理2.2 Hive 特点2.3 Hive的体现结构2.4 Hive的运行机…

数据集的使用

一、 Transform与dataset数据集的使用 import torchvisionfrom torch.utils.tensorboard import SummaryWriterdataset_transform torchvision.transforms.Compose([torchvision.transforms.ToTensor()])train_set torchvision.datasets.CIFAR10(root "./dataset"…

《中文Python穿云箭量化平台二次开发技术03》利用Tkinter高级模块设计自己策略代码编辑器及策略运行窗口

《中文Python穿云箭量化平台》是纯Python开发的量化平台,因此其中很多Python模块,我们可以自己设计新的量化工具,例如自己新的行情软件、新的量化平台、以及各种量化研究工具。 穿云箭自带指标公式源码运行模块,可以为其他量化平台…

基于云原生的一体化监控系统Day1

7.1 监控体系部署管理 7.2k8s集群层面监控 准备:部署k8s集群 master:192.168.192.128 node01:192.168.192.129 node02:192.168.192.130 1.prometheus架构: prometheus工作原理: 1.数据采集&#xff…

AI视频平台精选:国内外对比与推荐

原文:AI视频平台精选:国内外对比与推荐 国内外有多个平台可以生成AI视频,这些平台各有其独特的优点和缺点。以下是对一些主要平台的详细介绍,包括它们的优缺点,以及针对个人和自媒体用户的推荐。 国内平台 1. 快手可…