神神叨叨的OpenAI和神神叨叨的草莓

news2024/11/25 12:44:24

其实现在的OpenAI挺烦人的,和之前Ilya在的时候就不太一样了,Schulman也走了, 尤其Schulman走了是真的可惜,因为他是整个后训练,包括微调尤其是RLHF的真正操盘手

Altman发草莓然后又没下文,挺败好感的,大家最近也总被草莓这个事刷屏,估计很多同学想理解一下草莓到底是啥?

Strawberry 其实就是最早的Q*,其实可以理解为强化学习算法又一次证明自己的地方,现在堆语料玩pretrain基本上已经玩到头了

而合成数据这个领域呢,我是不支持不反对的那波人,可是合成数据会有很大的继承问题,我的微博,朋友圈也都发过,如下:

一大堆拿着gpt和llama3做合成数据的模型,目前面对了一个比较严重的问题(llama自己都受到了合成数据的一定范围的困扰),前代大模型的一些错误认知,都遗传并且污染了训练集,后面的模型把错误也不可逆的继承了,而且随着迭代轮次的加深,越来越被强化。目前的语言模型本质上还是概率统计,既然是统计概率,从数学的角度上看 :那么就会有统计近似误差,大概率的知识就永远被强化,小概率就越来越被忽略了。还有函数近似误差,比如量化,比如取近似导致的误差,一代一代就被保留了下来

所以Schlman他们对齐组的,就要从RLHF上下功夫,诞生了Q*和草莓这些相对玩的很新的RL算法来提升模型的能力,当然最终目标都是AGI,可是AGI如果面对的全是幻觉,它必然不是AGI,我可以给出结论,Q*和草莓,不是AGI路上的唯一需要解决问题的办法,但肯定是必要的那个。

我们知道传统的模型训练,包括Pratrain,Finetune,RLHF这些步骤,如果这些不懂的,建议先看我以前文章,否则一会读起来可能会有点吃力

链接:

从词表到RLHF一镜到底训练一个大模型 (qq.com)

RLHF这块

图片

以前就很多人问我,你训练就训练为啥还要摆个基准模型在那搞KL散度,这个我以前讲过你不放个基准模型的答案一起比较KL,RL是真的给你往舔狗了回啊,往往人类越喜欢什么样的答题风格,它就往那个答案上盯着,那么为什么,说白了,为了得到更高的分数,这是这个系统就这样的设定的。所以KL散度能一定程度上防止它过于舔狗,但是能不能彻底解决,那必然是不能的,GPT4o之前你们没发现过吗?大模型明明回答你的问题肯呢个是对的,但是你要说,我以前认为的不是这样的,它整不好就告诉你,那是我记错了,应该是这样回答的,然后巴拉巴拉,按着你的错误答案给一顿云回答。

这东西怎么AGI啊,所以我一个哥们一直说LLM是傻子,也不是没道理。

那Q* 或者草莓解决了什么问题呢?

就解决这个问题,学术一点的说法叫做

“从结果监督的RL到对过程监督的RL的实现”不用搜,网上没有这话,这都我总结的,你要是此刻看到了,就偷着乐吧

图片

上图说明的舔狗强化学习RL,就是唯结果论,这种东西在解数学题和代码上尤其没法弄,这两种行为它往往上多段式推理,同时问题的语义相近,但是里面的一些entity的参数不一样,那结果是完全不一样的。所以你们以前看到过好多LLM的数学和代码笑话,原因就在这

OAI自己出了一片论文 step by step,其中有作者就是Schulman...

2305.20050 (arxiv.org)

这个论文把写的其实很含蓄,GPT-3之后OAI自己就不太认真对外发表算法啥的了,都是实验性的东西

和这个道理基本一样的是STAR既“ Self-Taught Reasoner”,斯坦福的一篇论文,也不算新

2203.14465 (arxiv.org) 有兴趣的可以看一下这个

这个其实就是过程监督RL的一个体现,不过这个论文的问题是写的列子都比较浅层

我这里随便挑一个讲吧

图片

如图所示,在你给到模型一个问题和数据答案的时候,比如用什么东西装小狗,出了b,以外,你要告诉模型,这个答案那必须是basket,因为它就是被设计出来拎东西的,诸如此类

这其实是一步推理,如果把步骤拆开,比如解数学论证,道理是一样的

这个红色的东西它稳中叫做rationalization,也就是合理性,你的每一步的推理到你的最终答案,出了给我中间的每部解乏的中间答案以外(COT),你要把你的合理性给我做出来。

用数学来设计和理解,就是这样的:

给定一个预训练好的LLM “M” 和一个带有答案的问题数据集 "D"

图片

我们的方法从一个小的示例集合 “P” 开始,这些示例包含中间推理

图片

|P|《 |D|,将提示和这些推理由ri链接到每个问题xi,,我就让模型来学习生成的推理步骤(rationalization)和答案yi, 然后每次生成的合理性推理步骤和答案我都验证,反复的循环来扩充我的数据集

解释:一开始P很小,但是P让模型学到了过程(过程监督吗)。然后拿P对模型RLHF,模型牛B了一些,继续来做D里的其他的数据集,让原来没有rationalization,只有答案的数据集D,变为两者间距的D', 然后再回来搞模型下一轮的RL.模型越来越牛B,还可以搞别的数据集去了。。。。

当然整个RL的损失函数和后面训练的梯度也都变了,可以理解成这样

图片

J是奖励函数,描述了模型M在给定输入x和然后回答y,就这么个动作,来得到的总奖励期望

它的梯度就得为

图片

这快没啥讲的,就是上一步的指式函数么1(^yi=yi),要是就是1不是就是0,然后算一个对数概率梯度。

我的文章一般写算法读的人都比较少,为了增大阅读量,我再通俗一点。

比如是你让机器看你打一局农药

图片

可能机器看你赢了,但是真说学到啥了,那不一定

因为关联性对战局影响太大了

比如

  • 兵线

  • 你的队友级别

  • 你的队友出装

  • 是不是抢大龙了

  • 两边人员配置

而且每个变更(例如你3杀)都应该有实时反馈,正向负向

原来的RL,它不是一点也学不到,但是它无法对每一步都研究的特透,有人可能拿围棋的AlphaGO跟我抬杠,这个例子其实不错,但是首先围棋它和你解决AGI这种通用问题不一样,第一它有严格的规则,而且理论上来讲就那么个棋牌,是有固定的讨论,所以你只要给它足够的把数,让它硬搞,它是能学到某些隐空间里定义的套路,但是对于NLP这种动辄就把人类社会的所有知识点都拿来pretrain的业务,你让它像Alpha Go这样死命练是不够的,更别提好多数据集了的答案甚至都是错的。

还是回答打农药的这个问题

正因为它分析了每一步对战局的影响,然后它有个整体的期望E,它要想赢就可以找以前训练里面的那些后续步骤会对赢这个事情有更好的反馈,然后一步一步的往赢了去搞,理论上和解数学题也是一样的。

对这种数据构成比较感兴趣的,可以去看看OpenAI开放的数据集PRM800K

图片

当然Q*和草莓肯定不止于此,但是多少能让你理解到什么是step by step,什么是star

另外一个值得关注的就是TOT替换COT

COT的一大问题就是容易跑偏,LLM毕竟是概率模型,plan太多生成就跑题了也正常

用TOT如果不考虑算力的情况下(他家正常训练也用不到那么多卡),在思考反省回退的过程中不断迭代。也会对产出最终答案的正确性起到非常大的作用

好,做个总结就是OpenAI 的草莓,就是强化学习的一个enhancement,但是绝对是立竿见影,再加上TOT,就能产生牛B的数据集(带合理性推理的),对,这玩意是造数据的,也是Reward,反正都在RL那块,但是它可不是主模型

然后给下一代大模型Orion来用,其实Orion好像应该是GPT-6了,那可能GPT-5就不会发售了把,或者给个阉割版本的,在秋天发售也说不好。

本文完

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

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

相关文章

Ubuntu安装交叉编译工具链(gcc-linaro-6.3.1-2017.05-x86_64_aarch64-linux-gnu)

1: 首先把压缩包解压出来 2: 我是把文件名字进行了修改,这个看个人需求。终端输入: sudo vim .bashrc在文件最末尾输入: export PATH$PATH:/home/the/aarch64-linux-gnu/bin export LD_LIBRARY_PATH$LD_LIBRARY_PAT…

合合信息acge模型获C-MTEB第一,文本向量化迎来新突破

前言: 在当今时代,大型语言模型以其惊人的发展速度和广泛的应用前景,正成为全球科技界的瞩目焦点。这些模型的强大能力,源自于背后默默支撑它们的Embedding技术——一种将语言转化为机器可理解的数值向量的关键技术。随着大型语言…

05:创建逻辑软件元件库

1.创建逻辑软件元件库 点击 “编辑电参数” 1.1常规设置 1.2PCB封装 1.3门 1.4管脚 1.5检查元件 点击确定 1.6点击保存 2.处理重叠问题 2.1查看处理后的显示

【Linux】:用户缓冲区

1.前言(引出现象) 我们看一段代码, 我们运行这段代码, 再次运行,并将打印结果重定向到文件log.txt中, 结果除了系统调用write的输出,其余输出都多打印一次。这是为什么呢?我们先…

IO进程线程 0829作业

作业 1、将消息队列发送接收端实现一遍。 send.c代码 #include <myhead.h>struct msgbuf {long mtype; /* 消息的类型*/char mtext[1000]; /* 消息的正文&#xff0c;长度不是1&#xff0c;可以自定义*/ };#define leng sizeof(struct msgbuf) - sizeof(long…

2022 年高教社杯全国大学生数学建模竞赛-C 题 古代玻璃制品的成分分析与鉴别详解+分类模型Python代码源码

前言 简单介绍一下我自己&#xff1a;博主专注建模四年&#xff0c;参与过大大小小数十来次数学建模&#xff0c;理解各类模型原理以及每种模型的建模流程和各类题目分析方法。参与过十余次数学建模大赛&#xff0c;三次美赛获得过二次M奖一次H奖&#xff0c;国赛二等奖。**提…

leetcode120. 三角形最小路径和,二维动态规划

leetcode120. 三角形最小路径和 给定一个三角形 triangle &#xff0c;找出自顶向下的最小路径和。 每一步只能移动到下一行中相邻的结点上。相邻的结点 在这里指的是 下标 与 上一层结点下标 相同或者等于 上一层结点下标 1 的两个结点。也就是说&#xff0c;如果正位于当前…

STM32-PWM驱动舵机——HAL库

什么是舵机&#xff1f; 舵机&#xff0c;也叫伺服电机&#xff0c;在嵌入式开发中&#xff0c;舵机作为一种常见的运动控制组件&#xff0c;具有广泛的应用。 舵机型号介绍&#xff1a; 市面上常见的舵机型号有 SG90、MG90S、MG995、MG996R 等等&#xff0c;主要是扭矩大小…

Linux--IO多路复用(select,poll,epoll)

IO多路复用——select&#xff0c;poll&#xff0c;epoll IO多路复用是一种操作系统技术&#xff0c;旨在提高系统处理多个输入输出操作的性能和资源利用率。与传统的多线程或多进程模型相比&#xff0c;IO多路复用避免了因阻塞IO而导致的资源浪费和低效率问题。它通过将多个IO…

使用matplotlib可视化dataframe:让你的数据更生动有趣

哈喽&#xff0c;大家好&#xff0c;我是木头左&#xff01; 1. 简介 在数据分析和可视化领域&#xff0c;matplotlib是一个非常强大的工具。它可以帮助将数据以图形的形式展示出来&#xff0c;使得数据更加直观、易于理解。本文将介绍如何使用matplotlib来可视化pandas中的Da…

小q的数列(c语言)

1./描述 //小q最近迷上了各种好玩的数列&#xff0c;这天&#xff0c;他发现了一个有趣的数列&#xff0c;其递推公式如下&#xff1a; // //f[0] 0 f[1] 1; //f[i] f[i / 2] f[i % 2]; (i > 2) // //现在&#xff0c;他想考考你&#xff0c;问&#xff1a;给你一个n&am…

趣映 v2.3.8 — 高级版,专注动画制作,自媒体变现

趣映是一款专注于为动画垂直账号提供全面视频编辑和制作功能的软件&#xff0c;支持从灵感创作到成片输出的全流程。海量模板助您一键制作爆款动画视频和动漫视频&#xff0c;适配各种场景。此版本已解锁高级功能&#xff0c;提供更丰富的编辑工具和模板。 链接&#xff1a;ht…

MySQL数据库60道面试题 ( 附答案 )

2024的4月招聘季如此卷&#xff0c;没点真本事真技术&#xff0c;没点面试经验&#xff0c;不了解点职场套路&#xff0c;如何过五关斩六将&#xff1f; 找工作最重要的一步自然是面试&#xff0c;马上跳槽季&#xff0c;网上出现了各种面试题&#xff0c;一时会让人眼花缭乱&…

外排序之⽂件归并排序实现

外排序之⽂件归并排序实现 外排序介绍 外排序&#xff08;External sorting&#xff09;是指能够处理极⼤量数据的排序算法。通常来说&#xff0c;外排序处理的数据不能 ⼀次装⼊内存&#xff0c;只能放在读写较慢的外存储器(通常是硬盘)上。外排序通常采⽤的是⼀种“排序-归 …

Spring+SpringWeb+MyBatis三大框架整合教程 实现先前后端交互搭建

目录 1. 创建项目 2. 导入所依赖的 jar 包 3. 配置MyBatis 4. 配置spring事务管理 5. 配置Spring * Spring配置代码解读 6. dao层 7. mappers映射文件 8. common层 9. service层 10. web层 11. 测试 ssm大合体&#xff01; 1. 创建项目 &#x1f4cd;创建一个J…

【C++ Primer Plus习题】6.7

问题: 解答: #include <iostream> #include <cctype> using namespace std;int main() {string words;int vowel 0;int consonant 0;int other0;cout << "请输入一个单词(q结束):";cin >> words;while (words!"q"){if (!isalph…

编成笔记-atan2函数学习分析

分析atan2函数 1. 前言 2. atan2函数分析 tanθy/x : 当(x,y) 在第一象限&#xff0c;0 < θ < π/2当(x,y) 在第二象限&#xff0c;π/2 < θ ≤ π当(x,y) 在第三象限&#xff0c;− π < θ < − π/2当(x,y) 在第四象限&#xff0c;− π/2 < θ <…

动态读取nacos中修改的项目配置文件

本项目用的还是springboot项目&#xff0c;咱们直接上代码 一&#xff1a;首先看下nacos中需要动态获取的属性 二&#xff1a;把需要动态读取的配置类中的属性整理一个实体类 mport lombok.Data; import org.springframework.boot.context.properties.ConfigurationPropert…

微信公众号等工具 3 — 使用 Markdown Nice 写文章

文章目录 操作步骤STEP 1. 进入微信公众号文章编辑界面STEP 2. Markdown Nice 将 3 个重要的功能嵌入到了微信公众号编辑器中STEP 3. 在 Markdown Nice 界面编辑内容STEP 4. 导入/粘贴/直接在编辑器中编辑 Markdown → 点击左下角的预览效果 操作步骤 STEP 1. 进入微信公众号文…

BUUCTF二维码1

九张撕碎二维码碎片。不会让人拼起来吧&#xff01;看了大神们得博客竟然是真的&#xff0c;这是ctf的题吗&#xff01;是考验人的耐性吧&#xff01; 我勉为其难讲一下PS怎么拼图&#xff0c;首先要把九张碎片抠图&#xff0c;背景变透明&#xff0c;ps可以但是太麻烦&#xf…