RLVF:避免过度泛化地从口头反馈中学习

news2024/11/15 15:35:18

人工智能咨询培训老师叶梓 转载标明出处

大模型在不同行业和个人中的广泛应用要求模型能够根据具体的用户反馈进行调整或定制,以满足细微的要求和偏好。虽然通过高层次的口头反馈来指定模型调整非常方便,例如“在给老板起草电子邮件时不要使用表情符号”,但研究发现,直接使用这类反馈来提示模型会导致在不相关的上下文中过度泛化。斯坦福大学计算机科学系的研究团队提出了一种新的方法——上下文化批评与受限偏好优化(C3PO),旨在解决利用口头反馈调整模型时出现的过度泛化问题。

使用高层次口头反馈来改进模型行为的问题

论文介绍了两种主要的方法来更新大型语言模型(LLMs),以适应高层次的口头反馈:

监督上下文蒸馏(Supervised Context Distillation, SCD),这是一种将文本上下文整合到模型行为中的有效方法。上下文可以是一个普遍原则或特定信息,例如“始终保持友好”或“假设美国总统是乔·拜登”。SCD的目标是将人类或基础语言模型在给定用户查询和上下文条件下产生的行为“蒸馏”到没有上下文的模型中。这一过程涉及到使用合成的监督目标进行监督微调,以最小化负对数似然损失。

基于偏好的强化学习(Preference-based Reinforcement Learning, PbRL),这是一种通过利用对LLM生成响应的偏好来更新语言模型的常用方法。这涉及到对成对的模型响应进行比较,通常由人类标注者或模型本身决定哪个响应更优。然后,使用这些偏好来训练一个参数化的奖励模型,该模型为输入-响应对分配评分。PbRL的一个关键目标是最大似然估计在Bradley-Terry选择模型下的奖励模型。

这两种方法为后续提出的C3PO算法提供了理论基础,C3PO算法旨在解决在应用口头反馈时出现的过度泛化问题,同时保持模型在不相关上下文中的行为不变。通过这些预备知识,论文为读者提供了理解和评估C3PO方法的背景。

方法

C3PO方法的核心是利用一个强大的通用模型,如GPT-4,将用户的口头反馈转化为微调数据集。该数据集由三个关键部分组成:Din-scope部分展示期望的行为变化;Dout-of-scope部分保持反馈范围之外的行为;Dnear-scope部分细化模型对何时何地应用反馈的理解。

图3所展示的C3PO数据生成方案,是研究者为解决口头反馈导致的过度泛化问题而设计的一套详细流程。这一流程的起点是利用GPT-4这样的先进语言模型,根据给定的口头反馈生成一系列可能相关的提示类别。这些类别将指导后续的提示生成,确保生成的提示既能够覆盖反馈适用的情景(in-scope),也能够覆盖表面相关但实际不适用的情景(near-scope),以及完全无关的情景(out-of-scope)。

接下来,研究者利用当前的语言模型π0为这些提示生成基线响应。这些响应代表了模型在未接受特定反馈时的默认行为。然后,针对in-scope提示,模型被进一步提示,要求其根据反馈修订响应,生成新的修订后响应y+i。这一修订过程是C3PO方法的关键,因为它直接体现了反馈对模型行为的具体影响。

通过这一过程,研究者能够自动创建三个关键的数据集:Din-scope、Dnear-scope和Dout-of-scope。这些数据集共同构成了微调模型的基础,它们不仅反映了期望的行为变化,还编码了在不相关提示上应保持的原有行为。

C3PO 微调目标
图示说明了 C3PO 如何通过在相关数据上使用直接偏好优化 (DPO) 来促进反馈的遵循,同时通过在不相关数据上使用简单 SFT 损失来最小化过度泛化

随后研究者采用一个精心设计的组合损失函数LC3PO对模型π0进行微调。这个损失函数包括三部分:针对in-scope数据的直接偏好优化(DPO)损失,以及针对out-of-scope和near-scope数据的标准软性损失(SFT)。这种设计使得模型在微调过程中能够在保持原有行为的同时,对in-scope提示进行适应性调整。

损失函数的具体形式如下:

这里,λ1和λ2是用于平衡不同部分影响的权重参数。通过这种方式,C3PO方法旨在优化模型,使其在接收到口头反馈时,能够更加精准地在适当的情况下应用反馈,避免在不适当的情况下过度泛化。

在解释C3PO损失时,研究者指出,C3PO生成的合成双策略偏好数据遵循Bradley-Terry偏好模型。这意味着,通过比较基线模型π0生成的响应y−和根据反馈修订后的响应y+,可以构建出一个评分函数,该函数能够量化响应之间的偏好关系。这种量化方法为研究者提供了一种强有力的工具,用以评估和优化模型的行为,确保其在遵循口头反馈时既精准又适度。

通过C3PO方法,研究者能够更精确地控制模型如何根据反馈进行调整,确保模型在接收到口头反馈时,只在适当的情境中做出改变,从而提高模型的灵活性和适用性。这对于LLMs的进一步发展和应用具有重要意义。

实验

实验旨在解答几个关键的研究问题:
1. 现有方法在学习口头反馈时,过度泛化问题有多严重?
2. C3PO是否能够减轻这种过度泛化效应?
3. 对标准方法进行简单修改,比如通过提示或监督上下文蒸馏来整合反馈,是否能有效减轻过度泛化?
4. C3PO是否能够学习多条反馈?
5. 在C3PO中,选择不同形式的约束损失对性能有何影响?

研究者构建了一个包含100条反馈的数据集,其中一半由研究者撰写,另一半由GPT-4生成。所有反馈都设计为仅在特定上下文中适用。为了C3PO和SCD + Negatives基线,他们根据C3PO程序采样了Dnear-scope和Dout-of-scope数据集,每个数据集包含960条out-of-scope提示及其对应的基线模型完成情况,用于正则化。他们从Open Instruction Generalist (OIG) 数据集中随机抽取提示,该数据集包含多样化的提示类型。

评估指标用于比较基线模型与学习反馈后的模型在反馈依从性方面的差异。研究者使用启发式规则和GPT-4两种方式来衡量反馈依从性。对于某些反馈,如修改响应长度或包含特定词汇,使用启发式规则;而对于需要定性评估的反馈,如使用更多隐喻或减少激进的语言,则使用GPT-4来衡量。 

研究者将C3PO与以下方法进行了比较:

  • In-Context学习:提供用户查询、反馈,并提示模型在适用时选择性地应用反馈。
  • In-Context + CoT:使用思维链提示,让模型在回答前先推理反馈的适用性。
  • SCD:在in-scope提示上执行监督上下文蒸馏。
  • SCD + Negatives:在SCD的基础上,为out-of-scope提示添加加权约束。
  • DPO:在Din-scope偏好数据集上执行直接偏好优化,没有额外的正则化。

研究者使用图2展示现有方法的局限性:成功地将反馈整合到模型中(X轴的高值)往往会导致在不适用的提示(out-of-scope prompts)上也应用这些反馈(Y轴的高值)。这表明,当模型在in-scope提示上成功遵循反馈时,也会在不相关的上下文中错误地应用这些反馈,这通过最佳拟合线的大斜率来体现。

为了解决这个问题,C3PO采用了一种更有效的折中方案,如图2中C3PO的最佳拟合线斜率明显更小,这表明C3PO能够在保持in-scope提示的反馈依从性的同时,更好地保留out-of-scope提示上的行为。

接着研究者使用图6展示了C3PO如何显著减少对于一般out-of-scope提示和更困难的near-scope提示的行为变化,同时仅轻微降低in-scope提示的反馈依从性。这种改进是通过C3PO的评估指标Sin和Sout来衡量的,其中Sin衡量in-scope提示的反馈依从性,而Sout衡量out-of-scope提示的行为变化。

研究者还探讨了C3PO学习多条反馈的能力。他们通过分别对两个不同的反馈z1和z2应用C3PO,生成了两组LoRA参数ϕ1和ϕ2。然后,他们提出了一种假设,即通过简单地将两组参数相加(ϕ′ = ϕ1 + ϕ2)来获得一个同时适应z1和z2的模型,而不是重新训练。图7比较了这种方法与分别应用和评估每条反馈的性能。结果显示,在in-scope反馈依从性和out-of-scope行为变化方面几乎没有退化,这为在不重新训练的情况下实现大型语言模型的快速个性化和定制提供了希望。

研究者最后讨论了C3PO中约束公式的选择。C3PO通过在微调过程中最大化基线模型在out-of-scope提示上响应的可能性来约束反馈调整的模型。研究者提出了一个假设,即在每个时间步对适应模型和基线模型的条件分布进行全知识蒸馏(full knowledge distillation)。这涉及到在out-of-scope提示上执行知识蒸馏,其中基线模型作为教师,适应模型作为学生。这种约束不仅仅最大化基线模型样本的可能性,而是最小化基线模型的条件分布与适应模型的条件分布之间的KL散度。尽管这种约束形式在持续学习的背景下成功利用了模型输出中低概率logits表示的“暗知识”,但研究者发现,这种更强的约束与最大似然约束相比,会显著损害in-scope提示的反馈依从性。因此,寻找合适的方法来约束out-of-scope模型行为是未来工作的一个重要课题。

通过这些实验,研究者证明了C3PO在减少过度泛化的同时,能够保持对in-scope提示的反馈依从性,这对于大型语言模型的定制和个性化具有重要意义。

论文链接:https://arxiv.org/abs/2402.10893

项目链接:RLVF: Learning from Verbal Feedback without Overgeneralization


 

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

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

相关文章

Ubuntu 20.04 几种微信安装错误汇总,最后成功

1. wine 安装 参考 Ubuntu 20.04.2 LTS安装 最新版 微信(wine) 1.1 连网下载文件 在终端执行 winetricks riched20下载不了 W2KSP4_EN.EXE 和 InstMsiW.exe 两个文件 可以网页端下载,或者 wget https://web.archive.org/web/2000/https:…

MySQL——数据库的设计、事务、视图

文章目录 数据库的设计1.多表之间的关系2.实现关系3.数据库设计的范式 事务1.事务的基本介绍2.事务的四大特征ACID3.事务的隔离级别(了解即可) 视图1.什么是视图?2.视图创建及使用方法3.注意事项4.为什么使用视图 数据库的设计 1.多表之间的…

GIS,矢量瓦片加载速度优化

文章目录 一、前言二、矢量瓦片的基础知识三、矢量切片加载速度优化3.1 地图缩编3.2 矢量瓦片中的图层根据显示层级定制3.3 矢量瓦片中的图层字段要按需定制3.4 多个图层合并为矢量切片图层组发布 四、总结 一、前言 单个矢量瓦片的大小并没有固定的上限,这意味着在…

一款功能强大且完全免费的在线AI抠图工具,还可以制作证件照

适用于人像、宠物、汽车等物品的智能抠图。它利用先进的算法和发丝级AI技术,能够快速精准地完成图片背景移除,并提供透明背景、场景切换和证件照制作等多种增值服务。此外,还支持批量处理和多种图片格式,适合不同用户的需求。无论…

【xilinx】如何从 Vivado GUI 启用/禁用 IP Core container

问题描述 如何从 Vivado GUI 启用/禁用 IP 核容器? 解决方案 要通过 GUI 启用/禁用 2023.1 之前的 Vivado 版本中的 IP 核容器,请按照以下步骤操作: 选择设置 -> IP -> 使用核心容器 在 Vivado 2023.1 及更高版本中,请按照…

中国自动驾驶出租车冲击网约车市场

近年来,中国的自动驾驶技术迅速发展,对传统网约车市场构成了越来越大的冲击。随着科技巨头百度旗下的萝卜快跑等公司加速推广无人驾驶出租车,这一趋势引发了广泛的讨论和担忧。 自动驾驶技术的迅猛发展 中国自动驾驶行业正处于快速发展阶段&…

ComfyUI系列——新手安装ComfyUI,就是这么简单!

前言 比较Midjoury、WebUI和ComfyUI 在了解ComfyUI的时候,还有其它两款类似的产品,于是就搜集了一下资料,以下是Midjoury、WebUI(通常指的是Stable Diffusion Web UI)和ComfyUI三者之间的异同点对比表。 特性Midjou…

Linux系统通过安装docker容器部署mysql服务

一、查看主机内核版本,关闭防火墙相关信息 二、直接yum安装docker 安装的18.09版本,也可以rpm安装最新版 yum install docker # docker --version Docker version 18.09.0, build a8959d5三、安装完成直接启动并查看状态 systemctl start docker syst…

Linux内核编程(十二)热插拔

本文目录 一、知识点1. 热插拔概念2. 热插拔机制3. Netlink机制 二、内核发送uevent事件到用户空间1. kobject发送uevent事件2. udevadm命令查看★示例代码:★优化:完善kset_uevent_ops(热插拔事件结构体) 三、用户空间使用Netlin…

MySQL数据分析进阶(十二)设计数据库——PART2

※食用指南:文章内容为‘CodeWithMosh’SQL进阶教程系列学习笔记,笔记整理比较粗糙,主要目的自存为主,记录完整的学习过程。(图片超级多,慎看!) 【中字】SQL进阶教程 | 史上最易懂S…

大模型(LLMs)LLM生成SFT数据方法面

一、SFT数据集如何生成? SFT数据集构建通常有两种方法:人工标注和使用LLM(比如GPT-4)来生成的,人工标注对于构 建垂直领域比较合适,可以减少有偏数据,但是成本略高;使用LLM生成&…

【算法设计题】计算有向图G中每个结点的入度和出度,第4题(C/C++)

目录 第4题 计算有向图G中每个结点的入度和出度 得分点(必背) 题解:计算有向图G中每个结点的入度和出度 数据结构定义 边表结点 顶点表结点 图的邻接表存储表示 计算图G中每个结点的入度和出度 详细解释 1. 初始化入度和出度数组 2…

容器适配器的介绍和模拟实现

💗 💗 博客:小怡同学 💗 💗 个人简介:编程小萌新 💗 💗 如果博客对大家有用的话,请点赞关注再收藏 🌞 Stack的介绍 stack是一种容器适配器,专门用在具有后进先出操作的上…

如何看到公司所有员工的收发件,并以员工名义一键发信

对于企业管理层来说, 了解并监控员工的企业邮箱成为了日常工作中的一部分。这不仅可以帮助企业更好地掌握业务进展, 还能够提高工作效率。本文将详细介绍如何通过Zoho邮箱实现这一目标, 包括相关的技术原理、实现的好处以及具体的实施步骤。 一、实现的技术: POP3 和 IMAP 要…

C++类和对象(2)——构造函数和析构函数

###前言:此文主要介绍C中的六种默认成员函数;默认的意思就是我们不写编译器会自动生成;这些函数在类里面自动生成;但是我们也可以自己写;学习这几种默认成员函数从两个方面入手: (1&#xff09…

“AI大语言模型+”助力大气科学相关交叉领域实践技术应用

查看原文>>>“AI大语言模型”助力大气科学相关交叉领域实践技术应用 目录 专题一、预备知识 专题二、科研辅助专题 专题三、可视化专题——基于GPT实现 专题四、站点数据处理 专题五、WRF专题——基于GPT和Python实现 专题六、遥感降水专题——基于GPT和Python…

#java学习笔记(面向对象)----(未完结)

一基础相关知识点: 1. 一个对象的调用 首先我们创建一个Phone类 public class Phone {//成员变量String name;int age;String favourite;//成员方法public void myName(){System.out.println(name);}public void myAge(){System.out.println(age);}public void m…

免费写作神器,自动生成高质量文章

在当今数字化的时代,信息的传播和创作变得前所未有的重要。无论是企业的营销推广、个人的博客写作,还是学术研究报告,优质的文章都能发挥巨大的作用。而随着人工智能技术的飞速发展,免费的ai写作工具应运而生,为我们带…

虚拟内存惹

二、理解 虚拟内存 虚拟内存存在的原因物理地址和虚拟地址虚拟内存的其他介绍 虚拟内存存在的原因 计算机系统有两种地址:1、物理地址 2、虚拟地址 物理地址:是指真实的地址,是物理存在的,比如RAM、flash等 虚拟地址:…

使用相同模型相同数据集,为什么每次运行得到的损失值都不一样?

今天小编在学习 PyTorch 时,突然发现咋每次运行所得损失绘制的曲线都不一样呢?即使小编使用torch.manual_seed()函数固定 torch 的随机数种子每次运行的结果还是不一样,因此小编就写一篇文章记录一下。 数据集 本次使用的数据集是小编自定义的小型数据…