微信扫码
与创始人交个朋友
我要投稿
最近,o1模型因在特定任务上的亮眼表现,引发了一阵狂热的追捧,甚至被一些过于乐观的研究者冠以"LLM新范式"的美誉。倒不是已经出现了数个可以复刻o1模型的prompt方法,但我们应该冷静下来,仔细思考一下:o1模型真的值得如此高的评价吗?虽然之前我一直不看好o1模型,可以看下《别吹了,OpenAI-o1绝没吹的那么神,用斯坦福的这条Prompt,一样实现说话之前先思考》,当然,现在依然如此。
一片喧嚣中,清华大学的研究团队悄然推出了一个真正具有潜力的框架——思维图(Diagram of Thought, DoT)。与其说o1模型是LLM的新范式,不如说DoT才是真正值得我们关注的突破。论文不过7页,但这个框架不仅巧妙地整合了现有LLM推理技术的精华,更是通过拓扑理论(Topos Theory)为其奠定了坚实的数学基础,堪称LLM推理能力的集大成之作,也展现了独特的数学之美。文末,我用这支图形范式之矛刺向了昨天幻觉无解的虚空之盾。
传统的思维链(Chain-of-Thought, CoT)方法虽然让LLM能够"思考",但其线性结构难以捕捉人类推理的复杂性。思维树(Tree-of-Thought, ToT)和思维图(Graph-of-Thought, GoT)试图通过引入分支结构来探索多条推理路径,但往往需要外部控制机制或多个模型协作,增加了实现和部署的复杂性。
DoT框架的独特之处在于,它将整个推理过程建模为单个LLM内部的有向无环图(DAG)(在LLM领域DAG是一个你一定需要理解的概念)构建过程。这种方法不仅捕捉了推理的非线性和迭代特性,还保持了计算效率。通过使用自回归的下一个标记预测和角色特定标记,DoT实现了模型内部角色转换和推理步骤的无缝管理,大大简化了实现过程。
有向无环图(DAG,全称 Directed Acyclic Graph)是一种图形结构,它由一组顶点和一组有向边组成。DAG的特性是图中不存在从某个顶点出发沿着有向边最终又回到该顶点的环路,也就是说,DAG是无环的。
DAG结构可以帮助模型规划任务或子任务之间的依赖关系,确保任务能够按顺序进行,而不会因为循环依赖导致逻辑错误。
当处理复杂的推理链时,DAG可以用来描述推理步骤的层次关系,避免混乱和冲突,确保模型在没有环路的情况下有效执行推理任务。
生成回答时,如果LLM根据不同的信息源或上下文来做出决策,DAG可以用于记录这些信息源的依赖关系,方便模型理解决策过程。
对于LLM,在某些情况下,多个任务可以并行执行,而不需要等待其他任务完成。通过DAG,模型可以有效划分哪些任务可以并行运行,优化处理速度。
DoT框架在单个LLM内部管理三个关键角色,使用自回归下一个标记预测和角色特定标记:
1. 提议者(<proposer>):生成命题或推理步骤,向DAG添加新节点。
2. 批评者(<critic>):评估命题,识别错误、不一致或逻辑谬误,添加批评节点。
3. 总结者(<summarizer>):将验证过的命题综合为连贯的思维链,本质上是对DAG进行拓扑排序,产生最终的推理输出。
这些角色通过特殊标记在模型输出中得以区分。LLM在生成过程中可以无缝切换角色,利用其自回归能力根据上下文预测下一个标记。
为了更好地理解这些角色如何在DoT框架中协同工作,让我们参考下图"思维图:迭代推理的有向无环图":
1. 问题陈述:图的顶部代表了推理过程的起点,这通常由提议者角色初始化。
2. 命题生成:提议者生成初始命题P1(图中的虚线圆圈)。这体现了提议者在推理过程开始时的关键作用。
3. 批评与修正:批评者角色登场,对命题P1进行评估,产生批评C1。这一步骤在图中表现为从P1到C1的箭头。基于这个批评,提议者再次发挥作用,生成改进的命题P1'。
4. 迭代改进:P1'再次受到批评C2的评估。这个过程可能会重复多次,展示了提议者和批评者角色之间的持续互动,直到得到一个验证通过的命题(图中的"P1' (Verified)")。
5. 并行推理路径:DoT框架的灵活性体现在它能够同时探索多条推理路径。例如,图中的命题P3代表了另一条推理路径,它也经历了类似的批评和验证过程。
6. 验证与总结:当多个命题被验证通过后(如P1' (Verified)和P3 (Verified)),总结者角色开始发挥作用。在图的底部,我们看到这些验证过的命题汇聚到总结阶段。
7. 无效命题的处理:图中的虚线圆圈代表被判定为无效的命题。这些命题不会进入最终的总结阶段,体现了批评者角色在保证推理质量方面的重要性。
8. 最终总结:所有验证通过的命题最终都会被总结者整合,形成完整的推理链。这在图中表现为最底部的"Summarization"节点。
通过这种结构化的角色分工和推理流程,DoT框架能够在单个LLM内部管理复杂的推理过程。它不仅允许多条并行的推理路径,还通过迭代的批评和改进过程确保了推理的质量。这种方法极大地增强了模型处理复杂问题的能力,同时保持了推理过程的透明度和可解释性。
这种设计使得DoT框架能够处理更复杂、更抽象的问题,远远超出了简单的线性思维链所能达到的深度和广度。通过自回归预测机制,模型能够在不同角色之间无缝切换,实现了一个高度动态和适应性强的推理系统。
DoT的推理过程可以概括为以下步骤:
1. 提议者提出一个命题,在DAG中添加一个节点。
2. 批评者评估该命题,要么验证它,要么提供批评。如果提供批评,会添加一个新节点,并在命题和批评之间建立边。
3. 基于批评,提议者生成一个改进的命题,在DAG中表示为一个新节点。
4. 这个循环重复进行,直到命题被验证。
5. 一旦建立了足够的有效命题,总结者综合推理,对DAG进行拓扑排序,产生连贯的思维链。
这个迭代过程模仿了人类的问题解决方式,假设被提出、评估和修正。通过让模型接触正确和错误的推理,DoT允许LLM从错误中学习,随时间改进其推理。
还是最近最火热的两道题,研究者给出了测试结果:
DoT框架的一个重要创新在于其坚实的数学基础。研究团队利用拓扑理论,特别是范畴论中的Topos理论,为DoT提供了形式化的数学描述。这不仅确保了推理过程的逻辑一致性和可靠性,还为设计下一代专门用于推理的模型提供了理论指导。
Topos理论与DoT的形式化
Topos是一种特殊的范畴,它具有类似于集合范畴的行为,但具有支持内部逻辑的额外结构。在DoT框架中,命题、推理和批评都在topos E的内部语言中表示:
- 每个命题被建模为终端对象的子对象P↪1_E,表示命题成立的条件。
- 命题间的逻辑关系和推理被描述为E中的态射。从命题P到命题Q的边对应于态射f:P → Q,表示在内部逻辑中P逻辑蕴含Q。
- 批评被表示为到子对象分类器的态射,c_P:P → Ω,为命题赋予真值并评估其有效性。
- 基于批评对命题的改进被建模为态射r:P → P',表示原始命题的转换或修正。
迭代推理、余极限和PreNet范畴
DoT中迭代推理的累积和动态性质通过余极限和PreNet范畴的概念捕捉。在topos E中的图,表示为函子D:J → E,模拟了推理过程中构建的DAG,其中J是反映DAG结构的索引范畴。
图D的余极限,记为lim→ D,将所有命题、批评、改进和推理聚合into E中的一个连贯对象。这种聚合对应于DoT中的累积推理过程,确保所有有效的推理步骤都被纳入最终结论。
PreNet范畴进一步generalize了Petri网,允许建模并发和顺序过程。在PreNet范畴C中,对象表示推理过程中的状态或命题,态射表示命题之间的转换或推理步骤。
通过在PreNet范畴中建模推理过程,我们可以表示命题和推理的DAG,其中索引范畴J对应于DAG的结构。PreNet范畴C中的余极限lim→D表示推理过程的终点,将所有命题和推理聚合到一个最终状态。
这种方法与DoT中推理的累积性质相一致,每一步都建立在前面的基础上,同时也建模了并发的推理路径。PreNet结构捕捉了推理过程的顺序和并行方面,反映了DoT框架的灵活性和深度。
DoT的实现
DoT框架的实现涉及两个关键阶段:训练和推理。
训练过程
训练DoT模型涉及将训练样例格式化为DoT结构,包括角色特定标记和DAG表示。模型学会基于上下文线索识别和生成适合每个角色的内容。具体步骤包括:
1. 数据准备:将现有的推理数据集转换为DoT格式,包括命题、批评和总结。
2. 角色标记插入:在训练数据中插入<proposer>、<critic>和<summarizer>等角色标记。
3. DAG结构嵌入:将推理过程表示为DAG,并将其编码到训练数据中。
4. 损失函数设计:设计特殊的损失函数,不仅考虑最终答案的准确性,还考虑推理过程的质量。
5. 迭代训练:通过多轮训练,让模型逐步学习角色转换和DAG构建。
推理过程
在推理阶段,模型通过预测下一个标记来生成命题、批评和总结,由角色特定标记引导。这允许在单个模型内无缝转换角色和构建推理DAG。具体步骤如下:
1. 初始化:给定一个问题或任务,模型以<proposer>标记开始。
2. 命题生成:模型生成初始命题,直到遇到<critic>标记。
3. 批评评估:模型切换到批评者角色,评估命题并提供反馈。
4. 迭代改进:基于批评,模型返回到提议者角色(<proposer>),生成改进的命题。
5. 验证循环:步骤3和4重复,直到命题被验证或达到预定义的迭代次数。
6. 总结:当足够的有效命题被建立,模型切换到总结者角色(<summarizer>),综合推理过程。
通过这种方式,DoT实现了在单个LLM内部进行复杂的推理过程,无需外部控制或多模型协作。我们可以把这个方法写成system prompt应用于各个方面,比如处理一下上一篇文章《实锤,我崩溃了,LLM根本无法100%根除幻觉》里的难题:
以上测试,您可以在各种模型里进行生成比对。
对于正在开发AI产品的Prompt工程师,DoT框架提供了几个关键的启示:
1. 图式思维:考虑将复杂任务分解为DAG结构,而不是简单的线性序列。这可能涉及设计一系列相互关联的prompt,每个prompt对应DAG中的一个节点,这要比单一线性更为精准。
2. 角色转换:在prompt设计中纳入不同的"角色",如提议者、批评者和总结者。这可以通过在prompt中明确指定这些角色来实现,例如:"作为一个提议者,请..."或"现在,作为一个批评者,评估上述提议..."
3. 迭代改进:设计允许模型反思和改进其输出的prompt。这可能涉及多轮对话,其中每一轮都基于前一轮的批评进行改进。
4. 逻辑一致性:利用DoT的理论基础,设计能够保持逻辑一致性的prompt。这可能包括要求模型明确陈述其假设和推理步骤。
5. 可解释性增强:设计prompt以生成清晰的推理轨迹,可能包括要求模型提供其思考过程的可视化表示。
LLM时代,真正的范式应该深藏在你的心里,而不是被任何模型困住。相信我,别再被忽悠,用好Prompt足以让你屹立于你的知识领域。
虽然o1模型在某些方面表现出色,但DoT的综合性和理论基础使其更有可能成为LLM推理的新范式。与其盲目追捧o1模型,不如将目光投向DoT这样真正具有变革潜力的研究。让我们正视现实:o1模型虽然在某些特定任务上表现出色,但它本质上仍然是对现有技术的改进,而非真正的范式转换。相比之下,DoT框架代表了一种全新的思维范式,它挑战了我们对LLM能力的固有认知,展示了一个更加灵活、可靠且具有数学美感的推理框架。
53AI,企业落地应用大模型首选服务商
产品:大模型应用平台+智能体定制开发+落地咨询服务
承诺:先做场景POC验证,看到效果再签署服务协议。零风险落地应用大模型,已交付160+中大型企业
2024-05-28
2024-04-26
2024-04-11
2024-08-21
2024-07-09
2024-07-18
2024-08-13
2024-10-25
2024-07-01
2024-06-17