技术上,如何复现 o1?

news2024/9/19 21:32:21

图片

知乎:周舒畅
链接:https://zhuanlan.zhihu.com/p/720127190

基础模型

搞 o1 首先需要一个基模,这个基模必须是:

  1. 能进行“长”生成。注意这和“长 context”不是一回事。模型生成的结果,经常会有自激的噪声存在,或分布逐渐变得非常 sharp,从而导致模型生成内容的后半段质量下降。比如写小说时会“烂尾”,用大团圆草草收场。在多模生成模型上也很容易观察到这一现象,表现为生成的音频和视频在结尾处要么糊掉要么变成静音静止。

  2. 有较强的抗噪能力。目前看来,这一点刚需大模型,比如万亿的 step2 就是比千亿的 step1 好。小模型容易被 context 里的一点点错误带偏。考虑到 CoT 就是个 trial-and-error 的过程,要能从鱼龙混杂的 context 里筛出有用信息往下走,需要一个充分训练的大模型。

数据

数据上,如果起手式是模仿学习(SFT),需要至少是起动量的规划数据:

  • 比如一个看起来能分解成步骤的题,可以由人类演示如何拆成哪几步。

  • 或者由模型按类似 ReAct / Reflection / RePlan 的方式 CoT,然后人类给过程打分。一个可能的捷径是构造 CoT 的 DPO 数据。

这里说是起动量,是因为这些数据生产困难,后面还是要靠 Self-Play 来起量。(现在有了 O1,有 GPT 帐号的厂又可以用 O1 来生成这个“起动量”的数据了)。

接下来 RL 部分需要大量的 Reward Model 数据(评论区说可能 O1 只用 RL)。考虑到 CoT 数据非常长,很难一上来就全对,所以大概率是个 PRM,相当于人类标出 CoT (可能是树型)的第一个出错点。

这里能从自动定理证明器(ATP)如 LEAN/Coq 借鉴的一招是“tactics”。比如 O1 会有意识地做简化(simpl)操作,也会设变量(intros)。如果实锤 O1 会数学归纳法(induction),那就真的很可能有一个把 ATP 产生的证明,按自然语言翻译成 CoT 数据的造数据路径。

算法

算法上,需要一个有数据效率(Data Efficient)的算法。应该是某种 MCTS(因为 o1 解得好的都是 verifier 容易的题)。这个在去年以来的各种 Q*-clone 探索中都有覆盖。这里麻烦的应该是系统和算法的配合,因为大规模推理造数据看来少不了。

o1-mini 的存在值得玩味。据说 o1-mini 数学甚至更强,但是推理会更“无理”。顺序上,是先有 o1-mini 还是先有 o1-preview?如果先有 o1-mini,那么可以用 o1-mini 大量的 roll 数据;如果先有 o1-preview,那么可以从 o1-preview 造大量数据去喂饱 o1-mini。或者是两者交替成为共轭师徒。

还有个简单的可能是 o1 训得慢,而 o1-mini 模型小训得快,先过完了数据放出来。。。

FAQ

Q:目前 o1 似乎主要展示了在解题时的强大能力。那么在其他方面,比如在多模态理解生成一体中,有什么应用?

A:o1 非常深刻地改变了 LLM,所有目前的 LLM 应用,只要存在一个基于或不基于 LLM 的 verifier,或者有约束要满足,都会受到断代式的影响。比如以前多模生成里,指令跟随一直是困难的问题,具体例子有生成 3D 资产需要的高一致性的多视角图,之前只能靠后挑生成。o1 则打开了模型反复修改“sketch”,来达到约束生成的可能。可以想象 o1 自言自语,然后在画布上这里一笔那里一笔涂涂抹抹的场面。

Q:对 AI 搜索和角色扮演有什么影响呢?

A:AI 搜索中,复杂的二次搜索(如读一篇论文时还参考参考文献)等,都是需要均衡每个动作成本收益,以及顾及当前时间预算的行为。o1 展现了这个潜力,并且箭在弦上(“o1-preview doesn't use tools yet, but support for function calling, code interpreter, and browsing is planned”)。

对于角色扮演来说,o1 提供了一个框架,让不烂尾,不无聊的生成成为可能。这几天多个测试表明,o1 是诗歌之类“戴着镣铐跳舞”式创作的大师。那么 AI 角色扮演需要的“乐而不淫”、“文似看山不喜平”、“草蛇灰线”对于 o1 来说,无非是一条条约束而已。“两句三年得,一吟双泪流。” 以后流的是电费的心痛的泪。

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

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

相关文章

Unity多国语言支持

Unity多国语言支持 项目在我的课程 ”淘金城堡“ 中应用 项目的地址:http://t.csdnimg.cn/m0hFd 一、基本概念 在Unity中加入多国语言的支持可以让我们发布的游戏或应用上线在拥有不同语言的国家或地区。 下面介绍一款Unity官方提供的插件“Localization package…

USB中的传输和事务

文章目录 一、USB中的四种事务1. **控制事务(Control Transaction)**2. **批量事务(Bulk Transaction)**3. **中断事务(Interrupt Transaction)**4. **等时事务(Isochronous Transaction&#x…

C++第五十弹---类型转换全解析:从静态到动态,一网打尽

✨个人主页: 熬夜学编程的小林 💗系列专栏: 【C语言详解】 【数据结构详解】【C详解】 目录 1. C语言中的类型转换 2. 为什么C需要四种类型转换 2.1、内置类型 -> 自定义类型 2.2、自定义类型 -> 内置类型 2.3、自定义类型 -&…

Suno新上线Covers翻唱新 - 实现音频风格任意转换

历史文章 Suno AI如何解决中文多音字的问题?耗费500积分,亲测有效 ,V4版本会不会直接支持呢? 上传音频,打造贴合您喜好的风格歌曲创作,这一波新玩法我打8分 Suno AI Noisee AI 做抖音冥想账号实操 音乐…

网络安全-利用 Apache Mod CGI

一、环境 蚁剑官网拉取 二、开始操作 蚁剑连接 一样终端命令不能执行 可以看到putenv已经禁用 我们开始一下,跳入一个新终端且可以执行命令 我们具体看一下干了什么事情 上传了一个htaccess这个文件的作用是让以后所有ant文件都以cgi去执行 三、总结 cgi文件可以…

【C++】C++的多态

目录 多态的使用 多态的概念 多态的定义和实现 虚函数 构成多态的条件 特殊情况:协变 析构函数的重写 怎么实现 为什么实现 override和final关键字 override final 重载/重写/隐藏的对比 纯虚函数和抽象类 纯虚函数 抽象类 多态的实现 虚函数表指针…

魔方财务安装指南

本文将详细介绍魔方财务的安装、升级和迁移过程,确保您能够顺利地部署和使用魔方财务系统。 服务器配置一览表 以下是魔方财务1.0.0及更高版本的最低和推荐系统要求: 需求名称推荐配置最低要求OSCentOS/Debian/UbuntuLinux(不要使用window…

IP协议及相关特性

IP协议负责地址管理和路由选择。它的组成为: 接下来我们将对其中较重要的部分进行介绍。 4位版本:这里的四位版本只有两个取值 分别为IPv4和IPv6,这两个额分别为不同的IP协议,但是现在主流的还是IPv4但是近年来IPv6在中国的普及率…

2022高教社杯全国大学生数学建模竞赛C题 问题一(1) Python代码演示

目录 问题 11.1 对这些玻璃文物的表面风化与其玻璃类型、纹饰和颜色的关系进行分析数据探索 -- 单个分类变量的绘图树形图条形图扇形图雷达图Cramer’s V 相关分析统计检验列联表分析卡方检验Fisher检验绘图堆积条形图分组条形图分类模型Logistic回归随机森林import matplotlib…

中秋之际,唱响工体!玛丽亚·凯莉2024演唱会北京站璀璨上演

续写传奇华章 启幕音乐盛典 中秋之际,全国数万乐迷翘首以待的音乐盛典如约而至。时隔多年,传奇天后玛丽亚凯莉惊艳开唱工体! 夜幕降临,圆月高悬,在不绝于耳的欢呼声中,玛丽亚凯莉以一袭流光溢彩的礼服优雅…

【LIO】FAST-LIO论文详解

FAST-LIO论文详解 1. 摘要2. 简介1. 相关工作A. LiDAR 里程计和地图绘制 2. 实现方法A. 基础知识1. 连续模型在这里插入图片描述 B. 激光雷达测量的预处理C. 状态估计1) 前向传播:2) 反向传播与运动补偿:3) 残差计算: 1. 摘要 提出了一种计算…

简单题21 - 合并两个有序链表(Java)20240917

问题描述: java代码: /*** Definition for singly-linked list.* public class ListNode {* int val;* ListNode next;* ListNode() {}* ListNode(int val) { this.val val; }* ListNode(int val, ListNode next) { this.val val…

Java 技巧 如何在IDEA2024 中快速打出System.out.println();

1.基本用法 键入sout回车 回车后变成: 2.打印变量 快速打印变量,以打印变量名为set为例,set.sout回车, 回车后变成

简单题26 - 删除有序数组中的重复项(Java)20240917

问题描述&#xff1a; java代码&#xff1a; class Solution {public int removeDuplicates(int[] nums) {if (nums.length 0) return 0; // 处理空数组情况int i 0; // 指向新数组中的最后一个不重复元素for (int j 1; j < nums.length; j) {if (nums[j] ! nums[i]) { …

室内灯具检测系统源码分享

室内灯具检测检测系统源码分享 [一条龙教学YOLOV8标注好的数据集一键训练_70全套改进创新点发刊_Web前端展示] 1.研究背景与意义 项目参考AAAI Association for the Advancement of Artificial Intelligence 项目来源AACV Association for the Advancement of Computer Vis…

从kaggle竞赛零基础上手CV实战(Deepfake检测)

关注B站可以观看更多实战教学视频&#xff1a;hallo128的个人空间 从kaggle竞赛零基础上手CV实战 从kaggle竞赛零基础上手CV实战&#xff08;Deepfake检测&#xff09; 目录 从kaggle竞赛零基础上手CV实战&#xff08;Deepfake检测&#xff09;背景介绍学习地址课程大纲课程特色…

方法引用(Java)

把已经有的方法拿过来用&#xff0c;当做函数式接口中抽象方法的方法体 1.引用处必须是函数式接口 2.被引用的方法必须已经存在 3.被引用的方法形参的返回值需要跟抽象方法保持一致 4.被引用方法的功能要满足当前需求 package function;import java.util.Arrays;public cl…

网络高级项目( 基于webserver的工业数据采集和控制项目)

目录 一、项目要求&#xff1a; 二、演示效果&#xff1a; 设备端&#xff1a; Modbus用户控制端&#xff1a; 服务器端&#xff1a; 网页端&#xff1a; 三、 项目代码&#xff1a; Modbus用户控制端代码&#xff1a; 服务器端代码&#xff1a; 网页端代码&#xff1…

C++3D迷宫

目录 开头程序程序的流程图程序游玩的效果下一篇博客要说的东西 开头 大家好&#xff0c;我叫这是我58。 程序 #include <iostream> using namespace std; void printmaze(char strmaze[5][5][5]) {cout << "-----" << endl;int i 0;int ia 0…

pdf去水印怎么去掉免费?6个pdf去除水印的方法快码住,超级好用!

pdf去水印怎么去掉免费&#xff1f;您是否有一些带有水印的pdf文档&#xff0c;让您感觉到头疼&#xff1f;您又是否希望能够去除这些水印&#xff0c;或者想用其他水印来替换现有的水印&#xff1f;如果是这样的话&#xff0c;我非常推荐您继续阅读本篇文章。本文将为您提供一…