推广 热搜: 使用  page  音视频  选择  搜索引擎  百度  企业  可以  个数  父亲 

阿里AI团队开源:探索面向开放型问题的推理大模型 Marco-o1

   日期:2024-12-29     作者:94enq    caijiyuan   评论:0    移动:http://ww.kub2b.com/mobile/news/14422.html
核心提示:最近已有不少大厂停止秋招宣讲,准备计划准备春招吧。 节前,我们邀请了一些互联网大厂朋友、今年参加社招和校招面

最近已有不少大厂停止秋招宣讲,准备计划准备春招吧。

节前,我们邀请了一些互联网大厂朋友、今年参加社招和校招面试的同学。

针对新手如何入门算法岗、该如何准备面试攻略、面试常考点、大模型技术趋势、算法项目落地经验分享等热门话题进行了深入的讨论。

总结链接如下

《大模型面试宝典》(2024版) 发布

喜欢本文记得收藏、关注、点赞。


Marco-o1模型特色有

1. 使用了超长CoT数据进行微调 通过self-play+MCTS构建了一批具备反思、改正能力的超长CoT数据。结合其他开源数据一同训练了Marco-o1-CoT。

2. 使用MCTS扩展解空间 在推理阶段,通过使用MCTS+reward引导模型(Marco-o1-MCTS)扩大解空间,输出更优秀的结果。

3. 细粒度解空间扩展 考虑到step级别依然具备较大的搜索细粒度,研究团队进一步的定义了mini-Step来进一步的扩大整个模型的解空间,引导并扩大模型(Marco-o1-MCTS mini-Step)具备输出更优秀答案的可能性。

4. 在翻译任务中应用 此外,研究团队创新地使用大型推理模型(LRM)到翻译任务中,这对于一些长难句翻译具有良好的效果。也是第一次将Inference time scaling应用到机器翻译任务中。

5. 开源 研究团队开源了部分CoT数据与目前最好的模型,稍晚些研究团队还会开源更多的数据与模型。

模型会对response做更深入的思考,比如下图中,对于单词‘strawberry’中有多少个r,模型在输出中逐步拆解单词中的每一个字母并且比较,在输出最终结果之前对之前的所有步骤进行确认,最终正确的输出了‘The answer is 3’。

另一个翻译的case。在机器翻译领域,如何处理例如‘踩屎感’、‘光腿神器’等这种国内特色表达方式一直是一个难点。通过这样一条推理链路,模型正确的识别了踩屎感这个难点,逐词翻译,解决了整体的翻译准确性,也在一定程度上防止了漏翻的出现。

此外,研究团队还在其他领域进行了尝试,证明了该模型具备一定的解决其他通用现实问题的能力。

整体方法

Marco-o1的整体结构如下,研究团队通过self-play+MCTS构建了一批具备反思、改正能力的超长CoT数据,结合其他开源数据一同训练了Marco-o1-CoT。考虑到模型整体的指令遵循能力十分重要,研究团队还融入了MarcoPolo家族的一些指令遵循数据集,整体模型指令遵循能力得到了显著的提升。

数据构造

研究团队使用self-play的形式,引导模型进行例如计划、执行、反思、纠错、输出答案等行为(Action as a Action),并使用MCTS进行搜索,当模型输出答案时,给予答案一个reward来更新这条MCTS搜索树上的V和N,也就是rollout。

具体来说,研究团队尝试了使用在初始prompt中引导模型执行例如计划、反思、纠错等行为。研究团队发现这对于一些较大模型(例如GPT4o、Qwen72B等)由于整体出色的模型能力和指令遵循能力,模型可以很好地完成既定指令。同时,研究团队还尝试了7B甚至1.5B模型的输出。模型也基本能够遵循设计好的PATTERN进行输出,经过MCTS的选择后,整体的输出基本满足了要求。

这里给出了一个早期版本的prompt供大家参考

 

同时,研究团队还在MCTS搜索的中间引入了一些关键句进一步引导模型动作。比如在某个具体行为的搜索后主动拼接一些特征词,例如Wait! Maybe这类句子或者短语,强化模型对于例如标签的理解以及约束后续行为。

另外,研究团队认为模型的指令遵循能力对于o1来说依然重要(比如告诉模型你的计算预算,你需要在多少个token内输出答案,这对于简单问题的快速输出具有现实意义,因此研究团队还添加了指令遵循数据集强化指令遵循能力,还添加了少量常规sft数据作为playback使用。这部分数据直接使用MarcoPolo系列的数据集。

除此之外,MCTS进行数据搜索整体上的效率较低,成本较大,因此研究团队还对开源数据(例如Open O1)进行了清洗过滤。这些过滤包括启发式和llm as judge等,过滤掉一些低质量以及对模型没有帮助的数据。

这三组数据的混合构成了第一版Marco-o1的训练数据。由于时间关系,研究团队并没有进行特别细致的消融实验。不过研究团队人工对MCTS输出的数据进行了细致筛查,整体质量较高,研究团队相信会显著提升模型相关性能的。

最后,研究团队观察到实际上OpenAI o1的行为不止这几个,如何找到并设计这些行为是一个很大的挑战,并且为这些行为的行为树设计也是一个挑战(比如不可以直接)。有一些信息表明OpenAI为o1设计了数千个规则来引导模型进行搜索,这也会是研究团队后续的一个方向。

逻辑推理

推理阶段,研究团队设计了一个基于模型prob的reward来引导MCTS的搜索。但是研究团队观察到使用Action作为MCTS搜索细粒度是较粗的,往往导致较难搜索出正确答案——这一步在数据构造阶段影响有限,因为数据构造阶段是有ground truth信号作为引导的,但是推理阶段使用经过特殊设计的porb影响是显著的。因此研究团队进一步拆解了MCTS的搜索粒度,设计了3种粒度。

一种是类似于Verify Step by Step的以Step为单位进行搜索,每一个MCTS节点内为一句话(或者一个Action标签,此外,研究团队还特别的对Step也进行了拆分,称之为mini-Step,也就是固定每64/32个token为一个”step“,进一步扩大模型的搜索空间。

研究团队也发现,基于prob的reward设计具备较多局限性,研究团队观察到Llama-o1的基于prob的reward设计似乎是一个更优秀的方案。后续研究团队将持续探索其他reward设计以及Reward Model的训练与开源。

对于reward设计的更详细的说明欢迎移步Github。

结果展示

Marco-o1-CoT模型相比baseline有了一定的提升。其中mgsm-zh的性能下降是由于使用了中文CoT进行推理——研究团队认为推理路径遵循源语言是更容易被使用者所理解的。但是训练数据中中文CoT数据极少,这可能导致了性能下降。不过这部分性能下降在之后的MCTS搜索中得到了恢复。

在使用mini-Step进一步扩大解空间后,观察到了性能有一些波动。经过观察整个搜索树的结果,研究团队发现这主要是由于使用的reward计算方案导致的搜索路径选择错误。正如之前所说的,研究团队认为使用mini-Step继续扩大模型的解空间是有实际意义的,因此后续将使用更优秀的reward或者Reward Model来引导MCTS的搜索。

左侧为step level的MCTS,结果错误。右侧为mini-Step 32的MCTS,可以看到在value increase 150%后出现了错误。step level较难避免这类错误,而mini-Step的可以通过下一次搜索在一定程度上规避这一问题。

使用方法

推理代码

 

Ollama直接运行

该模型也可以使用ModelScope上的GGUF版本直接运行

  1. 设置ollama下启用
 
  1. 通过 ollama run命令直接运行macro-o1模型的GGUF版本
 
  1. Ollama运行示例

更多通过Ollama直接运行ModelScope上任意GGUF模型的方法,可以参考文档

https://www.modelscope.cn/docs/models/advanced-usage/ollama-integration

本文介绍使用ms-swift对macro-o1进行微调。swift是魔搭社区官方提供的LLM与MLLM微调框架,支持400+大语言模型和100+多模态大模型的微调到部署。

在开始微调之前,请确保您的环境已正确安装ms-swift

 

首先下载macro-o1的demo数据集

https://github.com/AIDC-AI/Marco-o1/blob/main/data/CoT_demo.json

 

然后在swift/llm/data中的dataset_info.json中增加以下内容,对数据集进行注册

自定义数据集的文档可以查看

https://github.com/modelscope/ms-swift/blob/main/docs/source/Instruction/%E8%87%AA%E5%AE%9A%E4%B9%89%E4%B8%8E%E6%8B%93%E5%B1%95.md

 

运行以下微调脚本,即可开启微调

 

显存占用

本文地址:http://ww.kub2b.com/news/14422.html     企库往 http://ww.kub2b.com/ ,  查看更多

特别提示:本信息由相关用户自行提供,真实性未证实,仅供参考。请谨慎采用,风险自负。

 
 
更多>同类最新文章
0相关评论

文章列表
相关文章
最新动态
推荐图文
最新文章
点击排行
网站首页  |  关于我们  |  联系方式  |  使用协议  |  版权隐私  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  网站留言  |  RSS订阅  |  违规举报  |  鄂ICP备2020018471号