【通俗解读】Division of Thoughts (DoT):让大模型学会“运筹帷幄”,小模型负
TimFan
编辑于 2026年02月08日 00:54
收录于文集
共2篇
生成式AI

一句话总结:DoT (Division of Thoughts) 让大模型(LLM)负责“思考与规划”,让小模型(SLM)负责“具体执行”。


1. 为什么需要 DoT?一个通俗的类比

想象一下,你是一家上市公司的 CEO 如果公司接到一个复杂的项目,比如:开发一款新游戏,你会怎么做?

  • 做法 A(传统大模型模式) 你作为 CEO,亲自去写每一行代码、亲自画每一张原画、亲自做每一个测试。 结果可能是:你累死了(算力消耗大),工资还要得高(成本高),而且因为你太忙了,项目进度很慢(延迟高)。

  • 做法 B(DoT 模式) 你作为 CEO,只负责制定计划:“我们要分三步走:1.设计玩法,2.开发引擎,3.美术制作”。 然后,你找来几个实习生或专员(小模型),把具体任务分给他们:“小王你负责写代码,小李你负责画画”。 你只做最核心的决策(大模型只用在刀刃上),具体累活由便宜高效的员工完成(小模型执行),甚至他们可以同时开工(并行处理)。

这就是 Division of Thoughts (DoT) 的核心理念。

Division-of-Thoughts 论文地址:https://arxiv.org/abs/2502.04392 原文代码:https://github.com/tsinghua-fib-lab/DoT

2. DoT 的三大核心法宝

参考原始论文,DoT 的工作流程可以拆解为三个关键步骤:

第一步:运筹帷幄 —— 任务分解 (Task Decomposition)

角色:Planner (规划者,通常由大模型担任,如例子里的 GLM-4.7)

面对用户的一个复杂问题(比如“帮我策划一个纪念日晚餐并计算预算”),Planner 不会急着回答,而是先把它拆解成一张流程图(DAG)

  • Demo 代码逻辑

代码块
Python
自动换行
复制代码
# 在我们的 demo 中,Planner 会输出这样的结构:
[
    {"id": 1, "desc": "确定菜谱", "deps": []},
    {"id": 2, "desc": "查询食材价格", "deps": [1]}, # 依赖步骤1
    {"id": 3, "desc": "计算总预算", "deps": [2]}   # 依赖步骤2
]
复制成功
  • 关键点:它不仅拆分任务,还搞清楚了依赖关系。哪一步要先做,哪一步可以同时做,安排得明明白白。

第二步:知人善任 —— 模型分配 (Model Allocation / Adapter)

角色:Adapter (HR 经理)

任务拆好了,该派谁去干活呢?这就是 Adapter 的工作。它会评估每个子任务的难度

  • 简单任务(如“提取关键词”、“简单格式化”):派 小模型(Executor Small,如 GLM-4.5-Flash)去干。便宜、速度快!

  • 困难任务(如“逻辑推理”、“代码架构设计”):派 大模型(Executor Large,如 GLM-4.7)去干。虽然贵点,但保证质量。

  • Demo 实现 我们在 Demo 中实现了一个 adapter_allocate 函数,让大模型充当 HR,给每个步骤打标 SMALL 或 LARGE来分别处理。

第三步:按部就班 —— 拓扑执行 (Topology Execution)

角色:Executor (执行者,主要是小模型)

各个模型按照计划开工!这里有一个非常精妙的设计叫 “上下文剪枝 (Context Pruning)”

  • 传统模式:做第 5 步的时候,要把第 1,2,3,4 步的所有废话都看一遍,但实际上容易分心,干扰多,而且浪费脑子(就是Token 很贵的)。

  • DoT 模式:做第 5 步时,只看它依赖的第 3 步的结果。不相关的信息一律屏蔽。

  • Demo 的代码逻辑

代码块
Python
自动换行
复制代码
# 只加载依赖项的上下文if deps:
    relevant_context += "【前置依赖结果】:\n"
    for dep_id in deps:
         # 只取相关结果,屏蔽无关步骤
        relevant_context += f"- 步骤 {dep_id} 结果: ...\n"
复制成功

3. 原始论文 vs. 极简 Demo:我们还原了什么?

我们在 src/dot_demo.py 中实现了一个微缩版的 DoT 系统。虽然麻雀虽小,但五脏俱全:

特性原始论文 (Full DoT)我们的极简 Demo思考大脑GPT-4 / Claude 3 OpusGLM-4.7 (智谱)执行手脚Llama-3-8B / GPT-3.5GLM-4.5-Flash (智谱)任务编排复杂的图算法,支持真并行模拟的 DAG 逻辑,顺序执行但带逻辑依赖模型路由专门训练的分类器模型基于 LLM Prompt 的动态判断

我们在 Demo 中成功复现了一些简单例子:

  • 逻辑推理题(谁是冠军):Planner 敏锐地发现了“乙和丁说的话矛盾”这一关键逻辑点,指导 Executor 进行排查,而不是让 Executor 瞎猜。

  • 结构化写作(三词造句):Planner 像导演一样规划了分镜头(第一段写冰箱,第二段写大象…),Executor 只需要按剧本填空,生成的内容结构非常严谨。

我们的Division of Thoughts (DoT) 极简演示的 Demo代码地址:

https://gitee.com/TimVanX/bits_and_stardust/blob/master/01_AI%E4%B8%8E%E7%AE%97%E6%B3%95/02_%E8%AE%BA%E6%96%87%E8%A7%A3%E8%AF%BBDoT%20%28Division%20of%20Thoughts%29/dot_demo.ipynb

4. 总结

DoT (Division of Thoughts) 告诉我们:不要试图用一个模型解决所有问题。

  • 大模型 负责“想”(Planning),它拥有宏观视野和逻辑深度。

  • 小模型 负责“做”(Execution),它专注、高效、成本低。

通过这种分工协作,我们不仅能把 AI 的使用成本打下来,还能让它处理更长、更复杂的任务链条,这就是DoT (Division of Thoughts) 的思想。