大模型:我也会自监督学习~

前言

当下大模型的能力已经很强了,但是将来我们想要的是能力更强的大模型,其最好能够处理各种复杂问题也即强对齐模型

之前大模型训练的监督信号主要来源于人类反馈,但是如果想要训练一个强对齐模型必然就需要一个对应的强监督信号,这对于人类来说本身就很难,比如之前openai 的RLHF主要聚焦对齐的是某一方面能力(安全方面),这个时候人类还比较好判断case(是否安全)进而反馈,但是当面对各种复杂问题的时候,人类也很难反馈,可能需要各个领域的专家去反馈,但是这显然是不现实的。

前段时间openai也意识到这个问题了,其还专门成立了一个超级对齐团队来攻克这个方向,并发表了他们第一阶段的工作,其主要通过模拟一个弱监督强的实践来探索实现强对齐模型在理论上是否可行?以及初步提出了一些可能实现的方向,笔者也对其进行了解读,感兴趣的小伙伴可以穿梭:

穿梭门:《openai最新探索:超级对齐是否可行?》:https://zhuanlan.zhihu.com/p/673806165

今天要给大家带来的是一篇meta最新的paper,其也是尝试解决这个难题,具体的是让模型通过自监督的方式完成自我更新。一起来学习下吧~

论文:《Self-Rewarding Language Models》

论文链接: https://arxiv.org/pdf/2401.10020.pdf

背景

正如前言所说,之前的训练方法主要是RLHF,其利用人类标注的偏好数据训练一个reward打分model,然后使用这个reward model通过强化学习PPO来更新LLM,其中在PPO训练阶段,reward model是不更新的。

最近有一些工作则是绕过了训练一个reward model,而是直接用标注好的偏好数据去训练LLM即DPO方法。

可以看到上述两种方法都严重依赖标注好的偏好数据,倘若面对复杂问题,人类不能很高效的标注偏好数据的时候,那么就相当于没有数据了,那不论是PPO也好DPO也罢也就不能训练了。同时RLHF在PPO阶段reward model是不参与更新的,被冻结住了。

基于此,作者提出了训练一个自我更新的reward model(而不是冻结的模型),即reward model在训练LLM对齐过程中也会同步持续更新,具体的做法是不再将reward model和LLM分离成不同的模型,而是看成一个整体,作者将这一方法命名为Self-Rewarding Language Models

方法

  • Initialization

首先是需要初始化,即使用指令微调数据训练一个简单的sft模型,作者将这里的指令微调数据命名为IFT (Instruction Fine-Tuning),同时作者的idea是让LLM自己可以对response打分(即作为Reward model),具体是5分值;具体能打分的这个能力如果有专门的数据能先训练一下子最好,没有的话也无所谓,因为经过用IFT数据微调后,模型已经初步具备了打分能力,后续自我更新的时候,这个能力会自我提高;当然如果有对应的数据更好啦,作者将这个数据命名为EFT。

经过IFT和EFT数据微调也即SFT后,我们后续就会基于这个初版模型进行自我更新啦~

  • Self-Instruction Creation

这个模块具体包含三个步骤,首先是Generate a new prompt即产生新的prompt,具体的是通过few-shot去生成新的prompt;然后每个prompt通过LLM模型的拒绝采样得到N个候选resposne;最后使用同一个LLM对这些response进行打分(reward model的功能),其中打分这一步具体的实施是通过prompt engernering实现的,作者也给出了模版(LLM-as-a-Judge prompt):

  • Instruction Following Training

经过上面的步骤后,我们就相当于有了偏好数据,然后就可以更新模型了,具体更新的机制也有两种,一直是基于偏好数据进行DPO,另一种只使用偏好得分高的数据直接进行SFT,作者发现前者效果更好

为什么前者更好呢?其实也好理解,说的简单点就是前者不仅仅利用了正反馈信号,而且利用负监督信号,这对于LLM-as-a-Judge自身的更新是有帮助的,而整个算法过程又是严重依赖LLM-as-a-Judge的,所以前者理论上就是会更好一些。

在进行完一轮的更新后,就可以进行第二轮的更新了,整个过程完全自动化

  • Overall Self-Alignment Algorithm

总结一下整个过程就是,相信大家一目了然,不用笔者再累述啦。

效果怎么样呢?

这里的SFT Baseline是只使用IFT进行微调的模型,可以看到随着迭代的轮数提高,效果在不断变好。

同时作者也和业界的模型做了一个整体的对比:

同时作者也观察了LLM-as-a-Judge的能力在随着轮数增加而提高

不过实验这里是不是应该再加一个对比实验:和传统的RLHF以及DPO方法相比,带来的提升有多少?这样就更好啦。

总结

作者提出了一个自我更新的流程,大的方向选择还是不错的即自监督,其实其中每个子流程我们都可以进一步优化或者探索,比如

(1)Generate a new prompt部分我们可以做的更精细化一点比如使用进化学习进行生成更有难度的prompt。

(2)在LLM-as-a-Judge prompt部分可以针对
不同query进行不同维度的打分设计

(3)我们可以看到整个过程其实就是依靠自己判断数据质量,然后自己又完全信赖这个结果去更新自己,相当于自己给自己打分,好处就是自动化更新,但是总感觉不踏实,如果能结合一些第三方以合作的方式进行评估更新或许也是一个不错的选择。

(4)是不是可以先进行传统的RLHF或者DPO,再进行自我迭代,换句话说我们可以先尽力使用各种办法达到目前最好的模型性能状态,然后自己实在没招了且还想进一步提高模型性能,这个时候就可以试试本篇的自我更新

(5)等等…

感兴趣的小伙伴可以follow一下这个方向

关注

欢迎关注,下期再见啦~

知乎,csdn,github,微信公众号

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

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

相关文章

WebDriverWait太强大

selenium webdriver及wait 1 implicitly包打天下2 Linkedin无法登录返回值很乱,怎么破? 1 implicitly包打天下 有了implicitly之后,基本上不再关注网速之类的影响。 self.driver.implicitly_wait(511)2 Linkedin无法登录返回值很乱&#xf…

探索图像检索:从理论到实战的应用

目录 一、引言二、图像检索技术概述图像检索的基本概念图像检索与文本检索的区别特征提取技术相似度计算索引技术 三、图像检索技术代码示例图像特征提取示例相似度计算索引技术 四、图像搜索流程架构数据采集与预处理特征提取相似度计算与排名结果呈现与优化 五、实际应用图像…

【征服redis11】花了一天,我终于懂了redis的底层数据结构

现在我们可以开始讨论一个硬核问题了—Redis的数据结构。在redis里常见的数据类型有String、Hash、Set、List、Zset五种常用结构,另外还有Hyperloglog、Geo、Streams等结构。这些结构的特征和应用场景我们在前面都介绍过,这里我们来研究一下其内部结构是…

【分布式技术】ELK大型日志收集分析系统

目录 步骤一:完成JAVA环境部署 步骤二:部署ES节点(三台主机) 步骤三:内核参数修改 步骤四:web端查看验证 步骤五:yum安装nginx 步骤六:完成logstash部署 步骤七:部…

荣誉艾尔迪亚人的题解

目录 原题描述: 题目背景 题目描述 输入格式 输出格式 样例 Input 1 Output 1 Input 2 Output 2 数据范围: 样例解释 主要思路: 代码code: 原题描述: 时间限制: 1000ms 空间限制: 65536kb 题目背景 ​…

Python爬虫时被封IP,该怎么解决?四大动态IP平台测评

在使用 Python 进行爬虫时,很有可能因为一些异常行为被封 IP,这主要是因为一些爬虫时产生的异常行为导致的。 在曾经的一次数据爬取的时候,我尝试去爬取Google地图上面的商家联系方式和地址信息做营销,可是很不幸,还只…

从规则到神经网络:机器翻译技术的演化之路

文章目录 从规则到神经网络:机器翻译技术的演化之路一、概述1. 机器翻译的历史与发展2. 神经机器翻译的兴起3. 技术对现代社会的影响 二、机器翻译的核心技术1. 规则基础的机器翻译(Rule-Based Machine Translation, RBMT)2. 统计机器翻译&am…

【内存管理】flink内存管理(一):内存管理概述:flink主动管理内存原理、flink内存模型

文章目录 一.flink为什么自己管理内存1. 处理大数据时JVM内存管理的问题2. flink主动管理内存逻辑2.1. Flink内存管理方面2.2. 序列化、反序列化说明 3. Flink主动管理内存的好处 二. Flink内存模型1. 堆内存2. 非堆内存2.1. 托管内存2.2.直接内存2.3. JVM特定内存 本节从整体使…

Nginx重写功能location与rewrite

1. location 从功能看 rewrite 和 location 似乎有点像,都能实现跳转,主要区别在于 rewrite 是在同一域名内更改获取资源的路径,而 location 是对一类路径做控制访问或反向代理,还可以proxy_pass 到其他机器。 rewrite 对访问的…

书生·浦语大模型实战营-学习笔记4

XTuner 大模型单卡低成本微调实战 Finetune简介 常见的两种微调策略:增量预训练、指令跟随 指令跟随微调 数据是一问一答的形式 对话模板构建 每个开源模型使用的对话模板都不相同 指令微调原理: 由于只有答案部分是我们期望模型来进行回答的内容…

蓝桥杯-最少刷题数

📑前言 本文主要是【算法】——最少刷题数的文章,如果有什么需要改进的地方还请大佬指出⛺️ 🎬作者简介:大家好,我是听风与他🥇 ☁️博客首页:CSDN主页听风与他 🌄每日一句&#x…

一文搞清楚Java中的包、类、接口

写在开头 包、类、接口、方法、变量、参数、代码块,这些都是构成Java程序的核心部分,即便最简单的一段代码里都至少要包含里面的三四个内容,这两天花点时间梳理了一下,理解又深刻了几分。 Java中的包 Java 定义了一种名字空间&…

接口测试 02 -- JMeter入门到实战

前言 JM eter毕竟是做压测的工具,自动化这块还是有缺陷。 如果公司做一些简单的接口自动化,可以考虑使用JMeter快速完成,如果想做完善的接口自动化体系,建议还是基于Python来做。 为什么学习接口测试要先从JMeter开始?…

卡尔曼滤波增益推导

该文章主要是记录温习卡尔曼滤波算法理论时的一些理解,重点讲解卡尔曼增益的推导过程。其中忽略了部分基础知识和详细的推导过程,阅读该文章需要本身已具备卡尔曼滤波基础。文章内容摘取自网络博客的部分内容,因为原文章的逻辑不是很通顺&…

NLP论文阅读记录 - 2021 | WOS 基于多头自注意力机制和指针网络的文本摘要

文章目录 前言0、论文摘要一、Introduction1.1目标问题1.2相关的尝试1.3本文贡献 二.问题定义和解决问题的假设问题定义解决问题的假设 三.本文方法3.1 总结为两阶段学习3.1.1 基础系统 3.2 重构文本摘要 四 实验效果4.1数据集4.2 对比模型4.3实施细节4.4评估指标4.5 实验结果4…

python222网站实战(SpringBoot+SpringSecurity+MybatisPlus+thymeleaf+layui)-帖子详情页实现

锋哥原创的SpringbootLayui python222网站实战: python222网站实战课程视频教程(SpringBootPython爬虫实战) ( 火爆连载更新中... )_哔哩哔哩_bilibilipython222网站实战课程视频教程(SpringBootPython爬虫实战) ( 火…

解决一个mysql的更新属性长度问题

需求背景: 线上有一个 platform属性,原有长度为 varchar(10),但是突然需要填入一个11位长度的值;而偏偏这个属性在线上100张表中有50张都存在,并且名字各式各样,庆幸都包含 platform;例如 platf…

非科班转码的秋招复盘:地理信息科学GIS专业到后端研发、软件开发

本文介绍地理信息科学(GIS)专业的2024届应届生,在研三上学期期间,寻找后端研发、软件开发等IT方向工作的非科班转码秋招情况。 首先,这篇文章一开始写于2023年年底,当时为了参加一个征文活动,所…

Python爬虫的9个具体应用场景案例分析与具体应用。

文章目录 前言一、新闻采集二、数据挖掘三、网站监测四、舆情分析五、爬虫定制化开发六、数据采集与处理七、网络安全八、网络营销九、自动化测试关于Python技术储备一、Python所有方向的学习路线二、Python基础学习视频三、精品Python学习书籍四、Python工具包项目源码合集①P…

嵌入式学习-网络编程-Day6

嵌入式学习-网络编程-Day6 一、思维导图 二、作业 1.基于UDP的网络聊天室(2024.1.21号前上交) 项目需求: 1.如果有用户登录,其他用户可以收到这个人的登录信息 2.如果有人发送信息,其他用户可以收到这个人的群聊信…