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

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的作用。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

数组算法(二):交替子数组计数

1. 官方描述 给你一个二进制数组nums 。如果一个子数组中 不存在 两个 相邻 元素的值 相同 的情况,我们称这样的子数组为 交替子数组 。 返回数组 nums 中交替子数组的数量。 示例 1: 输入: nums [0,1,1,1] 输出: 5 解释&#…

数学系C++ 排序算法简述(八)

目录 排序 选择排序 O(n2) 不稳定:48429 归并排序 O(n log n) 稳定 插入排序 O(n2) 堆排序 O(n log n) 希尔排序 O(n log2 n) 图书馆排序 O(n log n) 冒泡排序 O(n2) 优化: 基数排序 O(n k) 快速排序 O(n log n)【分治】 不稳定 桶排序 O(n…

一.2.(4)放大电路静态工作点的稳定;(未完待续)

1.Rb对Q点及Au的影响 输入特性曲线:Rb减少,IBQ,UBEQ增大 输出特性曲线:ICQ增大,UCEQ减少 AUUO/Ui分子减少,分母增大,但由于分子带负号,所以|Au|减少 2.Rc对Q点及Au的影响 输入特性曲…

【密码学】什么是密码?什么是密码学?

一、密码的定义 根据《中华人民共和国密码法》对密码的定义如下: 密码是指采用特定变换的方法对信息等进行加密保护、安全认证的技术、产品和服务。 二、密码学的定义 密码学是研究编制密码和破译密码的技术科学。由定义可以知道密码学分为两个主要分支&#x…

【做一道算一道】和为 K 的子数组

给你一个整数数组 nums 和一个整数 k ,请你统计并返回 该数组中和为 k 的子数组的个数 。 子数组是数组中元素的连续非空序列。 示例 1: 输入:nums [1,1,1], k 2 输出:2 示例 2: 输入:nums [1,2,3],…

深度学习图像生成与分割模型详解:从StyleGAN到PSPNet

文章目录 Style GANDeeplab-v3FCNAdversarial AutoencodersHigh-Resolution Image Synthesis with Latent Diffusion ModelsNeRF: Representing Scenes as Neural Radiance Fields for View SynthesisPyramid Scene Parsing Network Style GAN 输入是一个潜在向量 (z)&#xff…

嵌入式开发SPI基本介绍与应用

目录 #SPI通信协议 #SPI基础概念 #SPI通信模式 #SPI通信时序类型 前言:本篇笔记参考嘉立创的开发文档,连接放在最后。 #SPI通信协议 #SPI基础概念 Serial Peripheral Interface 缩写SPI 翻译:串行外设接口 同步串行通信协议&…

FMEA在大型光伏电站安全生产管理中的应用

一、FMEA概述 FMEA(Failure Modes and Effects Analysis)即失效模式和影响分析,是一种用于识别和分析产品或过程中潜在故障模式及其影响的方法。它通过对产品或过程中可能出现的故障模式进行系统性地梳理和分析,评估其可能的影响…

Miniconda的常见用法——以Isaacgym为例

1. ubuntu24.04安装minicondda mkdir -p ~/miniconda3 wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh -O ~/miniconda3/miniconda.sh解释下这段代码 bash ~/miniconda3/miniconda.sh -b -u -p ~/miniconda3~/miniconda3/miniconda.sh: 指向Mi…

【笔记】记一次redis将从节点变成主节点 主节点变成从节点

1.连上虚拟机centos7 2.打开finalshell连接虚拟机 将从节点变为主节点 输出redis-cli -p 要变成主节点的从节点 -a此从节点的密码 输入 replicaof no one 查看端口状态 info replication 总结: redis-cli -p 端口号 -a 密码 replicaof no one info replicati…

STM32第十七课:连接云平台进行数据传输

目录 需求一、云平台项目创建二、代码编写1.导入MQTT包2.连接阿里云3.发布数据 三、关键代码总结 需求 1.通过生活物联网平台设计一个空气质量检测仪app。 2.连接阿里云平台将硬件数据传输到云端,使手机端能够实时收到。 一、云平台项目创建 先进入阿里云生活服务…

cs231n 作业3

使用普通RNN进行图像标注 单个RNN神经元行为 前向传播: 反向传播: def rnn_step_backward(dnext_h, cache):dx, dprev_h, dWx, dWh, db None, None, None, None, Nonex, Wx, Wh, prev_h, next_h cachedtanh 1 - next_h**2dx (dnext_h*dtanh).dot(…

打造属于你的私人云盘:在 OrangePi AIpro 上搭建个人云盘

随着数字化时代的到来,数据的存储和管理变得愈发重要。相比于公共云存储服务,搭建一个属于自己的个人云盘不仅能够更好地保护隐私,还可以更灵活地管理数据。 近期刚好收到了一个 香橙派 AIpro 的开发板,借此机会用来搭建一个属于…

人工智能项目论文复现

文章目录 (一)技术学习任务Ⅰ、机器学习之聚类1、基本介绍概念2、聚类分析基本介绍3、K均值聚类4、K近邻分类模型(KNN)5、均值漂移聚类6、代码实现7、上述三种算法总结 Ⅱ、机器学习其他常用技术1、决策树基本知识2、异常检测概念3、主成分分析4、决策树…

落日余晖映晚霞

落日余晖映晚霞,立于海滨,望夕阳余晖洒于波光粼粼之上,金光跳跃,若繁星闪烁,耀人心目。 海风轻拂,心境宁静,凡尘俗务皆于此刹那消散,思绪万干,或忆往昔点滴,或…

SQL 对一个经常有数据更新和删除操作的表,怎样优化以减少磁盘空间的占用?

文章目录 一、定期清理不再需要的数据二、使用合适的数据类型三、压缩数据四、删除重复数据五、分区表六、索引优化七、碎片整理八、归档历史数据九、监控和评估 在数据库管理中,当面对一个经常进行数据更新和删除操作的表时,磁盘空间的有效利用是一个重…

PIP换源的全面指南

##概述 在Python的世界里,pip是不可或缺的包管理工具,它帮助开发者安装和管理Python软件包。然而,由于网络条件或服务器位置等因素,直接使用默认的pip源有时会遇到下载速度慢或者连接不稳定的问题。这时,更换pip源到一…

赋值运算符重载和const成员函数和 const函数

文章目录 1.运算符重载(1)(2)运算符重载的语法:(3)运算符重载的注意事项:(4)前置和后置重载区别 2.const成员函数3.取地址及const取地址操作符重载4.总结 1.运算符重载 (1) 我们知道内置类型(整形,字符型,浮点型…)可以进行一系…

利用docker搭建漏洞环境,使用SSRF+Redis写入centos以及ubuntu的公钥,实现免密登录

一、实验环境 kali:在kali中搭建docker容器环境,这里我主要是使用第一个; redis作为一种数据库,它可以将数据写入内存中去,我们通过利用ssrf请求,实现服务器对自己的公钥写入,从而实验免密登录;…

异步调用 - 初识

目录 1、引入 2、同步调用 2.1、例子:支付功能 2.2、同步调用的好处 2.3、同步调用的缺点 3、异步调用 3.1、异步调用的方式 3.2、异步调用的优势 3.3、异步调用的缺点 3.4、什么场景下使用异步调用 3.5、MQ技术选型 1、引入 为什么想要异步通信呢&…