机器学习: 阿里巴巴发布基于:蒙特卡洛的应用Marco-o1

本人项目地址大全:Victor94-king/NLP__ManVictor: CSDN of ManVictor

git地址:https://github.com/opendatalab/MinerU


写在前面: 笔者更新不易,希望走过路过点个关注和赞,笔芯!!!

写在前面: 笔者更新不易,希望走过路过点个关注和赞,笔芯!!!

写在前面: 笔者更新不易,希望走过路过点个关注和赞,笔芯!!!



阿里巴巴发布了Marco-o1!!!

Marco-o1通过集成 思维链(CoT)微调蒙特卡洛树搜索(MCTS )和创新的 推理行动策略 ,增强了推理能力。Marco-o1的MCTS集成允许扩展解空间,并对不同行动粒度(步骤和迷你步骤)的实验显示了更细搜索分辨率在提高准确性方面的潜力。此方法在推理任务中展示了显著改进,并在翻译复杂俚语表达方面取得了成功。

图片

第一步:开发Marco-o1-CoT模型

数据集

Marco-o1-CoT使用了多种数据集进行监督微调(Supervised Fine-Tuning, SFT),包括:

  • Open-o1 CoT数据集(过滤后) :从Open-o1项目中获取了CoT数据集,并通过启发式和质量过滤过程对其进行了优化,以确保数据的高质量和结构化推理步骤的有效性。
  • Marco-o1 CoT数据集(合成) :使用蒙特卡洛树搜索(MCTS)生成了合成CoT数据集,帮助制定复杂的推理路径,进一步增强了模型的推理能力。
  • Marco指令数据集 :在执行复杂任务时,强大的指令跟随能力至关重要,因此整合了一组指令跟随数据,确保模型在广泛任务中保持其通用有效性。

全参数微调

使用上述数据集对基础模型(如Owen2-7B-Instruct)进行了全参数微调。具体步骤如下:

  1. 数据预处理 :将所有数据集合并,并进行预处理,确保数据格式一致。
  2. 模型初始化 :使用预训练的基础模型(如Owen2-7B-Instruct)进行初始化。
  3. 微调过程 :在合并后的数据集上进行全参数微调,使模型学习如何生成结构化推理步骤。

第二步:集成MCTS和推理行动策略

通过MCTS扩展解空间

蒙特卡洛树搜索(Monte Carlo Tree Search, MCTS)是一种用于决策过程的搜索算法,特别适用于那些状态空间巨大且难以通过传统搜索方法(如深度优先搜索或广度优先搜索)进行有效探索的问题。在Marco-o1模型中,作者将MCTS集成到大型语言模型(LLM)中,以增强其推理能力并扩展解空间。

MCTS的基本概念

MCTS的核心思想是 通过模拟(simulation)来评估和选择最有前途的行动路径 。它包括四个主要步骤:选择(Selection)、扩展(Expansion)、模拟(Simulation)和反向传播(Backpropagation)。

  • 选择(Selection) :从根节点开始,根据某种策略选择一个子节点,直到到达一个未完全扩展的节点。
  • 扩展(Expansion) :在未完全扩展的节点上添加一个或多个子节点。
  • 模拟(Simulation) :从新扩展的节点开始,进行一次或多次模拟,直到达到终止状态。
  • 反向传播(Backpropagation) :将模拟结果(如奖励)反向传播回根节点,更新路径上所有节点的统计信息。
MCTS在Marco-o1中的应用
  • 节点作为推理状态: 在MCTS框架中,每个节点代表问题解决过程中的一个推理状态。例如,在解决一个数学问题时,每个节点可能代表一个中间步骤或一个子问题的解决方案。
  • 行动作为LLM输出: 从一个节点出发的可能行动是由LLM生成的输出。这些输出代表了推理链中的潜在步骤或迷你步骤。例如,在解决一个复杂的逻辑问题时,LLM可能会生成多个可能的推理步骤,每个步骤对应一个行动。
  • 回滚和奖励计算: 在回滚阶段,LLM继续推理过程直到达到终端状态。终端状态可以是问题的最终答案,也可以是一个中间状态,其中LLM无法继续推理。在每个终端状态,计算一个奖励分数,用于评估该推理路径的质量。

奖励分数的计算方法如下:

置信度分数 :对于回滚期间生成的每个token ,我们通过将softmax函数应用于其log概率和前5个替代token的log概率来计算其置信度分数。公式如下:

其中, 是第 个token的置信度分数, 是LLM生成的第 个token的log概率, 是前5个预测token的log概率。

平均置信度分数 :在获得回滚序列中所有token的置信度分数后,我们计算这些分数的平均值,作为该回滚路径的总体奖励分数。公式如下:

其中, 是总体奖励分数, 是回滚序列中的token总数。

指导MCTS

奖励分数 用于评估和选择MCTS中的有前途路径,有效指导搜索朝着更有信心和可靠的推理链。通过这种方式,MCTS能够探索大量可能的推理路径,并选择那些最有可能导致正确答案的路径。

通过将LLM与MCTS集成,显著扩展了模型的解空间。具体来说,MCTS允许模型在多个推理路径之间进行探索,并根据置信度分数选择最优路径。这种方法不仅提高了模型在复杂问题上的表现,还使其能够处理那些缺乏明确标准和难以量化奖励的开放式问题。

推理行动策略

推理行动策略是Marco-o1模型中的一个关键组成部分,旨在通过优化推理过程中的行动选择来提高模型的推理能力和准确性。推理行动策略涉及在蒙特卡洛树搜索(MCTS)框架内探索不同的行动粒度,并引入反思机制,以增强模型在复杂问题上的表现。以下是详细介绍:

行动选择

在MCTS中,行动选择是一个关键步骤,决定了模型如何探索解空间。使用行动作为MCTS搜索的粒度相对较粗,常常导致模型忽略解决复杂问题所需的细微推理路径。为了解决这个问题,文章中探索了MCTS搜索中的不同粒度级别。

步骤作为行动:

如果每个MCTS节点代表一个完整的思维或行动标签。这种方法可以高效探索,但可能会错过复杂问题解决所需的更细粒度的推理路径。

迷你步骤作为行动:

为了进一步扩展模型的搜索空间并增强其问题解决能力,文章尝试将这些步骤细分为更小的单位,称为“迷你步骤”。具体来说,将步骤细分为64或32个token的迷你步骤。这种更细的粒度允许模型更详细地探索推理路径。

  • 64个token的迷你步骤 :将每个推理步骤细分为64个token的迷你步骤,允许模型在更细的粒度上进行搜索。
  • 32个token的迷你步骤 :将每个推理步骤细分为32个token的迷你步骤,进一步增加搜索的粒度。

虽然token级别的搜索理论上提供了最大的灵活性和粒度,但由于所需的计算资源巨大和设计有效奖励模型的挑战,目前尚不切实际。

反思机制

在推理过程中,模型可能会在某些步骤上犯错,导致最终答案不正确。为了解决这个问题,引入了一种反思机制,提示模型在每个思维过程的末尾进行自我反思,并重新评估其推理步骤。

反思提示: 即在每个思维过程的末尾添加短语“Wait! Maybe I made some mistakes! I need to rethink from scratch.”,提示模型自我反思并重新评估其推理步骤。这种反思机制显著改善了模型在最初错误解决的难题上的表现。

自我批评: 从自我批评的角度来看,这种方法允许模型充当自己的批评者,识别其推理中的潜在错误。通过明确提示模型质疑其初步结论,鼓励其重新表达和改进其思维过程。这种自我批评机制利用了模型检测自身输出中不一致或错误的能力,从而导致更准确和可靠的问题解决。

实验结果

1. 数据集和模型配置

在以下两个数据集上测试Marco-o1模型的表现:

  • MGSM(英语)数据集 :用于评估模型在英语推理任务上的表现。
  • MGSM(中文)数据集 :用于评估模型在中文推理任务上的表现。

测试的模型配置:

  • Owen2-7B-Instruct :作为基础模型进行对比。
  • Marco-o1-CoT :通过思维链(CoT)微调后的模型。
  • Marco-o1-MCTS(步骤) :使用每个推理步骤作为行动的MCTS增强模型。
  • Marco-o1-MCTS(64个token的迷你步骤) :使用64个token的迷你步骤作为行动的MCTS增强模型。
  • Marco-o1-MCTS(32个token的迷你步骤) :使用32个token的迷你步骤作为行动的MCTS增强模型。
2. 实验结果

在MGSM(英语)数据集上,各模型的准确性结果如下:

模型MGSM-En (Acc.)
Owen2-7B-Instruct84.23%
Marco-o1-CoT85.60%
Marco-o1-MCTS(步骤)90.40%
Marco-o1-MCTS(64个token的迷你步骤)88.40%
Marco-o1-MCTS(32个token的迷你步骤)87.60%

结果表明:

  • Marco-o1-CoT相对于Owen2-7B-Instruct有所提升,准确性提高了+1.37%。
  • Marco-o1-MCTS(步骤) 表现最佳,准确性提高了+6.17%。
  • Marco-o1-MCTS(64个token的迷你步骤)Marco-o1-MCTS(32个token的迷你步骤) 也表现良好,但略低于步骤级别的MCTS。

在MGSM(中文)数据集上,各模型的准确性结果如下:

模型MGSM-Zh (Acc.)
Owen2-7B-Instruct76.80%
Marco-o1-CoT71.20%
Marco-o1-MCTS(步骤)80.00%
Marco-o1-MCTS(64个token的迷你步骤)80.40%
Marco-o1-MCTS(32个token的迷你步骤)82.40%

结果表明:

  • Marco-o1-CoT相对于Owen2-7B-Instruct有所下降,准确性降低了-5.60%。这可能是由于用于微调的CoT数据主要是英语,未能有效转移到中文数据集。
  • Marco-o1-MCTS(步骤)Marco-o1-MCTS(64个token的迷你步骤)Marco-o1-MCTS(32个token的迷你步骤) 均表现良好,准确性分别提高了+3.20%、+3.60%和+5.60%。
  • Marco-o1-MCTS(32个token的迷你步骤) 表现最佳,准确性提高了+5.60%。

为了展示Marco-o1模型在翻译任务中的能力,比较了其在翻译俚语和口语表达方面的表现与Google Translate。具体案例包括:

  • 案例1 :将中文俚语“这双鞋有踩屎感”翻译为英语“This shoe has a comfortable sole”。
  • 案例2 :将中文表达“美到我心巴上了,上身真的很韩,穿上软乎乎毛茸茸的厚度也刚好,里面搭配了打底衫,小特别且日常的穿搭”翻译为英语“It’s so beautiful that it’s captivating, the upper part has a distinctly Korean style, the soft and fluffy material is perfectly thick, and it’s complemented by a base layer, creating a unique and everyday-wear outfit”。
  • 案例3 :将中文表达“太太太太好看了!而且价格这么便宜,超级板正不卷边,都买它,买它”翻译为英语“It’s so beautiful! And it’s so cheap, super straight and doesn’t curl. Buy it, buy it!”。

这些案例展示了Marco-o1在处理复杂翻译任务,特别是俚语和口语语言方面的先进理解和推理能力,优于标准翻译工具如Google Translate。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

数据结构(Java版)第五期:ArrayList与顺序表(下)

目录 一、用数组实现顺序表 一、用数组实现顺序表 我们提到过,顺序表是基于数组的封装,这次我们以int为例,用数组去实现一个顺序表。 public class MyArrayList {private int[] arr;public MyArrayList(int capacity){//指定初始容量arr n…

YonBuilder移动开发鸿蒙版本编译教程

0.YonBuilder移动开发应用详情页访问路径 登录用友开发者中心,鼠标悬浮右上角昵称处,点击「工作台」进入「开发者中心工作台」 「开发者中心工作台」页面点击左侧竖直菜单面板中「移动应用开发」后,选择右侧页面内的目标应用,即可…

kafka进阶_3.消费消息

文章目录 一、消费消息概览1.1、基本代码1.2、消费过程 二、消费者组2.1、push & pull2.2、消费者组 三、调度器Coordinator四、消费者分配策略五、偏移量offset5.1、起始偏移量5.2、指定偏移量消费5.3、偏移量提交5.3.1、自动提交5.3.2、手动提交 5.4、偏移量的保存 六、消…

(笔记,自己可见_1)简单了解ZYNQ

1、zynq首先是一个片上操作系统(Soc),结合了arm(PS)和fpga(PL)两部分组成 Zynq系统主要由两部分组成:PS(Processing System)和PL(Programmable L…

c语言的qsort函数理解与使用

介绍:qsort 函数是 C 标准库中用于排序的快速排序算法函数。它的用法非常灵活,可以对任意类型的元素进行排序,只要提供了比较函数即可。 qsort 函数原型及参数解释: void qsort ( void* base, //指向要排序的数组的首元素…

【淘汰9成NLP面试者的高频面题】LSTM中的tanh和sigmoid分别用在什么地方?为什么?

博客主页: [青松] 本文专栏: NLP 大模型百面百过 【淘汰9成NLP面试者的高频面题】LSTM中的tanh和sigmoid分别用在什么地方?为什么? 重要性:★★★ 💯 本题主要考察面试者对以下问题的理解: ① 数据特征和模…

JWT加解密应用方案设计与实现

为什么要用令牌技术? 这个问题其实问的就是Cookice、Session、Token(令牌)之间的区别了。 首先,存放的位置做一下比较,Cookice小饼干存放在客户端的浏览器当中,Session会话存放在服务器线程当中(本质上还是需要利用Cookice实现)…

数据集-目标检测系列- 安全背心 检测数据集 safety_vests >> DataBall

数据集-目标检测系列- 安全背心 检测数据集 safety DataBall 助力快速掌握数据集的信息和使用方式,会员享有 百种数据集,持续增加中。 贵在坚持! 数据样例项目地址: * 相关项目 1)数据集可视化项目:gi…

C语言菜鸟入门·关键字·int的用法

目录 1. int关键字 1.1 取值范围 1.2 符号类型 1.3 运算 1.3.1 加法运算() 1.3.2 减法运算(-) 1.3.3 乘法运算(*) 1.3.4 除法运算(/) 1.3.5 取余运算(%) 1.3.6 自增()与自减(--) 1.3.7 位运算 2. 更多关键字 1. int关键字 int 是一个关键字&#xff0…

unity中:超低入门级显卡、集显(功耗30W以下)运行unity URP管线输出的webgl程序有那些地方可以大幅优化帧率

删除Global Volume: 删除Global Volume是一项简单且高效的优化措施。实测表明,这一改动可以显著提升帧率,甚至能够将原本无法流畅运行的场景变得可用。 更改前的效果: 更改后的效果: 优化阴影和材质: …

Vue + Websocket播放PCM(base64转ArrayBuffer、 字符串转ArrayBuffer)

文章目录 引言I 音视频处理相关概念和APIII 案例:基于开源库 pcm-player方式播放借助MediaSource和Audio对象播放音频流。基于原生api AudioContext 播放操作III 格式转换js字符串转ArrayBufferbase64 转 ArrayBufferIV 解决pcm-player分片播放问题引言 需求: 基于webscoket传…

【JavaEE进阶】SpringBoot 快速上⼿

了解Maven,并配置国内源 使⽤SpringBoot创建⼀个项⽬, 输出HelloWorld 一、Maven 1.什么是Maven 官⽅对于Maven的描述: Apache Maven is a software project management and comprehension tool. Based on the concept of a project object model (POM), Maven can man…

QT QFormLayout控件 全面详解

本系列文章全面的介绍了QT中的57种控件的使用方法以及示例,包括 Button(PushButton、toolButton、radioButton、checkBox、commandLinkButton、buttonBox)、Layouts(verticalLayout、horizontalLayout、gridLayout、formLayout)、Spacers(verticalSpacer、horizonta…

PCA算法所体现的核心数学思维

一、PCA算法的基本思想 PCA算法的核心思想是通过线性变换,将数据从原始的高维空间投影到低维空间,同时尽可能保留数据的主要变异性。这种变换是通过找到一组新的坐标轴(即主成分)来实现的,这些坐标轴是原始数据空间的…

如何解决pdf.js跨域从url动态加载pdf文档

摘要 当我们想用PDF.js从URL加载文档时,将会因遇到跨域问题而中断,且是因为会触发了PDF.js和浏览器的双重CORS block,这篇文章将会介绍:①如何禁用pdf.js的跨域?②如何绕过浏览器的CORS加载URL文件?②如何使…

C语言数据结构——详细讲解 双链表

从单链表到双链表:数据结构的演进与优化 前言一、单链表回顾二、单链表的局限性三、什么是双链表四、双链表的优势1.双向遍历2.不带头双链表的用途3.带头双链表的用途 五、双链表的操作双链表的插入操作(一)双链表的尾插操作(二&a…

Java小白成长记(创作笔记二)

目录 序言 思维导图 续 用户登录/注册 数据表 实体层 持久层 服务层 认证与授权 整合springsecurity controller注册测试 controller登录测试 跨域解决 方法 Java小白成长记(创作笔记一) Java小白成长记(创作笔记二)…

案例研究|阿特斯的JumpServer分布式部署和多组织管理实践

苏州阿特斯阳光电力科技有限公司(以下简称为阿特斯)是一家集太阳能光伏组件制造和为全球客户提供太阳能应用产品研发、设计、制造、销售的专业公司。 阿特斯集团总部位于加拿大,中国区总部位于江苏省苏州市。通过全球战略和多元化的市场布局…

20241123-四元数高阶奇异值分解-(1)

四元数高阶奇异值分解及其在彩色图像处理中的应用-(1) 📔 声明 🇨🇳 : 1️⃣ 📃 原文网址链接: 四元数高阶奇异值分解及其在彩色图像处理中的应用 - ScienceDirect 🔗 Quaternion … image processing (arxiv.org) ​ …

游戏引擎学习第20天

视频参考:https://www.bilibili.com/video/BV1VkBCYmExt 解释 off-by-one 错误 从演讲者的视角:对代码问题的剖析与修复过程 问题的起因 演讲者提到,他可能无意中在代码中造成了一个错误,这与“调试时间标记索引”有关。他发现了一个逻辑问题…