全新Tree-of-Thoughts多分支推理代理发布,束搜索与启发式剪枝显著提升LLM推理效率
•0 阅读•3分钟•开源
Tree-of-ThoughtsFLAN-T5Beam Search24游戏Heuristic Scoring
•0 阅读•3分钟•开源
背景介绍
随着大语言模型(LLM)在复杂推理任务上的表现日益突显,单一路径的 Chain‑of‑Thought(CoT)已难以满足搜索空间巨大的场景。Tree‑of‑Thoughts(ToT)通过构建分支树结构,让模型在多个候选路径上并行探索,并通过评分机制挑选最有前景的分支。MarkTechPost 本文提供了一个完整的 ToT 实现,并以经典的 24 游戏作为基准,演示了多分支搜索的实际效果。
核心技术
- 模型选型:基于 Google 开源的
flan-t5-base,利用其 Seq2Seq 能力生成候选操作。 - 树结构:
Node数据类记录当前数字集合、表达式、深度、评分等信息,支持回溯重建完整推理链。 - 束搜索 (Beam Search):每轮保留
beam_width条最优分支,显著降低搜索成本。 - 启发式评分:
通过距离目标值 24 的误差、深度惩罚以及是否已达成目标三项综合评估。
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 - 深度限制剪枝:设置
max_depth与prune_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,欢迎社区贡献改进。
本文是对第三方新闻源的主观解读。消息可能出现过时、不准确、歧义或错误的地方,仅供参考使用。点击此处查看消息源。