OpenAI的ChatGPT能够理解各种各样的人类指令,并在不同的语言任务中表现出色。这归功于一种新颖的大规模语言模型微调方法——RLHF(通过强化学习对齐人类反馈)。
RLHF方法解锁了语言模型遵循人类指令的能力,使得语言模型的能力与人类需求和价值观保持一致。
目前,RLHF的研究工作主要使用PPO算法对语言模型进行优化。然而,PPO算法包含许多超参数,并且在算法迭代过程中需要多个独立模型相互配合,因此错误的实现细节可能会导致训练结果不佳。
同时,从与人类对齐的角度来看,强化学习算法并不是必须的。

论文地址:https://arxiv.org/abs/2304.05302v1
项目地址:https://github.com/GanjinZero/RRHF
为此,阿里巴巴达摩院和清华大学的作者们提出了一种名为基于排序的人类偏好对齐的方法——RRHF。
RRHF不需要强化学习,可以利用不同语言模型生成的回复,包括ChatGPT、GPT-4或当前的训练模型。RRHF通过对回复进行评分,并通过排名损失来使回复与人类偏好对齐。
与PPO不同,RRHF的训练过程可以利用人类专家或GPT-4的输出作为对比。训练好的RRHF模型可以同时用作生成语言模型和奖励模型。

Playgound AI的CEO表示,这是最近最有意思的一篇论文
下图中对比了PPO算法和RRHF算法的区别。

RRHF对于输入的查询,首先通过不同的方式获得k个回复,再用奖励模型对这k个回复分别打分。对于每一个回复采用对数概率的方式进行得分:

其中是自回归语言模型的概率分布。
我们希望对于奖励模型给分高的回复给与更大的概率,也就是希望和奖励得分相匹配。我们通过排序损失优化这个目标:

额外的,我们还给模型一个目标是去直接学习得分最高的回复:

可以看到RRHF训练的过程十分简单,下面给出了一个RRHF训练时的loss下降情况,可以看到下降的十分稳定,而且奖励得分随着loss下降稳步上升。

文章作者在HH数据集上进行了实验,也可以看到和PPO可比的效果:

RRHF算法可以有效地将语言模型输出概率与人类偏好对齐,其训练思路非常简单,训练完成的模型有几个特点:
RRHF方法利用OpenAI的chatGPT或GPT-4作为得分模型和ChatGPT、Alpaca等模型的输出作为训练样本,开发了两个新的语言模型,分别是Wombat-7B和Wombat-7B-GPT4。训练的时间在2-4个小时不等,十分轻量化。
袋熊Wombat作为新的开源预训练模型相比于LLaMA、Alpaca等可以更好的与人类偏好对齐。作者们实验发现Wombat-7B拥有角色扮演和进行反事实推理等复杂的能力。
如果让Wombat介绍来自3000年的未来科技,Wombat会这样回答(翻译自英文):
希望我们的未来如Wombat预测的一样越来越好。

参考资料:
https://github.com/GanjinZero/RRHF
rails中是否有任何规定允许站点的所有AJAXPOST请求在没有authenticity_token的情况下通过?我有一个调用Controller方法的JqueryPOSTajax调用,但我没有在其中放置任何真实性代码,但调用成功。我的ApplicationController确实有'request_forgery_protection'并且我已经改变了config.action_controller.consider_all_requests_local在我的environments/development.rb中为false我还搜索了我的代码以确保我没有重载ajaxSend来发送
英文版英文链接关注公众号在“亚特兰蒂斯的回声”中踏上一段难忘的冒险之旅,深入未知的海洋深处。足智多谋的考古学家AriaSeaborne偶然发现了一件古代神器,揭示了一张通往失落之城亚特兰蒂斯的隐藏地图。在她神秘的导师内森·兰登教授的指导和勇敢的冒险家亚历克斯·默瑟的帮助下,阿丽亚开始了一段危险的旅程,以揭开这座传说中城市的真相。他们的冒险之旅带领他们穿越险恶的大海、神秘的岛屿和充满陷阱和谜语的致命迷宫。随着Aria潜在的魔法能力的觉醒,她被睿智勇敢的QueenNeria的幻象所指引,她让她为即将到来的挑战做好准备。三人组揭开亚特兰蒂斯令人惊叹的隐藏文明,并了解到邪恶的巫师马拉卡勋爵试图利用其古
我有一个包含100多个zip文件的目录,我需要读取zip文件中的文件以进行一些数据处理,而无需解压缩存档。是否有一个Ruby库可以在不解压缩文件的情况下读取zip存档中的文件内容?使用rubyzip报错:require'zip'Zip::File.open('my_zip.zip')do|zip_file|#Handleentriesonebyonezip_file.eachdo|entry|#Extracttofile/directory/symlinkputs"Extracting#{entry.name}"entry.extract('here')#Readintomemoryc
我需要动态创建一个Ruby类,即动态地从ActiveRecord::Base派生。我暂时使用eval:eval%Q{class::#{klass}是否有一种等效的、至少同样简洁的方法可以在不使用eval的情况下执行此操作? 最佳答案 您可以使用Class类,其中的类是实例。困惑了吗?;)cls=Class.new(ActiveRecord::Base)doself.table_name=table_nameendcls.new 关于ruby-无需eval即时创建Ruby类,我们在Stac
2022年底,OpenAI的预训练模型ChatGPT给人工智能领域的爱好者和研究人员留下了深刻的印象和启发,他展现的惊人能力将人工智能的研究和应用热度推向高潮,网上也充斥着和ChatGPT的各种聊天,他可以作诗、写小说、写代码、讨论疫情问题等。下面就是一些他的神回复:人命关天的坑: 写歌,留给词作者的机会不多了。。。 回答人类怎么样面对人工智能: 什么是ChatGPT?借用网上的一段介绍,ChatGPT是由人工智能研究实验室OpenAI在2022年11月30日发布的全新聊天机器人模型,一款人工智能技术驱动的自然语言处理工具。它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动
目录ChatGPT简介技术原理应用未来发展ChatGPT的10 种用法ChatGPT简介ChatGPT是一种基于深度学习的大型语言模型,由OpenAI公司开发。技术原理GPT是GenerativePre-trainedTransformer的缩写,意为生成式预训练变压器。它的技术原理是使用了一个基于注意力机制的变压器(Trans
我读过的关于Ruby符号的每一篇文章都在谈论符号相对于字符串的效率。但是,这不是1970年代。我的电脑可以处理一些额外的垃圾收集。我错了吗?我拥有最新最好的奔腾双核处理器和4GBRAM。我认为这应该足以处理一些字符串。 最佳答案 您的计算机可能能够处理“一点点额外的垃圾收集”,但是当“一点点”发生在运行数百万次的内部循环中时呢?如果它在内存有限的嵌入式系统上运行呢?有很多地方你可以随意使用字符串,但在某些地方你不能。这完全取决于上下文。 关于ruby-现代计算机的功能是否不足以处理字符串
我目前有一个运行在4.2.5上的Rails应用程序,我想使用ActionCable而不必将整个应用程序升级到Rails5.0.0.beta3版本并冒破坏所有其他gem的风险。按照我在互联网上看到的指南,我已经尝试过gem'actioncable',github:'rails/actioncable'这不起作用,因为ActionCable存储库已合并到Rails存储库中。我什至试过gem'actioncable',github:'rails/rails'但这似乎不适用于ActionCable合并到Rails时发生的版本重新编号。(唯一低于5.0.0.beta*的版本是0.0.0,这似乎是
♥️作者:白日参商🤵♂️个人主页:白日参商主页♥️坚持分析平时学习到的项目以及学习到的软件开发知识,和大家一起努力呀!!!🎈🎈加油!加油!加油!加油🎈欢迎评论💬点赞👍🏻收藏📂加关注+!「想体验ChatGPT中文聊天?」那快进来,你用不上算我输项目场景:项目条件一、那就开始吧1、安装ChatGPT-Desktop2、OpenAPI设置二、使用实例恭喜你!!!配置成功了!!!API和URL都是博主免费提供给大家的!!!恭喜你!!!配置成功了!!!API和URL都是博主免费提供给大家的!!!🎈🎈加油!加油!加油!加油🎈欢迎评论💬点赞👍🏻收藏📂加关注+!项目场景:近几个月可以说ChatGPT是火得一
ChatGPT掀起了AI股历史上最疯狂的一轮市值狂飙。自春节后至今,ChatGPT概念股开始了暴走模式,短短半月时间,海天瑞声、开普云等ChatGPT概念股市值累计增加了近1400亿。如此的爆炸效应,得益于ChatGPT所展现出商业化落地的巨大潜力。要知道,在此之前,无论是十年AI投入超千亿的百度,还是困在硬件化里的AI四小龙,都在重复着AI商业化难落地的故事。ChatGPT的出现,让AI从生产力的赋能者直接成为一种创造生产力的工具。随着订阅模式的推出,ChatGPT已经成为第一个以AI技术为核心直接变现的消费者应用。本文持有以下核心观点:1、ChatGPT是AI技术迭代的受益者。过去受限技术