全新Tree-of-Thoughts多分支推理代理发布,束搜索与启发式剪枝显著提升LLM推理效率

0 阅读3分钟开源

背景介绍

随着大语言模型(LLM)在复杂推理任务上的表现日益突显,单一路径的 Chain‑of‑Thought(CoT)已难以满足搜索空间巨大的场景。Tree‑of‑Thoughts(ToT)通过构建分支树结构,让模型在多个候选路径上并行探索,并通过评分机制挑选最有前景的分支。MarkTechPost 本文提供了一个完整的 ToT 实现,并以经典的 24 游戏作为基准,演示了多分支搜索的实际效果。

核心技术

  • 模型选型:基于 Google 开源的 flan-t5-base,利用其 Seq2Seq 能力生成候选操作。
  • 树结构Node 数据类记录当前数字集合、表达式、深度、评分等信息,支持回溯重建完整推理链。
  • 束搜索 (Beam Search):每轮保留 beam_width 条最优分支,显著降低搜索成本。
  • 启发式评分
    base = -one_step_closeness(nums)
    depth_penalty = 0.05 * node.depth
    exact_bonus = 2.0 if any(is_24(x) for x in nums) else 0.0
    score = base - depth_penalty + exact_bonus
    
    通过距离目标值 24 的误差、深度惩罚以及是否已达成目标三项综合评估。
  • 深度限制剪枝:设置 max_depthprune_threshold,在搜索超出深度或评分低于阈值时直接剔除,防止搜索爆炸。
  • LLM 提议器:构造明确的提示 PROPOSER_PROMPT,让模型返回 i,j,op 格式的候选合并操作;若模型输出不符合预期,则回退至基于算术运算的确定性策略。

实验与结果

在四组不同的数字组合上运行 ToT 框架(如 [4,1,8,7][3,3,8,8] 等),均在 3 层深度、束宽 12 的配置下成功找到 24 的解法。相比传统的线性 CoT,ToT 能在约 30% 的搜索步骤内收敛,且通过启发式评分显著提升了高质量分支的保留率。

示例输出

  • 起始状态:4 = 4 | 1 = 1 | 8 = 8 | 7 = 7
  • 第一次扩展后最佳分支:(8 * 3) = 24
  • 完整解法路径:8 * (4 - 1) = 24

影响与展望

该实现展示了将 LLM 与传统搜索算法深度融合的可行性,为后续的 数学推理、规划决策、符号求解 提供了通用框架。开发者只需替换状态表示与评分函数,即可将 ToT 扩展到更复杂的任务,如程序合成或知识图谱查询。未来可进一步引入 LLM‑critic 进行跨分支质量评估,或结合 GPU 加速 的并行搜索以提升大规模实验的吞吐量。


获取方式:完整代码已在 GitHub 开源,含详细 README 与可复现的 notebook,欢迎社区贡献改进。

本文是对第三方新闻源的主观解读。消息可能出现过时、不准确、歧义或错误的地方,仅供参考使用。点击此处查看消息源。