用判断对齐大语言模型

news2024/10/1 7:29:24

1、写作动机:

目前的从反馈中学习方法仅仅使用判断来促使LLMs产生更好的响应,然后将其作为新的示范用于监督训练。这种对判断的间接利用受到无法从错误中学习的限制,这是从反馈中学习的核心精神,并受到LLMs的改进能力的制约。

2、主要贡献:

• 首次系统地探讨了将LLMs与判断对齐的方法。

• 引入了一个新颖的框架CUT(对比不可能性学习),通过直接和明确地从判断中学习,促进了LLMs的对齐。值得注意的是,CUT允许基于判断进行细粒度的不当内容检测和校正。 

3、背景知识-从反馈中学习:

从反馈中学习的现有方法可以分为两个不同的类别:提示和微调,它们通过LLMs的参数是否更新来区分。

提示: 提示不改变LLMs的参数。相反,它利用对先前响应的语言反馈,以促使生成更好的响应。

微调: 微调旨在直接训练一个更好的LLM。

4、将LLMs与判断对齐的预备知识:

假设有一组指令-响应-判断三元组(x,y,j),其中指令x = [x1,...,xM],响应y = [y1,...,yN],判断j = [j1,...,jQ]都是长度分别为M、N和Q的token序列。响应可能存在某些缺陷,或者被认为完全令人满意。判断提供了对响应的优点和缺点的分析。判断可以由人类标注员或AI评判模型起草。

将LLMs与判断对齐的目标是使LLM保留在优点中提到的适当行为,更重要的是解决弱点,以防止未来的错误行为。

一些先前的解决方案:

前向预测: 前向预测是指顺序预测响应及其判断的过程,具体来说,LLM在最大似然估计(MLE)目标下被训练,首先基于指令x生成响应y,然后基于组合序列[x,y]生成判断j。

从语言反馈中的模仿学习: 从语言反馈中的模仿学习(ILF)要求LLM在给定反馈j的情况下改进初始响应y。改进后的响应yˆ,与初始指令x配对,用于在MLE目标下微调LLM。

追溯法: 追溯法根据响应y收到的标量奖励重写指令x。例如,如果一个响应收到低于一定阈值的标量奖励,则在原始指令中添加短语“生成正确答案”;否则,添加“生成错误答案”。显然,这种方法可以自然地扩展到我们的问题设置中。具体来说,LLM被训练生成响应y,条件是序列[x,j]。

然而,在前向预测中,学习生成判断不一定会转化为增强的响应生成,因为响应生成先于判断生成。ILF只利用正面数据(即改进的响应),限制了模型识别和纠正在负面判断中强调的弱点或错误的能力。至于追溯法,使用不令人满意的响应作为MLE目标必然增加了生成不令人满意响应的风险。

5、CUT框架:

CUT的核心思想可以总结为从对比中学习。我们对不同条件下的响应生成进行对比,以阐明LLM应该保持的适当行为以及需要进行调整的具体内容。基于这些见解,对适当内容使用MLE训练,对不适当内容使用不可能性训练(UT)。

5.1将判断纳入对齐:

将指令-响应对称为“对齐”,如果响应忠实地遵循指令并满足人类期望 x −→ y。否则,判断描述了响应中存在的错误或缺陷。假设任务是生成一个有意满足判断的响应,可以推断出响应始终与组合输入 [x, j] −→ y 对齐。

Align-P:LLM对原始指令x生成满意的响应y。因此,授予积极的判断j以承认LLM的出色表现。很明显,响应y与指令x以及组合输入[x, j]都对齐。

Align-N:LLM在生成过程中出现了一些错误,导致响应y不满意。因此,负面判断j详细说明了相应的批评意见。对于Align-N,y在原始指令x方面不对齐。然而,考虑x和j作为整体,y确实与组合输入[x, j]对齐。

Misalign:在Align-N中的真实负面判断被替换为虚假的积极判断j。在这种情况下,响应y既不与原始指令x对齐,也不与组合指令和判断[x, j]对齐。

5.2 从对比中学习:

Align-N vs. Misalign:尽管Align-N和Misalign在x −→ y方面不对齐,但它们在任务[x, j] −→ y方面显示出相反的极性。由于LLMs具有强大的上下文学习能力,从Align-N到Misalign的对齐转换通常伴随着响应的生成概率下降,特别是对于与真实负面判断强相关的标记。

将Align-N和Misalign示例分别输入LLM以获取token生成概率pθ(yt|y<t, x, j −)和pθ(yt|y<t, x, j +)。将在条件为j −的情况下生成概率显著增加的与j +相比的token视为不适当的token(例如,图2中的“a”)。具体而言,采用以下标准:

其中λ≥1是一个超参数,用于权衡检测不适当token的精度和召回率。对识别的不适当token应用UT目标,以推动LLM探索替代生成。对于其他token,使用标准的MLE损失:

Align-P vs. Align-N:尽管Align-P和Align-N在[x, j] −→ y方面都对齐,但只有Align-P在仅考虑指令(x −→ y)时对齐。基本上,它表明LLM应根据是否引入负面判断来输出不同的响应。

具体而言,使用以下MLE目标训练这个比较:

其中1(x −→ y)是一个指示函数,如果x和y对齐,则返回1,否则返回0。

最后,CUT的总体损失将这两个对比的损失函数结合在一起:LCUT​=L1​+L2​。


6、实验:

在两种对齐设置中对CUT进行实验:(1)离线对齐,其中使用现成的与模型无关的指令-响应-判断三元组。 (2)在线对齐,其中判断是基于当前目标模型生成的响应进行的。这个在线设置可以进行迭代实现,允许持续的细化和适应。

使用LoRA进行模型训练,超参数λ的权衡选择自{1.1, 1.2, 1.5},不可能性权重α选择自{0.25, 0.5, 0.75, 1}。

6.1离线对齐:

6.2在线对齐:

在线对齐过程可以迭代进行,类似于人类通过不断来自同行的反馈不断完善他们的行为。具体来说,我们重复应用以下三个步骤:

  • 步骤1:收集指令x,并从目标模型获取响应y。
  • 步骤2:为响应标注判断j。
  • 步骤3:应用CUT通过{x, y, j}对目标模型进行微调。

6.3判断vs奖励:

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

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

相关文章

Java运算符简单介绍

文章目录 1. 算术运算符2. 赋值运算符3. 比较&#xff08;关系&#xff09;运算符4. 逻辑运算符5. 位运算符6. 条件运算符&#xff08;三元运算符&#xff09;7. 运算符优先级 1. 算术运算符 &#xff1a;加法 int a 5; int b 3; int sum a b; // 结果为8-&#xff1a;减…

Docker安装WebRTC下TURN服务

详细实现方式以及代码下载请前往 https://www.passerma.com/article/90 实现效果 一、手动构建镜像 1.新建Dockerfile文件 文件用于编译镜像 以alpine为基础镜像 添加coturn需要的依赖库 获取coturn并进行编译 通过start.sh启动turnserver服务 Dockerfile FROM alpineRUN ap…

安卓Android Studioy读写NXP ICODE2 15693标签源码

本示例使用的发卡器&#xff1a;https://item.taobao.com/item.htm?spma1z10.5-c-s.w4002-21818769070.11.4391789eCLwm3t&id615391857885 <?xml version"1.0" encoding"utf-8"?> <androidx.constraintlayout.widget.ConstraintLayout xm…

零售EDI:Metro EDI项目案例

麦德龙Metro 总部位于杜塞尔多夫&#xff0c;在全球范围内经营批发和零售业务。在2018/2019 财年&#xff0c;麦德龙Metro 的全球销售额约为 270 亿欧元。从2016年开始&#xff0c;麦德龙Metro就开始对其当时约230家门店和20,000多家分销合作伙伴进行数字化整合&#xff0c;借助…

针对人工智能的攻击并发布策略和建议

人工智能系统已经渗透到现代社会的各个领域。从自动驾驶到疾病诊断以及作为在线聊天机器人与客户互动。 为了学习如何执行这些任务&#xff0c;聊天机器人需要接受大量数据的训练。然而&#xff0c;主要问题之一是这些数据可能不可靠。攻击者有很多机会破坏它们。这都是在AI系…

第121场双周赛题解:揭秘算法竞赛中的数位挑战与解题策略

需要多掌握解题套路 比赛地址 100157. 大于等于顺序前缀和的最小缺失整数 class Solution:def missingInteger(self, nums: List[int]) -> int:# Step 1: Find the longest consecutive prefixi 0 for i in range(1, len(nums)):if nums[i] ! nums[i - 1] 1:breakelse:…

while猜数字实例——C++版

案例描述&#xff1a;系统随机生成一个1到100之间的数字&#xff0c;玩家进行猜测&#xff0c;如果猜错&#xff0c;提示玩家数字过大或过小&#xff0c;如果猜对恭喜玩家胜利并退出游戏。 逻辑框图&#xff1a; #include<bits/stdc.h> using namespace std; int main()…

Redis 持久化——AOF

文章目录 为什么需要AOF?概念持久化查询和设置1. 查询AOF启动状态2. 开启AOF持久化2.1 命令行启动AOF2.2 配置文件启动 AOF 3. 触发持久化3.1 自动触发3.3 手动触发 4. AOF 文件重写4.1 什么是AOF重写&#xff1f;4.2 AOF 重写实现4.3 AOF 重写流程 5. 配置说明6. 数据恢复6.1…

数据结构和算法-交换排序中的快速排序(演示过程 算法实现 算法效率 稳定性)

文章目录 总览快速排序&#xff08;超级重要&#xff09;啥是快速排序演示过程算法实现第一次quicksort函数第一次partion函数到第一次quicksort的第一个quicksort到第二次quicksort的第一个quicksort到第二次quicksort的第二个quicksort到第一次quicksort的第二个quicksort到第…

UnityVR入门之六 如何让3DUI层级在场景模型之上

一、问题来源 根据 UnityVR入门之五 射线检测交互-CSDN博客 这一章节我们了解到VR要与UI交互需要将Canvas设置为World Space属性&#xff0c;然后使用碰撞盒的方式进行射线交互。 正常我们ui是始终叠加在3d场景之上的&#xff0c;如此设置当ui与场景模型相交就会遮挡穿模 二、解…

【Java集合篇】负载因子和容量的关系

负载因子和容量有什么关系 ✔️典型解析✔️loadfactor为啥默认是0.75F&#xff0c;不是1呢?✔️为什么HashMap的默认负载因子设置成0.75✔️0.75的数学依据是什么✔️0.75的必然因素 ✔️HashMap的初始值设为多少合适? ✔️典型解析 HashMap 中有几个属性&#xff0c;如 cap…

使用qtquick调用python程序,pytorch

一. 内容简介 使用qtquick调用python程序 二. 软件环境 2.1vsCode 2.2Anaconda version: conda 22.9.0 2.3pytorch 安装pytorch(http://t.csdnimg.cn/GVP23) 2.4QT 5.14.1 新版QT6.4,&#xff0c;6.5在线安装经常失败&#xff0c;而5.9版本又无法编译64位程序&#xf…

云尚办公项目学习

完整的笔记可以参考这个专栏&#xff0c;写的挺详细的&#xff1a;云尚办公课件笔记&#xff0c;come on boy 文章目录 form-create表设计步骤1&#xff0c;创建审批类型2&#xff0c;创建审批类型下的审批模板3&#xff0c;为指定的审批模板设置模板名称&#xff0c;表单项&am…

Python笔记01-你好Python

文章目录 Python简介环境安装Hello world开发工具 Python简介 python的诞生 1989年&#xff0c;为了打发圣诞节假期&#xff0c;Gudio van Rossum吉多 范罗苏姆&#xff08;龟叔&#xff09;决心开发一个新的解释程序&#xff08;Python雏形&#xff09; 1991年&#xff0c;第…

CSS 压重按钮 效果

<template><view class="cont"><div class="container"><div class="pane"><!-- 选项1 --><label class="label" @click="handleOptionClick(0)":style="{ color: selectedOption ==…

【机器学习】循环神经网络(二)-LSTM示例(keras)国际航空乘客问题的回归问题...

使用 Keras 在 Python 中使用 LSTM 循环神经网络进行时间序列预测 国际航空乘客问题的回归问题 这个文件是一个CSV格式的数据集&#xff0c;它包含了从1949年1月到1960年12月的每个月的国际航空乘客的总数&#xff08;以千为单位&#xff09;。第一行是列名&#xff0c;分别是&…

Open CASCADE学习|入门Hello world

目录 1、新建项目 2、写代码 3、配置 3.1配置头文件 3.2配置静态库文件 3.3配置动态库文件 4、编译运行 1、新建项目 新建一个Win32控制台应用程序&#xff0c;取名为HelloWorld&#xff0c;如下图所示&#xff1a; 2、写代码 测试所用的代码如下&#xff1a; // Use T…

数据分析基础之《numpy(6)—IO操作与数据处理》

了解即可&#xff0c;用panads 一、numpy读取 1、问题 大多数数据并不是我们自己构造的&#xff0c;而是存在文件当中&#xff0c;需要我们用工具获取 但是numpy其实并不适合用来读取和处理数据&#xff0c;因此我们这里了解相关API&#xff0c;以及numpy不方便的地方即可 2…

Rockchip平台双屏异显功能实现(基于Android13)

Rockchip平台双屏异显功能实现(基于Android13) 1. 异显实现方案 Rockchip SDK平台支持两种不同的异显方案&#xff1a;Android Presentation和Android Activity指定屏幕启动。 使用Android Presentation方案&#xff0c;需要在APP开发中调用相应接口以使指定视图&#xff08…

ATTCK视角下的信息收集:主机发现

目录 1、利用协议主动探测主机存活 利用ICMP发现主机 利用ARP发现主机 利用NetBIOS协议发现主机 利用TCP/UDP发现主机 利用DNS协议发现主机 利用PRC协议发现主机程序 2、被动主机存活检测 利用Browser主机探测存活主机 利用ip段探测主机存活 利用net命令探测主机存活…