【论文通读】RuleR: Improving LLM Controllability by Rule-based Data Recycling

news2024/9/20 16:43:03

RuleR: Improving LLM Controllability by Rule-based Data Recycling

  • 前言
  • Abstract
  • Motivation
  • Solution
  • Method
  • Experiments
  • Conclusion

前言

一篇关于提升LLMs输出可控性的短文,对SFT数据以规则的方式进行增强,从而提升SFT数据的质量,进而间接帮助提升LLM的可控性。这种基于规则的方式确实可以去除人力和额外的LLM资源的开销,但是在某种程度上可能不能真正泛化到具体的数据上。
Paperhttps://arxiv.org/abs/2406.15938
Codehttps://github.com/MingLiiii/RuleR

Abstract

LLMs缺乏稳定可控的输出,这对产品表现和用户体验不利。然而现有的用于提升LLMs可控性的SFT数据集经常依赖人类经验或者大模型,需要付出额外的成本。相比于从头构建新数据集,RuleR对现有的数据集进行重新利用,对其输出注入基于规则的编辑,并将基于规则的指令append到原始的指令中。实验表明RuleR可以高效提升LLM的可控性,同时不降低模型通用性能。

Motivation

当前如何最大化利用LLMs的能力是一个重要问题,其关键在于让LLMs的输出遵循用户的要求。但是如果对输出没有约束,生成的结果很难有实际效用。
image.png
然而现有的方法通过构建SFT数据集,但是这种方法只能关注到通用的指令,忽略了用户特定的约束。一个可行的解决方法是通过模型或者人类改写指令,但成本高。
能不能通过重新利用现有SFT数据集,在不采用人力和模型的情况下,为其赋予不同类型的约束,从而进行可控微调?

Solution

本文提出Rule-based Data Recycling (RuleR),可以自动化编辑现有的SFT数据,用于提升LLM的可控性。其核心是利用各种预定义的约束规则来代替人力和模型。预定义的规则cover广泛的约束,从high-level到lower-level。对于每个规则,包括:

  1. 一组约束模板。
  2. 交替编辑指令和Response以以使他们align。

上图的下面部分是一个例子。

Method

在没有人类或者LLM引导的情况下,直接添加任意约束到原始的指令中是不合适的。为此,本文提出只添加和原始数据吻合的约束。具体来说,作者提出基于规则的RuleR方法来增强LLM的可控性,其中用于重新制定的规则和约束由原始数据来确定,确保指令和响应之间的一致性。下表是完整的规则列表:
image.png
在方法实施时,作者将每个预定义的规则实例化为一个元组:
( S k , f k , g k ) (\mathbf{S} _k,f_k,g_k) (Sk,fk,gk)
其中 S k \mathbf{S} _k Sk表示第k条规则对应的指令模板集, f k f _k fk g k g_k gk分别表示重构指令的函数和可选修改response的函数。对于样本 ( x i , y i ) (x_i,y_i) (xi,yi),增强指令会由如下公式获取:
x i , a u g = f k ( x i , y i , S k ) x_{i, a u g}=f_{k}\left(x_{i}, y_{i}, \mathbf{S}_{k}\right) xi,aug=fk(xi,yi,Sk)
具体来说,随机抽取一个规则指令模板,并填充相应的特征,作为对原始指令的附加约束。然后,规则指令与原始指令连接成为增强指令。对于标签y,也可以类似的选择性修改:
y i , a u g = g k ( x i , y i , S k ) y_{i, a u g}=g_{k}\left(x_{i}, y_{i}, \mathbf{S}_{k}\right) yi,aug=gk(xi,yi,Sk)
对于某些规则,无需对response进行修改。

Experiments

作者在一系列开源模型和开源SFT数据集上进行实验,实验结果如下:
image.png
结果显著,一些数据集上提点能够达到10%。
下表是消融实验结果。Single Temp意味一个规则使用一个模板,Diverse Temp意味一个规则对应多个模板,Max Rule 表示每个原始数据样本上最多可以采样和利用x个不同规则的设置。结果显示在一个样本中使用太多的规则可能会损害模型的性能。Aug Rate指的是将增强应用于每个样本的概率,可以看到,随着Aug Rate的增加,LLM可控性越好,但是对一般指令的跟踪能力有所下降。IF Eval的变化大,说明方法主要还是和可控性有关。
image.png

Conclusion

本文提出一个新颖的方法,即基于规则的数据回收方法RuleR,它利用从现有数据派生的约束来增强数据集,并将这些约束纳入训练过程,从而提高LLM的多约束可控性。这种方法为开发 SFT 增强方法以提高 LLM 的可控性提供了一个有前途的方向,为 LLM 更有效的进步铺平了道路。
这篇工作简单易懂,且效果显著,但是我也有一些额外的想法:

  1. 方法中提到“we propose to only incorporate constraints that are compatible with the original data sample.”但是注入规则时却是随机抽取一个规则指令模板,我很难将随机采样和“compatible with the original data sample”理解到一起。
  2. 基于规则的增强过程在文章中的描述过于泛泛,具体来说, f k f _k fk g k g_k gk这两个函数具体是怎么执行的没有详细说明,导致不是很好理解,也许对于这两个函数举出特定的一两个例子会更好。
  3. 基于规则的方法真的可以泛化到每一个特定的样本上吗,我不是很能确定。
  4. 图一中作者方法部分列举的例子让我感到困惑,Response和New Response内容一样,虽然文中提到remains unchanged,但是这个例子显然不能说明Modification的作用。

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

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

相关文章

关于模拟数字模块认知

工业上常见信号分类 PLC控制系统主要是电信号 电信号分为数字信号和模拟信号 PLC系统中有数字量模块DO/DI,模拟量AO/AI。(O为输出,I为输入) 在模块应用中,注意前连接器要和冷压端子相匹配。前连接器可理解为接插件&am…

Go:hello world

开启转职->Go开发工程师 下面是我的第一个go的程序 在上面的程序介绍: 1、package main 第一行代码package main定义了包名。必须在源文件中非注释的第一行指明这个文件属于哪个包,如:package main。package main表示一个可独立执行的程…

用HttpURLConnection复现http响应码405

目录 使用GET方法,访问GET接口,服务端返回405使用GET方法,访问POST接口,服务端返回405使用POST方法,访问GET接口,服务端返回405 使用GET方法,访问GET接口,服务端返回405 发生场景&a…

Polkadot(DOT)即将爆雷?治理无能还歧视亚洲!资金将在两年内耗尽!是下一个FTX吗?

近期,关于Polkadot(DOT)生态圈的一系列负面消息引发了业界和投资者的广泛关注。从高昂的营销开支、缺乏实际业务亮点,再到治理问题和种族歧视指控,Polkadot似乎正面临着严峻的危机。业内人士警告,Polkadot的财政状况堪忧&#xff…

【机器学习】机器学习与时间序列分析的融合应用与性能优化新探索

文章目录 引言第一章:机器学习在时间序列分析中的应用1.1 数据预处理1.1.1 数据清洗1.1.2 数据归一化1.1.3 数据增强 1.2 模型选择1.2.1 自回归模型1.2.2 移动平均模型1.2.3 长短期记忆网络1.2.4 卷积神经网络 1.3 模型训练1.3.1 梯度下降1.3.2 随机梯度下降1.3.3 A…

简介空间复杂度

我们承接上一篇博客。我们写了时间复杂度之后,我们就要来介绍一下另一个相关复杂度了。空间复杂度。我觉得大家应该对空间复杂度认识可能比较少一些。我就是这样,我很少看见题目中有明确要求过空间复杂度的。但确实有这个是我们不可忽视的,所…

el-date-picker 设置默认值为当前日期

this.listQuery.Date new Date().toISOString().substr(0, 10); <el-date-picker v-model"listQuery.Date" format"yyyy-MM-dd" value-format"yyyy-MM-dd" type"date" placeholder"选择日期" change"getList()&qu…

电源纹波相关

什么是纹波&#xff1f;什么是噪声&#xff1f; 这种叠加在直流稳定量上的交流分量就称为纹波。 纹波的危害 电源纹波能影响设备性能和稳定性 纹波会导致电器上产生谐波&#xff0c;降低电源的使用效率&#xff1b; 高频电源纹波可能会产生浪涌电压或电流&#xff0c;影响设…

【解决方案】笔记本电脑屏幕亮度调节失效(Dell G15 5510 使用Fn调节)

目前解决方案&#xff1a;使用驱动总裁&#xff08;其他的驱动安装软件应该也可以&#xff0c;个人觉得这个好用&#xff09;&#xff0c;更新显卡驱动即可。如图所示本人更新了Intel UHD Graphics核显驱动&#xff0c;功能回复正常。 使用Fn快捷键调节亮度如图所示&#xff0…

Zabbix 的部署和自定义监控内容

前言 一个完整的项目的业务架构包括 客户端 -> 防火墙 -> 负载均衡层&#xff08;四层、七层 LVS/HAProxy/nginx&#xff09; -> Web缓存/应用层&#xff08;nginx、tomcat&#xff09; -> 业务逻辑层(php/java动态应用服务) -> 数据缓存/持久层&#xff08;r…

使用AOP思想实现开闭原则下的流水日志输出

主要实现思想&#xff1a; 通过实现Convert接口来抽取公共组件&#xff0c;获取想要的标准模型。 现在有两个订单场景&#xff0c;一个保存订单&#xff0c;一个为更新订单。构造如下的服务类&#xff1a; import org.springframework.stereotype.Service;Service public clas…

VSCode神仙插件——CodeSnap (好看的代码截图)

1 安装 2 使用 选中要截图的代码,右键 此时右侧会出现代码截图的预览图 如果要将截图保存到本地,则点击上图红色框中的图标 也可以点击下面截的图,CtrlC复制,然后就可以CtrlV粘贴到其他应用程序里了

Pycharm python解释器 unsupported python 3.1 解决

Pycharm 环境 unsupported python 3.1解决 1. 问题重现2. 原因分析3. 解决方法 1. 问题重现 之前使用Pycharm 2024.1.1的时候&#xff0c;环境配置的Python 3.11.9&#xff0c;现在改成使用Pycharm 2020.2.2&#xff0c;结果Python解释器显示“unsupported python 3.1”&#…

GIT 使用相关技巧记录

目录 1、commit 用户信息变更 全局用户信息&#xff08;没有特殊配置的情况下默认直接用全局信息&#xff09; 特定仓库用户信息&#xff08;只针对于当前项目&#xff09; 方法一&#xff1a;修改config文件 方法二&#xff1a;命令方式 2、idea同一代码推向多个远端仓库…

如何在Ubuntu环境下使用加速器配置Docker环境

一、安装并打开加速器 这个要根据每个加速器的情况来安装并打开&#xff0c;一般是会开放一个代理端口&#xff0c;比如1087 二、安装Docker https://docs.docker.com/engine/install/debian/#install-using-the-convenience-script 三、配置Docker使用加速器 3.1 修改配置…

搜索广告召回技术在美团的实践

内容整理自美团技术沙龙第81期《美团在广告算法领域的探索及实践》&#xff08;B站视频&#xff09;。本文首先介绍了美团搜索广告的三个阶段&#xff1a;多策略关键词挖掘、分层召回体系、生成式召回&#xff1b;然后重点介绍了生成式关键词召回、多模态生成式向量召回、生成式…

MyBatis中二级缓存的配置与实现原理

大家好&#xff0c;我是王有志&#xff0c;一个分享硬核 Java 技术的金融摸鱼侠&#xff0c;欢迎大家加入 Java 人自己的交流群“共同富裕的 Java 人”。 上一篇文章《MyBatis中一级缓存的配置与实现原理》中&#xff0c;我们已经掌握了 MyBatis 一级缓存的配置&#xff08;虽然…

14-40 剑和诗人14 - 为什么机器学习需要合成数据

​​​​​​ 数据是人工智能的命脉。如果没有高质量、有代表性的训练数据&#xff0c;我们的机器学习模型将毫无用处。但随着神经网络规模越来越大、人工智能项目越来越雄心勃勃&#xff0c;人们对数据的需求也越来越大&#xff0c;我们面临着一场危机——现实世界的数据收集和…

STM32-ADC+DMA

本内容基于江协科技STM32视频学习之后整理而得。 文章目录 1. ADC模拟-数字转换器1.1 ADC模拟-数字转换器1.2 逐次逼近型ADC1.3 ADC框图1.4 ADC基本结构1.5 输入通道1.6 规则组的转换模式1.6.1 单次转换&#xff0c;非扫描模式1.6.2 连续转换&#xff0c;非扫描模式1.6.3 单次…

C语言中32位浮点数的格式

以 GNU C为例&#xff0c;它遵循 IEEE 754-2008标准中制定的浮点表示规范。在该规范中定义了 5种不同大小的基础二进制浮点格式&#xff0c;包括&#xff1a;16位&#xff0c;32位&#xff0c;64位&#xff0c;128位&#xff0c;256位。其中&#xff0c;32位的格式被用作标准 C…