「料见」vol25.回顾 | PKU-Beaver开源项目团队:一起来聊首个可复现的RLHF基准

news2024/11/26 21:24:24

为了解决复现RLHF技术和基于RLHF技术的大预言模型的不安全问题,北京大学团队开源了名为PKU-Beaver(海狸)开源项目

第25期料见闭门分享会,我“门”非常开心邀请到PKU-Beaver开源项目团队成员——北京大学人工智能研究院助理教授 杨耀东 老师、北京大学在读博士生 吉嘉铭,来与大家分享项目介绍、近期情况,并与线上同学进行QA交流互动。

本次开源SafeRLHF第一轮的20k数据集,如需使用完整数据集,欢迎扫描下方二维码填写申请表。

在活动的开麦大讨论环节,大家针对RLHF的问题接连不断,我“门”也紧锣密鼓记录下来自PKU-Beaver团队干货满满的问答文字版,稍加编辑整理,呈现给大家~如果希望进一步了解PKU-Beaver团队工作,也欢迎关注项目主页:https://github.com/PKU-Alignment/safe-rlhf

或是添加将门小将(thexiaojiang)微信,加入RLHF交流社群,与更多相关领域小伙伴交流互动!

1. RLHF在数据上需要达到多少的量级,才能对齐人类偏好?

杨耀东(北京大学人工智能研究院助理教授):这个目前没有一个固定的说法。目前根据paper里的一些观点是,它可以使用远小于预训练阶段的数据量。目前预训练的数据量大概都是几百billion的token,无论是我们自己的发现还是做垂直大模型的厂商,我们了解到,对于特定领域,不需要那么大的数据量。

目前大多数人使用RLHF还是希望聚焦在我能否把这个模型变成专业的大模型,也就是想要达到H(Helpful),那几百个billion的token就足够了。对应起来,大概是几百本书的体量规模,就可以达到。但如果想要另两个H(Harmless和Honest),根据我们目前的测试,Harmless至少需要几十万量级的token对应的preference data。

2. RLHF的数据选取有没有什么特殊的地方?是否需要直接采样真实的在线语音助手和用户的对话数据?

杨耀东:RLHF里有三步,第一步是SFT,第二步是reward function learning,第三步是PPO。在数据采集时候收集的prompt还是非常重要的,Facebook的LLaMa大模型发现,如果是非常高质量的prompt,仅用1000条就可以代替RLHF后面两步达到的效果。Prompt非常重要,甚至需要人类标注员的高质量的标注。我们跟产业界的同仁们聊的时候发现,收集真实的在线语音助手和用户对话数据是非常重要的,这也是大家急切开源自己的大模型产品的原因之一。通过收集人类真实数据,然后进行高质量标注,进一步进行RLHF。

3. 人并不需要读取数以亿万计的token就能达到现在的认知水平,那么如何降低大模型成本?包括计算和数据资源?

杨耀东:这个问题非常好,但是没有考虑到的地方是,人本身进化了很久,有很多传承下来的知识,有很多history domain的积累。而大模型是一个人类全新的探索,无法和人脑进行对比。我记忆中人一辈子能看的token数是一个billion,远小于现在大语言模型需要的数据集的数量级水平。

但是大语言模型和人脑认知的关系还没有被研究的那么清晰,我认为也没有必要把大语言模型做成跟人脑一样,以非常低的成本(30、40瓦的水平)来做出非常智能的行为,这个在短期内也并不一定会被实现。但是如何降低大模型成本确实是一个值得思考的问题,类似权重量化等技术,可以帮助你在部署端或微调端以更小的代价,达到更精细的方向上对齐的水平。

4. 如何把除了排序本身以外的排序原因也作为重要反馈信号,反馈回模型进行针对性微调?

杨耀东:这也是个非常好的问题。作为一种高效的对齐模型的算法来说,它本身还是比较粗糙的,并且是比较暴力的——收集人类反馈进行硬对齐。这个技术本身在未来几年内我认为会得到翻天覆地的革新,搜集今年NerulIPS里的文章,大概有700-1000篇文章在做RLHF这件事,这个技术本身会进一步进行提升。新的技术的出现都是在增加、利用intrinsic reward、extrinsic reward,或者是unsupervized behavior learning的方法,来提升preference学习的效率。之前提到的三条技术路线:一条是学policy,一条是学preference function,还有一条是学reward function。如果你有办法去复刻出preference背后的reward的话,我认为reward也能给你更多的信息,至于现在为什么要用preference的原因,是因为从GPT3.5到Chat这一步,主要想要达到类人回答的水平,类人这个事情可能很难以一个具体的公式进行描述,所以会使用preference。但我是相信回来会有更多的反馈信号的,包括内在奖励、外在奖励等等对模型进行微调,甚至还有一些工作是不进行RL,直接拿反馈信号拿来tuning,这些工作都是非常有意义的尝试。

5. 之前,模型参数到一定数量的时候才会出现涌现能力,但是反过来说,我们把一个大模型压缩成为一个小模型之后,涌现能力会不会丢失掉?大模型的小型化或者端侧化的相关方向,有没有未来发展的趋势?

杨耀东:这个我们组没有做,但我纯分享一些个人观点。我认为这个事情是可行的,比方说前些年的“假彩票学说”,就很像是您说的这个观点,用很大的形式训练出模型之后,不代表最有效的表征就是这么大。可以进行量化的方法,最终得到和大模型的效果差不多的小模型。由大到小是可以保持模型的性能的,但是上来直接训练小模型是不可行的。这个和涌现的观点是不相违背的,在技术上是一件非常值得尝试的事情。

6. 随着新技术出现、训练参数的增加,模型能力的上限在哪里?是否会出现超人类的情况出现?

杨耀东:虽然大家都在说大模型,但我个人的观点是:现在的模型还不够大。一,人是有100个trillion的链接,比现在的模型还要大1000倍,这个模型大小的问题,在未来还会有很大发展空间。二,相比于大型科学工程来讲,人类在训练大模型上花的钱还是比较便宜的(相对来看)。所以在把模型变大这个课题上,未来还会出现很多工作,直到我们把世界上所有可以用的数据练完,或者把所有可以调用的算力用完。Anthropic的CEO也曾分享说,未来五到十年,我们会在大模型上看到1000倍的提升。但是能否突破人类的智能,个人看法还是不太可能。因为有一个事情目前还不是很明确,就是大模型目前是怎么做推理的,目前还不具备完整的concept learning的能力。如果这个能力没有的话,离我们真正的人类只能还是会差很多。但在可预期的未来,随着scaling law的发展,还是可以看到可期的增幅空间。

7. 后续会考虑开源中文的数据集吗?

杨耀东:我们目前只是学校的团队,在资金上还不具备开源中文数据集的可能。我们现在做成的事情是把这个背后的pipeline打通了,包括数据的核验,代码的复现等等,我们整个团队不到10人,目前阶段我们对标斯坦福大学Alpaca。中文数据集确实是我们想做的,但中文需要更多的算力、数据标注等等,如果其他公司、机构想做开源的话,我们团队非常乐意把BEAVER项目的这一套经验进行分享,为整个开源社区带来自己的力量。

8. 目前是只在安全上数据上进行训练吗?如果这样的话会不会伤害通用任务的一个性能?

杨耀东:这个问题很重要,如何不去伤害helpful。我们目前是有一些PTX loss这样的机制,就是防止它不要把helpful的能力降低。就这一块的话,HH本质上是互冲的。包括Anthropic他们做的研究显示,helpful和harmless有时候就是会相互影响的。这就是为什么我认为这个trade off能用safeRL能解决好的原因,因为这个算法背后就是一些自适应的调整。但我们肯定也是做了一些quantitive的结果,包括跑了一个big bench等等,这些结果都会release。

9. 您觉得整个中文的评测集,怎么去构建比较好?对大模型整个能力进行评估的时候,有什么用的考虑?

杨耀东:你可以去把我们包括一些其他组织做的这些prompt的数据拿去,进行自我筛查,至少在我们能想到的这些维度上,这些模型的表现大概是怎么样的。然后你可以用GPT4(或者其他大模型)做一个打分,你就大概能感知到目前这个模型的水平大概是什么样的。但我们主要做的是英文的,中文的测评集有清华大学的黄名烈老师的一些工作,你可以关注一下他发布的安全评测的prompt,你可以用起来。

关于moderation API,我们会在6月份把标注的所有的安全数据全部拿来,训练一个moderation的tool出来给大家。

10. 怎么评估数据的多样性和质量?

杨耀东:这个问题非常重要。甚至不在RLHF阶段,就在SFT这个阶段,能构造更高质量的数据确实很重要。我认识到像是MOSS他们在数据多样性上做了非常多的工作。在强化学习领域,尤其是多智能体的强化学习,我们非常关注策略的多样性。比方说你在求解零和博弈的时候,如果策略不多样的话,就很容易被别人打败。多样性的这个维度,包括更科学的多样性的这个评估,我觉得未来会有非常多的研究,慢慢从这个策略多样性到数据端的多样性,或者我直接去衡量这个模型在回答上的这个多样性等等问题。当下很多还是靠工程上的方法进行规避。

11. 无害性数据集的构建,有没有更多经验分享?

杨耀东:一般如果去做Safe的话,一般会想要去做有害数据,因为有害数据会产生cost,或者产生非常低的preference,这样你其实能规避无害变为有害,所以很多时候问题是,反而如何诱导它说出有害的回答,因为现在的模型已经比较安全了,很多问题压根不回答,就过滤掉了,所以你需要做的反而是诱导出有害的问题。这个就需要很多高质量的prompt,能够诱导出它说不好的话的prompt,以及人类的这个标注。也就是你可能对话了两三轮以后,终于经过人类的诱导说出一段不安全的话,你对这个话,可能要进行一个打分。这个反而是一个努力去构建的数据集。大部分你现在标注的这个数据,包括你用人类回答的这个instruction,或者是你用GPT标出来的数据,本身就是高度无害的。因为像是Cloud、GPT,对于安全那一层做的还是蛮严格的,甚至会有些保守。

12. 针对moderation,现在它的建模是类似于OpenAI一样做了一个有监督的多标签分类吗?是在10万数据上建模成一个多标签分类吗?还是有更有效的建模方法?

吉嘉铭(北京大学在读博士生):我们现在标数据是这样的,我们构建了比较多的prompt,后期我们在第一批release的时候,会release2万个会诱导产生一些危害回答的prompt,比如说一些种族歧视、性别歧视、色情内容的言论。我们在做数据标注过程中,对这种prompt进行了多标签分类,这个本身就是一个简单的文本分类任务。我们想测试模型的毒性的话,其实和模型本身吐出的回答有关。我们是针对QA对进行分类的,根据QA对进行moderation。这里的Q是我们构造的Q,A是模型吐出的A。那有的模型,针对当前的问题,可能是安全的回答,也可能是不安全的回答。然后我们把QA对结合起来,看是否是安全的。我们目前只做了一轮的,多轮对话的情况下它可能不是在前面的第一轮、第二轮产生了这种偏见的回答,可能在后面的若干轮产生偏见的回答。这样的话,我们moderation出来之后,比如说我们有13个类,12个类别,每个类别我们塞200个prompt,我们让Alpaca产生对应的回答,通过在特定细粒度下进行约束(色情、歧视、偏见等),看一下他们的QA结合的带有约束的性质,通过这样的方式我们对每个模型的读性进行分析,大概是这样的逻辑。模型大小的话,本身在进行QA分类的话,是需要模型有一些reasoning能力的,我们目前做的是125M和7billion。

大概6月份左右,我们会release文章。

13. 目前的类别可以覆盖到instruct攻击的目标截词吗?

吉嘉铭:GPT,里面第一个机制,通过关键词过滤,比如说你现在在ChatGPT上问一些涉及到黑人歧视的关键词的时候,它是不会给你回答的。第二,以复旦的MOSS举例,本身训练语料,是加入了一个safe的数据集,我问它一个危险性的问题,它也会拒绝回答。有一些网站会公开那些攻击成功的prompt。但是通过上下文来躲避攻击的话,是很难做到的。

如果没有经过RLHF数据集加持的模型,吐出来的可能会有比较危险的言论,这个也是我们做这个初衷。

14. RLHF需要人类标注,对于小公司成本很高,是否有更好泛化能力的工作来做RL的工作?比方说RLAIF等。

杨耀东:这个是可以的。现在有很多self align的工作,大家可以关注一下。尤其是在safe这个问题上,人一定不可能是完全不受控制的。只是用AI去标注的话,很多问题是可以逃逸的。但是AI对于大部分问题我相信已经能符合人类的价值观了,尤其是哪些非常明显的错误。但是用的时候需要小心,一是要注意逃逸问题,二是问题如果太敏感可能会被封号。

15. 介绍一下数据标注的方法论?

杨耀东:数据标注很痛苦。很多炼丹的公司自己就会养数据标注员,不一定会把这项工作外包出去的。我们学校里不一定有能力养这样的团队,所以更多的方法是跟数据标注公司进行合作。那么这个数据标注就要涉及到标注公司的打分系统、打分卡、评判指标,以及验收指标等。这个里面有非常多细节。

16. 如果精调阶段使用大量的安全数据,那么RLHF的收益还有多少?

杨耀东:这是个好问题。如果你精调阶段的数据非常多,你要考虑用SFT是否足够?这个问题非常值得探索。现在有一些非常新的工作是说,如果你大语言模型如果是学了一个非常通用的知识以后,那你其实用一点点SFT数据就能把它调整过来,不一定要对齐,LLaMa就是这么一个例子。但是SFT并不能完全解决3H的问题,毕竟除了我们说的helpless以外,还有幻觉的问题。这个问题来看,目前国内复现RLHF并不是很成功,但是从一些公开的报道和paper里面可以看到,这个方法对于防止幻觉出现还是非常重要的。当然,如果你有高质量的安全数据的话,我相信是可以让你的模型变得非常安全的。

17. RLHF或sate-RLHF可以只通过高效参数微调(如LoRA)实现对齐解决安全问题?还是全量fineture模型参数会更好?

杨耀东:我们团队认为,LoRA技术更适用于类似stable diffusion的东西,对于产品级的可聊天可对话的安全机器人,这个方法可能还是有一些欠缺,因为它毕竟是一个从资源受限角度上考虑出来的一个方法。对于你这个模型的性能方面,我觉得LoRA可能并不是一个非常好的工具。虽然开源的框架里这个有一些不错的效果,但是safe问题上我觉得还是比较困难。

18. 是否有一些理论结果,可以帮助safe-RL训练LLM可以对外推?

杨耀东:首先,我们主页上挂的案例都是可以对外推的,都不是我们traning dataset里面的。第二,theoretical claim 这个东西涉及到了一个机器学习的核心问题,就是你到底能不能做泛化?因为你像我们用的方法论,包括ppo拉格朗日,或者cpo这些方法,还是属于机器学习的方法,拥有泛化性。但是严格来说,未来任何安全问题它都能避免,这个也不一定。但至少在机器人领域,是具有一定的泛化能力的,包括不同的场景、不同环境里的随机因素,这些都能泛化。

-The End-

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

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

相关文章

欧美同学会第三届“双创”大赛——空天装备产业赛区(浙江诸暨)正式启动,开启报名通道

6月8日,欧美同学会第三届“双创”大赛——空天装备产业赛区(浙江诸暨)启动仪式暨北京推介会圆满举行。活动由欧美同学会(中国留学人员联谊会)主办,中共浙江省委统战部支持,浙江省欧美同学会、中…

国内比较火的报表工具测评——Smartbi电子表格软件和Finereport

最近在学习BI软件,因为最近工作中需要开发报表,因此选用了国内市场比较热门的报表工具——Finereport和Spreadsheet进行学习。 BI软件经常会定期发布新的版本,增加新的功能模块,或者对现有功能进行增强,提升运行效率。…

解决pip install -r requirements.txt 超时

解决方案: pip install -r requirements.txt -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com测试验证

让你的AndroidUI更亮眼:Jetpack Compose中的可视状态

让你的Android UI更亮眼:Jetpack Compose中的可视状态 任何设计系统的重要责任是清晰地表明哪些组件可以与之交互,哪些不行,并让用户知道交互已发生。本博客文章将解释如何监听Jetpack Compose中的用户交互,并创建可重用的视觉指…

关于接口的安全性测试,这几点你必须掌握!

01、接口防刷 1.为什么会有人要刷接口? 牟利:黄牛在 12306 网上抢票再倒卖。 恶意攻击竞争对手:如短信接口被请求一次,会触发几分钱的运营商费用,当量级大了也很可观。 压测:用apache bench 做压力测试。…

高性能计算与AI融合成为刚需|什么是高性能计算?应用领域有哪些?与人工智能的关系梳理

本文一部分转载自杨净 整理自 MEET2023量子位 算力的需求,远比以往来得更为猛烈。甚至有人直呼:得算力者得未来。 元宇宙、AIGC、AI for Science的涌现,又给高性能计算(HPC)平添了好几把火。 在诸多挑战与机遇共存交…

大数据治理入门系列:数据管理

在如今的大数据时代,每天都会产生大量的新数据,已有数据可能也会频繁更新或转换。因此,需要对数据进行治理和管理,以便高效地开展数据分析、获取数据洞见、挖掘数据价值。否则,杂乱无章的数据只会白白浪费存储空间&…

python基础----10-----python操作mysql

一 前言 对于SQL章节前言->SQL_DQL_排序分页的课程,这里不做记录,因为都是讲MYSQL本身的内容,与python无关。 当然,接下来的课需要用到mysql,所以大家需要自行下载,这并不难。 二 python操作MYSQL基础…

当BPM遇上低代码 “自定义”提升业务管理效率

业务流程管理(BPM)的历史可以追溯到科学管理和质量管理的发展,并逐步演变为一个更加系统化和综合的管理方法。它在现代组织中起到了优化业务流程、提高效率和质量、增强灵活性和创新能力的重要作用。 从20世纪初的科学管理理论中&#xff0c…

【Linux】什么是进程(process)?

目录 进程与程序概念描述进程-PCBWindows进程与Linux进程Linux进程操作子进程父进程创建进程(初识-fork) 进程与程序概念 在Linux系统中,触发任何一个事件时,系统都会将它定义成为一个进程,并且给予这个进程一个ID,成为PID&#x…

Apikit 自学日记:如何安装 Apikit

Apikit 有三种客户端,你可以依据自己的情况选择。三种客户端的数据是共用的,因此你可以随时切换不同的客户端。 肯定会有和我一样的小白,第一次听说 Apikit这个工具,那么我今天和大家一起学习下这个工具如何安装。 我们推荐使用新…

校招失败后,在小公司熬了 2 年终于进了华为,这次真是竭尽全力了····

其实两年前校招的时候就往华为投了一次简历,结果很明显凉了,随后这个理想就被暂时放下了,但是这个种子一直埋在心里这两年除了工作以外,也会坚持写博客,也因此结识了很多优秀的小伙伴,从他们身上学到了特别…

Angular实现用ng-class和ng-style控制数组最后一个数据为红色

首先我们来看class方案实现 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Document</title>…

Python模块的安装

1.用pip命令安装模块 pip是python官方的编程环境提供的一个命令&#xff0c;主要功能就是安装和卸载第三方模块。 用pip命令安装模块的方法最简单也最常用&#xff0c;这种默认将模块安装在python安装目录中的“site-packages"文件下。 1.1 pip命令安装模块的具体方法 …

MySQL的索引为什么要下推?

文章目录 一、回表操作 二、主键索引 三、非主键索引 四、低版本操作 五、高版本操作 六、总结 一、回表操作 对于数据库来说&#xff0c;只要涉及到索引&#xff0c;必然绕不过去回表操作。当然这也是我们今天所讲的内容的前提基础。说到回表&#xff0c;我们需要从索引…

HarmonyOS学习路之开发篇—Java UI框架(DirectionalLayout)

DirectionalLayout DirectionalLayout是Java UI中的一种重要组件布局&#xff0c;用于将一组组件(Component)按照水平或者垂直方向排布&#xff0c;能够方便地对齐布局内的组件。该布局和其他布局的组合&#xff0c;可以实现更加丰富的布局方式。 DirectionalLayout示意图 支持…

微信小程序实现瀑布流布局效果

一、效果 二、内容 1、xml代码 <!-- 列表 --><view class"list_title">推荐</view><view class"waterfall"><block wx:for"{{list}}" wx:key"index" wx:for-index"id" wx:for-item"itemNam…

cmd进入mysql及常用的mysql操作

cmd进入mysql操作 winR&#xff0c;输入cmd&#xff0c;打开cmd窗口&#xff0c;进入到 mysql bin目录的路径下 第一步&#xff1a;启动mysql服务&#xff0c;可以通过“net start myql”命令实现&#xff1b; 第二步&#xff1a;先使用DOS命令进入mysql的安装目录下的bin目…

ChatGPT 国内镜像网站独家汇总:发现最优秀的人工智能对话体验

欢迎来到我们的 ChatGPT 镜像网站汇总博客&#xff01;在这个令人激动的人工智能时代&#xff0c;ChatGPT 作为一款顶尖的语言模型&#xff0c;已经引起了全球范围内的热议。但是&#xff0c;您是否曾经为了找到最佳的 ChatGPT 使用体验而苦苦搜寻&#xff1f;别担心&#xff0…

程序员工作中的 80/20 法则如何体现?

80/20 原则的基础概念 该原则认为&#xff0c; 大部分效果出自少数起因。例如&#xff0c; 少数人得到大部分收入&#xff0c; 少数研究者做出大多数创新成果&#xff0c;少数作者写出大部分图书&#xff0c;等等。 您可能听说过 80/20 原则——它在个人生产力文献中随处可见…