前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >无需强化学习的与人类偏好对齐的语言模型:Wombat袋熊

无需强化学习的与人类偏好对齐的语言模型:Wombat袋熊

作者头像
数据派THU
发布于 2023-04-25 06:40:42
发布于 2023-04-25 06:40:42
34800
代码可运行
举报
文章被收录于专栏:数据派THU数据派THU
运行总次数:0
代码可运行
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
本文约1200字,建议阅读5分钟本文提出了基于排序的人类偏好对齐方法。

OpenAI 的 ChatGPT 理解多种多样的的人类指令,并且可以很好的应对不同的语言任务需求。自发布以来就掀起了对于通用人工智能的讨论。ChatGPT 令人惊叹的能力来源于一种新颖的大规模语言模型微调方法:RLHF(通过强化学习对齐人类反馈)。

RLHF 方法不同于以往传统的监督学习的微调方式,该方法首先让模型根据指令提示生成不同的回复,之后通过人工的评价反馈,使用强化学习的方式对 LLM 进行微调。RLHF 解锁了语言模型跟从人类指令的能力,并且使得语言模型的能力和人类的需求和价值观对齐,从而使得 RLHF 微调下的语言模型具有令人惊叹的能力。 

当前研究 RLHF 的工作主要使用 PPO 算法对语言模型进行优化。从一个使用指令和人类示范的数据通过监督学习微调的语言模型开始,PPO 算法首先使用这个语言模型输出对于不同指令数据的回复,之后通过一个奖励模型对语言模型的不同回复进行打分评价,最后使用打分评价通过策略梯度下降的方式对语言模型进行优化。

考虑到语言模型在训练中不断变化和奖励模型有限的泛化能力,PPO 在工程实践中需要反复迭代上述流程,并且在奖励的设计上需要限制微调的语言模型不能偏离初始模型太远。由于使用强化学习训练包含有众多的超参数,并且在算法迭代的过程中需要多个独立模型的相互配合,错误的实现细节都会导致不尽如人意的训练结果。 

在和人类对齐的角度上,强化学习算法是不是必须的呢?该篇论文提出了基于排序的人类偏好对齐方法。它对不同语言模型生成的回复(回复可以来自 ChatGPT、GPT-4、当前的训练模型或者人类标注数据)进行评分,评分来自于回复在当前模型下的对数概率。RRHF 通过通过排名损失使评分与人类的偏好(或者代理的奖励模型)对齐。RRHF 训练好的模型可以同时作为生成语言模型和奖励模型使用。下图中对比了 PPO 算法和 RRHF 算法的区别。

RRHF 算法可以有效地将语言模型输出概率与人类偏好对齐,并且在微调期间只需要 1 到 2 个模型。相比之下,PPO 需要 4 个模型:微调的语言模型,参考语言模型,奖励模型和价值模型相互配合。在实际的训练中,更少的模型数量可以帮助减少显存的占用,使得 RRHF 可以更高效地利用计算资源,并扩展到更大规模的模型上进行训练。

此外,RRHF 在编码和超参数方面比 PPO 更简单。整个对齐过程(包括监督学习、训练奖励模型、进行 PPO)可以在一次 RRHF 训练中完成。文章在 Anthropic 发布的 Helpful and Harmless 数据上使用 Meta 的 LLaMA 和斯坦福的 Alpaca 模型进行实验,发现 RRHF 可以达到和 PPO 相当的水平。在代码实践上,RRHF 和传统的监督学习微调算法的难易程度相当,极大地减小了语言模型和人类偏好对齐的工程难度。 

同时,文章作者基于 RRHF 算法,使用 Alpaca 的提示数据并利用 ChatGPT 或者 GPT-4 作为得分模型,训练了语言模型 Wombat-7B 和 Wombat-7B-GPT4。训练时间只需要几个小时。训练得到的袋熊 Wombat‍ 可以更好的与人类偏好对齐。以下是来自袋熊 Wombat‍ 的一个自我介绍。

Query: Give an introduction of wombat 

Wombat: Wombat is a marsupial mammal native to Australia. It is typically found in mountainous areas and is known for its burrowing behavior. Wombats are typically around two feet long and weigh up to 30 pounds. They have a gray coat with white on their chests, and they have thick and powerful hind legs which they use for digging. Wombats are mostly nocturnal and eat a variety of insects, leaves, and grasses.

论文链接:

https://arxiv.org/abs/2304.05302

作者单位:

阿里巴巴达摩院

代码链接:

https://github.com/GanjinZero/RRHF

编辑:黄继彦

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2023-04-18,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 数据派THU 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
SpringBoot 设置项目首页 & 指定路径跳转页面
然后 在resources文件夹下面创建一个static的文件夹 里面放一个叫 index.html 即可, 访问项目路径,就跳到首页了。
收心
2022/01/17
3.6K0
SpringBoot 设置项目首页 & 指定路径跳转页面
Spring Security (二) Guides
上一篇文章《Spring Security(一)--Architecture Overview》,我们介绍了Spring Security的基础架构,这一节我们通过Spring官方给出的一个guides例子,来了解Spring Security是如何保护我们的应用的,之后会对进行一个解读。 2 Spring Security Guides 2.1 引入依赖 <dependencies> <dependency> <groupId>org.springframework.boot</g
程序猿DD
2018/02/01
1.1K0
Spring Security (二) Guides
Spring Boot 自定义Spring MVC 配置: WebMvcConfigurationSupport
Spring Boot 自定义Spring MVC 配置: WebMvcConfigurationSupport
一个会写诗的程序员
2018/08/17
7280
SpringBoot2.x开发案例之整合Quartz任务管理系统
基于spring-boot 2.x + quartz 的CRUD任务管理系统,适用于中小项目。
小柒2012
2018/04/11
1.9K4
SpringBoot2.x开发案例之整合Quartz任务管理系统
Spring Boot 2.X(十一):全局异常处理
在 Java Web 系统开发中,不管是 Controller 层、Service 层还是 Dao 层,都有可能抛出异常。如果在每个方法中加上各种 try catch 的异常处理代码,那样会使代码非常繁琐。在Spring MVC 中,我们可以将所有类型的异常处理从各个单独的方法中解耦出来,进行异常信息的统一处理和维护。
朝雾轻寒
2019/10/26
1.7K0
Spring Boot 2.X(十一):全局异常处理
关于SpringMVC自动配置
https://docs.spring.io/spring-boot/docs/1.5.10.RELEASE/reference/htmlsingle/#boot-features-developing-web-applications
程序员阿杜
2021/03/16
7100
SpringBoot2.x开发案例之整合Quartz任务管理系统
基于spring-boot 2.x + quartz 的CRUD任务管理系统,适用于中小项目。 基于spring-boot +quartz 的CRUD任务管理系统: https://gitee.com/52itstyle/spring-boot-quartz 开发环境 JDK1.8、Maven、Eclipse 技术栈 SpringBoot2.0.1、thymeleaf3.0.9、quartz2.3.0、iview、vue、layer、AdminLTE、bootstrap 启动说明 项目使用的数据库为My
小柒2012
2018/04/13
1.9K0
SpringBoot2.x开发案例之整合Quartz任务管理系统
springboot开发之引入资源并实现跳转到登录界面
我们可以在External Libraries下找相应的jar,并查看里面的目录结构:比如
西西嘛呦
2020/08/26
6640
springboot开发之引入资源并实现跳转到登录界面
关于RestfulCRUD
2)、使用ResourceBundleMessageSource管理国际化资源文件
程序员阿杜
2021/03/16
3410
关于RestfulCRUD
SpringBoot2.1自定义默认首页
在webmvcconfigurer中重写匿名类的addViewControllers方法
Tom2Code
2022/04/15
7430
SpringBoot2.1自定义默认首页
Java学习之Spring MVC路由映射
访问http://xxx/login/login 即可访问到/WEB-INF/view/login.jsp文件
全栈程序员站长
2022/07/13
6700
Spring Boot 2.X(三):使用 Spring MVC + MyBatis + Thymeleaf 开发 web 应用
Spring MVC 是构建在 Servlet API 上的原生框架,并从一开始就包含在 Spring 框架中。本文主要通过简述 Spring MVC 的架构及分析,并用 Spring Boot + Spring MVC + MyBatis (SSM)+ Thymeleaf(模板引擎) 框架来简单快速构建一个 Web 项目。
朝雾轻寒
2019/10/18
1.4K1
Spring Boot 2.X(三):使用 Spring MVC + MyBatis + Thymeleaf 开发 web 应用
springboot 自动配置和拦截器相关
我们可以通过启用 debug=true属性;来让控制台打印自动配置报告,这样我们就可以很方便的知道哪些自动配置 类生效;
java攻城狮
2020/10/10
6580
Validating Form Input With Spring Boot
这个例子用于演示在Spring Boot应用中如何验证Web 应用的输入,我们将会建立一个简单的Spring MVC应用,来读取用户输入并使用validation注解来检查,并且当用户输入错误时,应用需要再屏幕上显示错误信息提示用户重新输入。
阿杜
2018/08/06
4880
Spring Boot 2.X(四):Spring Boot 自定义 Web MVC 配置
Spring Boot 不仅提供了相当简单使用的自动配置功能,而且开放了非常自由灵活的配置类。Spring MVC 为我们提供了 WebMvcConfigurationSupport 类和一个注解 @EnableWebMvc 以帮助我们减少配置 Bean 的声明。本文简单说明如何自定义 Web MVC 配置。 首先需要使用 @Configuration 将 WebMvcConfig 类标注为 Spring 配置类,示例代码如下:
朝雾轻寒
2019/10/18
1.4K0
Spring学习笔记(十九)——springboot Web开发和模板引擎thymeleaf语法使用
2)、SpringBoot已经默认将这些场景配置好了,只需要在配置文件中指定少量配置就可以运行起来
不愿意做鱼的小鲸鱼
2022/09/26
8500
Spring学习笔记(十九)——springboot Web开发和模板引擎thymeleaf语法使用
springBoot——Web开发简介【七】
1. 所有 /webjars/ ,都去 classpath:/META-INF/resources/webjars/ 找资源** webjars:以jar包的方式引入静态资源 http://www.webjars.org/
思索
2024/08/16
1120
springBoot——Web开发简介【七】
SpringBoot之Web开发
测试:localhost:8080/webjars/jquery/3.3.1/dist/jquery.js
OY
2022/03/12
1.1K0
SpringBoot之Web开发
Spring boot 从0到0.1 part(1)
这里需要注意一点,去修改Spring boot版本,使其小于3.0.5(如果其他配置与我前面配置一致的话),否则会报错
用户9691112
2023/05/18
7260
Spring boot 从0到0.1 part(1)
Spring Boot保护Web应用程序
如果在类路径上添加了Spring Boot Security依赖项,则Spring Boot应用程序会自动为所有HTTP端点提供基本身份验证。端点“/”和“/home”不需要任何身份验证。所有其他端点都需要身份验证。
黑洞代码
2021/12/04
8930
Spring Boot保护Web应用程序
推荐阅读
相关推荐
SpringBoot 设置项目首页 & 指定路径跳转页面
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验