【OpenAI o1背后技术】Sef-play RL:LLM通过博弈实现进化

news2024/11/15 8:45:13

【OpenAI o1背后技术】Sef-play RL:LLM通过博弈实现进化

OpenAI o1是经过强化学习训练来执行复杂推理任务的新型语言模型。特点就是,o1在回答之前会思考——它可以在响应用户之前产生一个很长的内部思维链。也就是该模型在作出反应之前,需要像人类一样,花更多时间思考问题。通过训练,它们学会完善自己的思维过程,尝试不同的策略,并认识到自己的错误。重点在于,OpenAI 的大规模强化学习算法,教会模型如何在数据高度有效的训练过程中利用其思想链进行高效思考。换言之,类似于强化学习的 Scaling Law。

现如今LLM进化的途径有三种:
在这里插入图片描述

  • 行为克隆:通过让LLM学习Positive,从而教会模型进行指令遵循;
  • RLHF/DPO:通过引入Positive和Negative,让LLM知道偏好信息,从而实现对齐;
  • Slef-play:引入一种博弈的过程,让LLM实现Weak-to-Strong

Self-play基本形式

经过SFT和RLHF的模型,通过自我进化增强的形式实现Weak-to-Strong过程。LLM中的Self-play有两个先决条件:Generator 和 Verifier。

Self-play相当于Generator与Verifier之间的对抗博弈,Verifier十分关键,构造高质量数据用于RL/Reward训练。常见的判别式RM,大模型作为裁判(LLM as a judge)等模式的判定准确率仍显不足,我们急需一种能够scaling起来的方式。

Google DeepMind提出一种经典的方法(Generative Verifiers: Reward Modeling as Next-Token Prediction)如下所示:
在这里插入图片描述

对于一个问题和答案,首先按照生成式模型的方法给出自然语言的判断,然后再给出RL所需要的标量数值。通过CoT的形式让LLM充当Verifier并给出判断正确与否的思考过程。Verifer和generator之间也可以通过信息密度更高的自然语言的方式进行互动。相当于RM监督policy的时候,不仅告诉了每条答案的评分还详细给出了错误的原因。

Verifier判别出来的正例和负例可以同时利用起来!在强化学习中,引入负例可以更有效地提升大语言模型的推理强度。在论文《RL on Incorrect Synthetic Data Scales the Efficiency of LLM Math Reasoning by Eight-Fold》中表明,数据利用效率更是达到了仅使用正例的八倍,即对于推理来说一个巨大的采用空间内,做错的可能性在起初要大大高于能够做对的概率。如果无法充分利用负例的数据价值,学习效率就会大打折扣。

在这里插入图片描述
如上图所示,如果只在Positive上进行SFT训练,那么就需要接近8倍的训练数据/时间/资源来达到相同较低的Test Error时对应充分利用Negative数据的RL方法。

Self-play中的Inference-time Scaling Law

Google DeepMind提出的一种Inference Time Scaling Law(Scaling LLM Test-Time Compute Optimally can be More Effective than Scaling Model Parameters)揭露出在推理阶段进行Scaling相比于训练更加有效。文中探索了两种有效的test-time scaling策略:

  • 通过搜索的方式结合过程奖励模型进行判断,例如PRM(过程监督奖励模型) + MCTS(蒙特卡洛树搜索)
  • 在推理时不断按照上下文进行模型分布调整。

那么推理阶段的Scaling有如下几种形态:

  • 宽度Scaling Law——Best-of-N:给定一个prompt(状态),并行地让LLM Generator生成若干推理结果,然后让Verifier对所有结果进行评判,并将得分最高(或者类似Self-Consistency投票法)选出最合适的答案。此时Scaling Law属于宽度(并行)方向
  • 深度Scaling Law——CoT:另外一种就是增加模型预测的“步数”,相当于让模型在给出答案之前生成较长的思考过程,从而约束LLM进行“深度思考”,从而得到靠谱的答案。这也是CoT的方式,即在推理阶段集中靠生成一定数量的token来实现Scaling。此时的Scaling Law属于深度串形方向。
  • 广深结合:OpenAI o1则是在Inference阶段结合了两者Scaling Law方向。在某一个状态进行Self-play过程中,通过蒙特卡洛树搜索(MCTS)展开若干可能的推理路径,并基于Verifier给出每一步和最终结果的判定和奖励。Self-play RL的推理态即是在这种guided search的模式下不断地获取到Positive和Negative推理数据,并通过RL进行自我进化。这一过程中考虑到的Scaling Law集中在(1)扩大搜索宽度有多少(探索与利用的trade-off)?以及(2)选择哪个方向可以在有限的深度范围内进行多步推理并得到预期答案?

Self-Play RL = Search + Memory

什么是Self-play RL呢?RL本质上就是探索与利用的Trade-off:

  • Search——探索过程,Trial-and-Error不断地进行试错和尝试,根据推理结果的反馈进行反复思考、回溯;
  • Memory——利用过程,记住之前探索过程中积累的经验,并在下一次遇到类似状态时选择最好的路径;

Self-play RL可能的实现技术框架

一种可能的Self-play RL技术框架就是Generator + Verifier + RM的组合,如下图所示:
在这里插入图片描述

上图所示,其中实线代表LLM Generator生成结果,虚线代表Verifier对推理过程和结果进行判定

Generator和Verifier组合为一个Self-play System,通过Actor-Critic形式进行RL,通过引入TD-error实现参数更新。

Self-play过程中考虑到宽度和深度Scaling Law的结合,所需要的计算规模甚至会达到训练阶段的100~1000倍。正是这种Scaling Law使得LLM能够探索到足够多的推理路径,并利用这些Positive和Negative作为经验通过RL训练成为LLM的记忆。

Reward Model则可以是通过Bradley-Terry Model训练的标量奖励函数,在整个Self-play过程中充当一个Discriminator从而增强Verifier的能力,而Reward Model则可以充分利用Self-play过程中产生的反馈结果(Positive和Negative)进行训练。

参考资料

  • https://zhuanlan.zhihu.com/p/720106482
  • OpenAI o1 Survery:https://github.com/wjn1996/Awesome-LLM-Reasoning-Openai-o1-Survey/tree/main

【大模型&NLP&算法】专栏

近200篇论文,300份博主亲自撰写的markdown笔记。订阅本专栏【大模型&NLP&算法】专栏,或前往https://github.com/wjn1996/LLMs-NLP-Algo即可获得全部如下资料:

  • 机器学习&深度学习基础与进阶干货(笔记、PPT、代码)
  • NLP基础与进阶干货(笔记、PPT、代码)
  • 大模型全套体系——预训练语言模型基础、知识预训练、大模型一览、大模型训练与优化、大模型调优、类ChatGPT的复现与应用等;
  • 大厂算法刷题;

在这里插入图片描述

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

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

相关文章

简单题104. 二叉树的最大深度 (python)20240922

问题描述: python: # Definition for a binary tree node. # class TreeNode(object): # def __init__(self, val0, leftNone, rightNone): # self.val val # self.left left # self.right right class Solution(object…

Python 入门(一、使用 VSCode 开发 Python 环境搭建)

Python 入门第一课 ,环境搭建...... by 矜辰所致前言 现在不会 Python ,好像不那么合适,咱先不求精通,但也不能不会,话不多说,开干! 这是 Python 入门第一课,当然是做好准备工作&a…

论前端框架的对比和选择 依据 前端框架的误区

前端框架的对比和选择依据 在前端开发中,有多种框架可供选择,以下是一些常见前端框架的对比和选择依据: 一、Vue.js 特点: 渐进式框架,灵活度高,可以逐步引入到项目中。学习曲线相对较平缓,容…

Java项目实战II基于Java+Spring Boot+MySQL的民宿在线预定平台(开发文档+源码+数据库)

目录 一、前言 二、技术介绍 三、系统实现 四、文档参考 五、核心代码 六、源码获取 全栈码农以及毕业设计实战开发,CSDN平台Java领域新星创作者,专注于大学生项目实战开发、讲解和毕业答疑辅导。获取源码联系方式请查看文末 一、前言 在旅游市场…

强大的重命名工具 | Bulk Rename Utility v4.0 便携版

软件简介 Bulk Rename Utility是一款功能强大且易于使用的文件批量重命名工具。它不仅体积小巧,而且完全免费,提供了友好的用户界面。该软件允许用户对文件或文件夹进行批量重命名,支持递归操作,即包含子文件夹的重命名。 软件特…

Apache Iceberg 概述

Apache Iceberg概述 一、what is Apache Iceberg? 为了解决数据存储和计算引擎之间的适配的问题,Netflix开发了Iceberg,2018年11月16日进入Apache孵化器,2020 年5月19日从孵化器毕业,成为Apache的顶级项目。 Apache…

SpringBoot实战(三十)发送HTTP/HTTPS请求的五种实现方式【下篇】(Okhttp3、RestTemplate、Hutool)

目录 一、五种实现方式对比结果二、Demo接口地址实现方式三、Okhttp3 库实现3.1 简介3.2 Maven依赖3.3 配置文件3.4 配置类3.5 工具类3.6 示例代码3.7 执行结果实现方式四、Spring 的 RestTemplate 实现4.1 简介4.2 Maven依赖4.3 配置文件4.4 配置类4.5 HttpClient 和 RestTemp…

华为HarmonyOS灵活高效的消息推送服务(Push Kit) - 5 发送通知消息

场景介绍 通知消息通过Push Kit通道直接下发,可在终端设备的通知中心、锁屏、横幅等展示,用户点击后拉起应用。您可以通过设置通知消息样式来吸引用户。 开通权益 Push Kit根据消息内容,将通知消息分类为服务与通讯、资讯营销两大类别&…

idea2021git从dev分支合并到主分支master

1、新建分支 新建一个名称为dev的分支,切换到该分支下面,输入新内容 提交代码到dev分支的仓库 2、切换分支 切换到主分支,因为刚刚提交的分支在dev环境,所以master是没有 3、合并分支 点击push,将dev里面的代码合并到…

Spring AI Alibaba,阿里的AI Java 开发框架

源码地址 https://github.com/alibaba/spring-ai-alibaba

资源创建方式-Job

Job: 容器按照持续运行的时间可分为两类,服务类容器,和工作类容器 服务类容器通常持续提供服务,需要一直运行,比如HTTP,Server,Daemon等, 工作类容器则是一次性任务,比如批处理程序&#xff0…

跟着问题学12——GRU详解

1 GRU 1. 什么是GRU GRU(Gate Recurrent Unit)是循环神经网络(Recurrent Neural Network, RNN)的一种。和LSTM(Long-Short Term Memory)一样,也是为了解决长期记忆 和反向传播中的梯度等问题…

数据集-目标检测系列-吸烟检测数据集 smoking cigarette >> DataBall

数据集-目标检测系列-吸烟检测数据集 smoking cigarette >> DataBall 数据集-目标检测系列-吸烟检测数据集 (smoking cigarette) 数据量:1W 想要进一步了解,请联系 DataBall。 DataBall 助力快速掌握数据集的信息和使用方…

闯关leetcode——67. Add Binary

大纲 题目地址内容 解题代码地址 题目 地址 https://leetcode.com/problems/add-binary/description/ 内容 Given two binary strings a and b, return their sum as a binary string. Example 1: Input: a “11”, b “1” Output: “100” Example 2: Input: a “101…

Qt系统相关——事件

文章目录 事件和信号槽的关系事件处理鼠标事件鼠标进入和离开鼠标点击获取位置鼠标释放鼠标双击鼠标移动鼠标滚轮 键盘事件定时器事件窗口移动和窗口改变 事件和信号槽的关系 Qt信号槽机制: 用户进行的操作就可能产生信号,可以给某个信号指定槽函数&…

Effective Java 学习笔记 如何为方法编写文档

目录 方法的文档注解设计的原则 Javadoc常用的文档注释 一些注意细节 通过Javadoc命令生成h5页面 这是第8章Java方法的最后一部分,聚焦为导出的API编写文档注释。 如果要想使得API真正可用,配套的文档是必须的。Java提供了Javadoc这个文档生成工具&…

Renesas R7FA8D1BH (Cortex®-M85)的 General PWM的应用实践

目录 概述 1 General PWM介绍 1.1 特性 1.2 定时器选择注意点 2 时钟配置 3 应用案例 3.1 基本定时器应用 3.2 定时器回调函数案例 3.3 输入捕捉功能案例 3.4 更新周期案例 3.5 更新占空比案例 3.6 单次触发脉冲案例 4 测试 4.1 代码介绍 4.2 验证 概述 本文主…

基于SpringBoot+Vue+MySQL的特色旅游网站系统

系统展示 用户前台界面 管理员后台界面 系统背景 随着旅游业的蓬勃发展,人们对旅游体验的需求日益多样化与个性化。传统的旅游信息查询与预订方式已难以满足现代游客的需求。因此,我们开发了这款基于SpringBootVueMySQL的特色旅游网站系统。该系统旨在通…

HTML实现的简单网站首页模板

这个是简单的网站首页模板&#xff0c;用于学习或者参考 实现代码: <!DOCTYPE html> <html lang"zh"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"&…

移动硬盘‘需格式化‘困境:原因剖析、恢复策略与预防之道

困境直击&#xff1a;移动硬盘为何需格式化才能访问&#xff1f; 在数字化时代&#xff0c;移动硬盘作为数据存储与传输的重要工具&#xff0c;其稳定性与可靠性直接关系到用户数据的安全。然而&#xff0c;不少用户在使用过程中遭遇了“移动硬盘需要格式化才能打开”的尴尬境…