Journey Training:o1的一次复现尝试,极长思维链的合成

devtools/2024/10/18 18:31:18/

知乎:啦啦啦啦(已授权)
链接:https://zhuanlan.zhihu.com/p/902522340

30973c57885716b6c72d2f8c4cd147fb.jpeg

论文:O1 Replication Journey: A Strategic Progress Report
链接:https://github.com/GAIR-NLP/O1-Journey

这篇论文记录了一次o1复现尝试,用的方法是自己提出的Journey Training。在此之前,先看作者给出的最终结果:931ddf881bf69f704450f6c51f43dc64.pngSFT-phase2-journeyLearining 比一般的SFT(即SFT-phase2-shortcutLearning)性能高8%左右。

SFT-Journey Training 基本做法

先用模型M对327个已知答案的样本进行极长COT思维链的构造。构造过程就是运用常规的树搜索,树分岔的方式是按推理步骤分叉。搜到一些正确路径,例如

question->step0->step1->....->step6->right_answer (这类样本叫shotcut)

还有错误路径,例如

question->step0'->step1'->....->step6'->wrong_answer

极长思维链等于

"question->step0'->step1'->....->step6'->wrong_answer"+ "emmm, 好像不太对,我想一下" + "step0->step1->....->step6->right_answer"

构造完毕。这个样本就叫journey。同一个样本,错误COT路径的数量可以任意多(上面例子只有一个),串联在一起,只要中间加上伪思考语句过渡就好(这种过渡语句由GPT4o润色,比如 “emm,不太对,我看一下”, 哈哈)。正确路径和错误路径并不是毫无关系,错误路径是沿着搜好的正确路径伪造的,还用了深度优先搜索,所以整个journey描述的其实是一次成功的、裁剪过(不然错误路径太多)的深度优先搜索的伪历史。

实验

作者用上面模型M构造的327个极长思维链数据,对模型M进行SFT。为了对比,同时用对应的327个常规短思维链数据(shotcut),对模型进行SFT。发现前者比后者提升了8%正确率。

个人看法

我觉得是不是应该再做个实验对比:把正确答案的shotcut和错误答案的shotcut进行DPO(图1的DPO指的不是这个意思)。以此证明Journey Training比一般的强化学习DPO效果好?

而且,一般认为这样的正样本和错样本拼接在一起或者类似的自我纠错路径直接进行sft,会导致模型崩溃?即模型只学会正确答案,不会有太多自我反思能力的提升。这个问题可以下载这篇论文的原文看一下

https://zhuanlan.zhihu.com/p/843436108


备注:昵称-学校/公司-方向/会议(eg.ACL),进入技术/投稿群

14898ac063fb0e50ef73d23ad906e274.png

id:DLNLPer,记得备注呦


http://www.ppmy.cn/devtools/125121.html

相关文章

Halcon模板匹配

create_shape_model_xld(Contours : : NumLevels, AngleStart, AngleExtent, AngleStep, Optimization, Metric, MinContrast : ModelID) NumLevels:金字塔的层数,可以设置为"auto"或0-10的整数。层数越大,匹配所需时间…

企业水、电、气、热等能耗数据采集系统

介绍 通过物联网技术,采集企业水、电、气、热等能耗数据,帮企业建立能源管理体系,找到跑冒滴漏,从而为企业节能提供依据。 进一步为企业实现碳跟踪、碳盘查、碳交易、谈汇报的全生命过程。 为中国碳达峰-碳中和做出贡献。 针对客…

C++ AVLTree

目录 1. AVLTree的定义 2. 平衡因子 3. AVLTree的基础接口 插入 旋转 左单旋: 右单旋: 双旋: 4. AVLTree的测试 5. 小结 1. AVLTree的定义 二叉搜索树(BST)虽可以缩短查找的效率,但 如果数据有序…

Leetcode 在排序数组中查找元素的第一个和最后一个位置

这段代码的目的是在一个有序的数组中查找目标元素的第一个和最后一个位置。如果目标元素不存在,返回 [-1, -1]。算法要求时间复杂度为 O(log n),所以使用了二分查找的思想。 主要思路: 使用两次二分查找: 第一次二分查找用于找到…

解决雪花ID在前端精度丢失问题

解决雪花ID在前端精度丢失问题 在现代分布式系统中,雪花算法(Snowflake)被广泛用于生成唯一的ID。这些ID通常是Long类型的整数。然而,当这些ID从后端传递到前端时,JavaScript的精度限制可能会导致精度丢失&#xff0c…

计算机等级考试——二级MSOffice高级应用考试常用函数

二级MSOffice高级应用考试常用函数 使用说明:本文共介绍了在二级 MSOffice 高级应用考试过程中考到的 6 类共 51 个函数,在学习过程建议打开Excel 工作表【公式】-【函数库】,边操作边学习,更易于理解中每个函数参数意义。 一、 …

教程:宏基因组数据分析教程

Orchestrating Microbiome Analysis Orchestrating Microbiome Analysis是一套包含宏基因组各种数据分析的教程,非常安利大家学习。 16S-analysis 16S-analysis是一本用于扩增子16s等微生物数据分析的教程,很适合新手入门学习。 Introduction to micro…

vue跨标签页通信(或跨窗口)详细教程

在 Vue 应用中,跨标签页(或跨窗口)的通信通常涉及到两个或多个浏览器标签页之间的信息共享。由于每个标签页或窗口都是独立的 JavaScript 执行环境,它们不能直接通过 Vue 或其他 JavaScript 库来直接相互通信。但是,有一些方法可以实现这种跨标签页的通信,主要依靠浏览器…