https://www.coze.cn/s/iUeCReKg/
我们认为,O1的思想在于:在训练方法已经几乎成为范式的今天,把计算资源更多的向推理倾斜,可以得到更好的效果。
而所谓的Q*或者蒙特卡洛搜索只是一种计算的方法,并不是O1的唯一实现。
我们认为,应该有一种更加简明、更加端到端的方法,可以更好地指导模型,实现规划和反思。
(现在开源的单模型推理方案,在我们看来只是带反思的cot模型而已,由于没有外部信息的接入,所以很容易陷入自身的逻辑缺陷里造成死循环)
我们认为可以从顶层设计的角度更好的解决这一问题。
所以,我们将prm模型和蒙特卡洛搜索的功能(任务规划、模型执行和批评反馈)分离开,形成三大组件:
规划器(负责任务步骤规划)执行器(执行任务步骤)批评器(反思与批评执行过程)
这种分离架构能够更好地避免单模型推理中可能出现的死循环问题,同时为任务规划提供更清晰、反馈更明确的语义指导。
这种设计不仅可以避免传统单一模型推理中的陷入陷阱,还能使得每个组件的功能更加专注、模块化。此外,该架构便于工程实现,所有使用的技术都已成熟,并且支持LoRA进行训练,从而减少对大规模推理模型的依赖(一个主模型多个LoRA插件同时推理)。
graph TD
用户query[用户query] --> 规划器_0[规划器:规划解题步骤]
规划器_0 --> 执行器[执行器:执行当前步骤]
执行器 --> 批评器[批评器:对当前现状,包括从现在看之前执行的步骤的反思和批评]
批评器 --> 规划器_1[规划器:根据批评和执行现状,重新给出任务规划,及回溯]
规划器_1 --> 执行器[执行器:执行当前步骤]
(当然,这种分离的架构使得就算想继续用蒙特卡洛搜索也是可以的)
此外,这种架构的工程实现较为简便,既能利用现有技术栈,又能通过LoRA训练优化各个模型,从而对推理过程更加友好。
未来,可以将规划器视作路由,决定一些简单的题目可以直接返回主模型的回答,从而避免了规划、反思的巨额计算开销。
37 commits
Jupyter Notebook
79.5%
Python
20.5%
https://www.coze.cn/s/iUeCReKg/
我们认为,O1的思想在于:在训练方法已经几乎成为范式的今天,把计算资源更多的向推理倾斜,可以得到更好的效果。
而所谓的Q*或者蒙特卡洛搜索只是一种计算的方法,并不是O1的唯一实现。
我们认为,应该有一种更加简明、更加端到端的方法,可以更好地指导模型,实现规划和反思。
(现在开源的单模型推理方案,在我们看来只是带反思的cot模型而已,由于没有外部信息的接入,所以很容易陷入自身的逻辑缺陷里造成死循环)
我们认为可以从顶层设计的角度更好的解决这一问题。
所以,我们将prm模型和蒙特卡洛搜索的功能(任务规划、模型执行和批评反馈)分离开,形成三大组件:
规划器(负责任务步骤规划)执行器(执行任务步骤)批评器(反思与批评执行过程)
这种分离架构能够更好地避免单模型推理中可能出现的死循环问题,同时为任务规划提供更清晰、反馈更明确的语义指导。
这种设计不仅可以避免传统单一模型推理中的陷入陷阱,还能使得每个组件的功能更加专注、模块化。此外,该架构便于工程实现,所有使用的技术都已成熟,并且支持LoRA进行训练,从而减少对大规模推理模型的依赖(一个主模型多个LoRA插件同时推理)。
graph TD
用户query[用户query] --> 规划器_0[规划器:规划解题步骤]
规划器_0 --> 执行器[执行器:执行当前步骤]
执行器 --> 批评器[批评器:对当前现状,包括从现在看之前执行的步骤的反思和批评]
批评器 --> 规划器_1[规划器:根据批评和执行现状,重新给出任务规划,及回溯]
规划器_1 --> 执行器[执行器:执行当前步骤]
(当然,这种分离的架构使得就算想继续用蒙特卡洛搜索也是可以的)
此外,这种架构的工程实现较为简便,既能利用现有技术栈,又能通过LoRA训练优化各个模型,从而对推理过程更加友好。
未来,可以将规划器视作路由,决定一些简单的题目可以直接返回主模型的回答,从而避免了规划、反思的巨额计算开销。
37 commits
Jupyter Notebook
79.5%
Python
20.5%