OpenAI的O1模型由于其在解决复杂问题方面的高级功能而引起了大型推理模型(LRMS)领域的极大兴奋。 Marco-o1emerges以此为基础,是一种新的LRM,不仅强调了传统学科,例如数学和编码,而且还优先考虑各个领域的开放式问题解决问题。 Marco-O1的一个重点是探索O1模型可以将其推理能力推广到缺乏明确标准和可量化奖励的领域的程度。这种探索对于理解LRM在常规指标可能不适用的现实情况下的潜在应用至关重要,从而突破了这些模型可以实现的目标。
本文作为数据科学博客马拉松的一部分发表。
Marco-O1是由阿里巴巴国际数字商务的Marcopolo团队开发的高级推理模型,旨在解决开放式解决问题的任务。
它是建立在QWEN2架构的基础上的,并采用了精致的思想链(COT)微调和蒙蒙特山carlo树搜索(MCTS)技术来增强其推理能力
通过微调QWEN2-7B教学,结合了过滤的Open-O1 COT数据集,MARCO-O1 COT数据集和Marco-O1指令数据集,Marco-O1改善了其对复杂任务的处理。
下图显示了MARCO-01的推理过程,详细说明了Open-01 COT和MARCO-01 COT等数据集的使用。该过程涉及选择提示路径,执行MCT并应用监督的微调以提高准确性。这导致了以信心得分的最终答案产生的。
这重点介绍了使AI模型能够处理复杂任务的复杂方法,例如通过多个步骤推理,优化决策并纳入不确定性以获得更准确的预测和响应。
MCT用于通过随机抽样探索所有可能的答案来确定用户查询的最佳答案。如上图所示,在MCT中,选择了Nodeserpresent不同的推理路径和黄色nodessepsecte,以进一步探索。绿色nodesmermentent的最终答案,而诸如“选择”和“备份”之类的箭头显示系统如何评估和完善选择。
系统使用概率(如公式中显示)生成答案以完善最终输出后,该系统计算一个置信得分。
该模型可以在两个级别上工作 - 广泛的推理(步骤级别)和多步推理(迷你步骤级别)。
在MCT搜索中探索了不同级别的粒度。为了扩大模型的搜索空间并增强其解决问题的功能,将步骤分为64或32个令牌的较小单位,称为“迷你步骤”。这种较细的粒度使该模型可以更详细地探索推理路径。
模型中存在反射机制,通过添加短语“等待!也许我犯了一些错误!我需要从头开始重新考虑。”在每个思考过程结束时。这促使模型自我反射并重新评估其推理步骤。这种反思对模型产生了重大改进,尤其是在原始模型最初错误地解决的困难问题上。
Marco-O1对于:
Llama 3.2型号包括专为移动和边缘设备设计的10亿(1B)和30亿(3B)参数文本模型,重点介绍了诸如摘要和说明之类的应用程序的有效性能。
Llama 3.2在公开可用的来源中预估计了9万亿立克,并结合了来自较大模型(例如Llama 3.1)的知识蒸馏技术,以增强性能,同时保持较小的尺寸。
Llama 3.2 3B在特定领域,特别是在推理任务中表现出色。在ARC挑战赛中,它的得分达到78.6,超过了Gemma的76.7,而刚刚落后于Phi-3.5-Mini,得分为87.4。同样,在Hellawag基准中,美洲驼3.2 3B得分69.8,表现优于Gemma,并与Phi保持竞争力。
因此,在下一个实施Python实施中,我们对两个模型的基于推理的问题进行了比较评估-Marco-O1和Llama 3.2 3B。这种比较评估主要是为了检查Marco-O1的输出是否在基于推理的问题中确实表现出色。
Ollama是一种高级AI工具,允许用户在本地(以CPU和GPU模式)轻松设置和运行大型语言模型。我们将在以下步骤中探索如何使用Ollama在Google Colab上运行这些模型。
下面我们将安装所有需要的库:
!sudo apt更新 !sudo apt安装-y pciutils !PIP安装Langchain-ollama !curl -fssl https://ollama.com/install.sh | sh !PIP安装Ollama == 0.4.2
在此步骤中,我们设置了线程,以允许Ollama在Google Colab上有效运行。线程可以并行执行任务,确保表现顺畅,并且不延迟处理更快的处理。该设置对于在Colab环境中无缝进行资源密集型操作至关重要。
导入线程 导入子过程 进口时间 def run_ollama_serve(): subproces.popen([“ ollama”,“ serve”]) 线程=线程。 thread.start() 时间。
!ollama拉动marco-o1
我们可以使用相同的代码通过用Llama3.2替换Marco-O1来拉动Llama3.2模型。
此步骤涉及将查询发送到模型以根据输入获得响应或见解。它有助于与模型进行互动,例如生成文本或回答问题。
来自langchain_core.prompts导入chatprompttemplate 来自langchain_ollama.llms导入ollamallm 来自ipython.display导入降价 template =“”“问题:{问题}”“” 提示= chatprompttemplate.from_template(模板) 型号= ollamallm(model =“ marco-o1”) 链=提示|模型 #准备调用输入 input_data = { “问题”:'我有2个苹果,然后我再买2个。我用2个苹果烤馅饼。吃了一半的馅饼后,我剩下几个苹果?} #使用输入数据调用链,并以降价格式显示响应 响应=链。Invoke(input_data) 显示(Markdown(响应))
在本节中,我们将比较Marco-O1和Llama 3.2的输出,并强调它们在处理复杂的推理任务和实时应用方面的优势和差异。通过检查他们的响应,我们可以更好地了解每个模型如何解决问题并适应不同用例。
“我有2个苹果,然后再购买2个苹果。我用2个苹果烤馅饼。进食后<br>一半的馅饼我剩下几个苹果?”
两种模型都提供了准确的响应,但是与Llama 3.2相比,Marco-O1提供了更详细的解释。
“草莓有多少r?”
从上面的输出可以看出,Llama 3.2模型的响应不准确,而MARCO-O1模型的响应准确。
“三角形的区域是10个单位和5个单位的高度?”
从上面的输出可以看出,这两个模型都给出了准确的响应,但是与Llama 3.2相比,Marco-O1模型的响应更为解释。
“如果一辆汽车的价格为20,000美元,并且每年折旧1,000美元,那将是多少<br>三年后值得吗?”
从上面的输出可以看出,这两个模型都给出了准确的响应,但是与Llama 3.2相比,Marco-O1模型的响应更为解释。
“所有鸟都可以飞。企鹅是鸟类。企鹅可以飞吗?”
从上面的输出中可以看出,即使两个模型都提供了准确的响应,Marco-O1模型的响应是更加解释的,并且可以详尽地提出大量参数和两次检查以得出答案,而与Llama 3.2相比。
“奥利弗(Oliver)在星期五选择44猕猴桃,然后在周六58次。周日,他在周五选择了他的两倍,但其中五个小于平均水平。奥利弗有几个猕猴桃?”
从上面的输出中可以看出,即使两个模型都提供了准确的响应,Llama 3.2的响应与其他信息相混淆(但其中五个小于平均水平)是不准确的,因此从实际答案中减去5。但是,MARCO-O1的输出是准确的,并提供了详细的解释。
约翰对花生过敏。他吃了一个花生酱三明治,感觉很好。什么<br> 我们可以就约翰的过敏得出结论吗?”
从Marco-O1模型的响应中可以看出,这是很多解释和详尽的提出的论点和双重检查以得出答案的。 Llama 3.2的反应似乎并没有完全准确,因为“他只是胃部不适或对花生酱的不耐受”的信息不准确,并且与查询中给出的信息不准确。
任务 | MARCO-O1性能 | 骆驼3.2(3B型)性能 | 优胜者 |
---|---|---|---|
任务1:逻辑推理 | 准确地说明 | 准确但详细 | Marco-O1 |
任务2:草莓测试 | 准确的 | 不准确 | Marco-O1 |
任务3:几何推理 | 准确地说明 | 准确但详细 | Marco-O1 |
任务4:逐步推理 | 准确地说明 | 准确但详细 | Marco-O1 |
任务5:有歧义的三段论 | 精确的解释和双重检查 | 准确但详细 | Marco-O1 |
任务6:脆弱的数学上下文 | 准确地说明 | 不准确(被其他信息混淆) | Marco-O1 |
任务7:矛盾的信息 | 精确的解释和双重检查 | 不准确(提供矛盾的信息) | Marco-O1 |
MARCO-O1模型代表了AI处理复杂推理任务的能力的重大进步,尤其是通过其创新的蒙特卡洛树搜索和经过经过经过经过经过经验的精细调整的精细调整。它在数学,物理和多语言任务等各个领域的多功能性使其与传统模型不同。同时,Llama 3.2模型为边缘设备提供了有效的性能,在诸如摘要和跟随指令之类的任务中都表现出色。这两种模型都展示了AI的持续发展,每个模型都在自己的领域中脱颖而出,并共同强调了先进语言模型在解决现实世界中的巨大潜力。
A. Marco-O1根据手头任务的复杂性来调整其推理策略,将挑战分解为可管理的步骤,并使用Monte Carlo Tree搜索探索各种解决方案路径,以找到最佳方法。
Q2。蒙特卡洛树搜索(MCT)如何增强MARCO-O1的推理能力?A. MCT使Marco-O1能够探索给定问题的多个潜在解决方案,从而通过随机抽样选择最有希望的路径,从而更准确,更有效地解决问题。
Q3。 MARCO-O1的反射机制的目的是什么?答:反射机制允许Marco-O1在每个过程结束时重新评估其推理步骤,从而帮助模型提高准确性并完善其答案,尤其是对于高度复杂的查询。
Q4。 Marco-O1和Llama 3.2如何在处理复杂的推理任务方面进行比较?A. Marco-O1专门用于使用高级技术等高级技术来应对复杂的推理任务。 Llama 3.2在移动和边缘设备上具有高效的实时应用程序,具有扩展上下文处理。
Q5。 Llama 3.2模型的轻量级设计的意义是什么?答:Llama 3.2的轻巧设计使其非常适合在移动设备和边缘设备上部署,同时提供了处理各种任务(例如汇总和多语言交互)的能力。
本文所示的媒体不由Analytics Vidhya拥有,并由作者酌情使用。
以上是Marco-O1 vs Llama 3.2:哪个更好?的详细内容。更多信息请关注PHP中文网其他相关文章!