
大模型為什么連 24 點都算不對Tree of Thoughts 讓它學會「試錯和回頭」成功率從 4% 飆到 74%你讓 GPT-4 算一道 24 點用 4 個數字加減乘除湊出 24它大概率會卡殼。不是因為它不會算——459這種它門兒清。而是因為它太「一根筋」一旦第一步選錯了路它就一路錯到底永遠不會說「算了我換條路」。論文里有個扎心數字在 100 道高難度 24 點上標準推理方法CoT成功率只有4%。而給它加上一個叫Tree of Thoughts思維樹ToT的框架后——同一個 GPT-4成功率直接干到74%。差了快 20 倍。沒換模型沒加參數沒有微調。只是讓它學會了「試錯和回頭」。這篇是長文建議先點收藏慢慢看。我會從「為什么需要它」一直講到「它怎么落地、坑在哪、下一步是什么」爭取一篇講透。〇、先對齊背景CoT 和 SC 分別解決了什么要懂 ToT得先懂它的兩個前輩否則你會覺得 ToT 莫名其妙。CoT思維鏈Chain of Thought讓模型把推理寫成「一條線性鏈」——問題 → 步驟1 → 步驟2 → 步驟3 → 答案」。它把難預測的一步拆成一串易預測的小步。比如「小明買 3 斤蘋果每斤 12 元…」這類題CoT 已經能穩定答對。SC自一致性Self-Consistency同一個題用較高溫度采樣生成 N 條獨立的 CoT對最終答案做多數投票濾掉單條隨機錯誤。適合有標準答案、想用算力換穩的題如數學 GSM8K。它們共同的根本限制來自 ToT 論文Yao et al., 2023的原話語言模型在推理期仍然被限制在「token 級、從左到右」的決策過程里。這句話是理解全文的鑰匙。它帶來兩個死穴不可回溯某步寫錯錯誤一路帶到底無法回頭換路。無法前瞻/規劃面對「得先試幾步、發現走不通再換思路」的任務線性或平行鏈都無能為力。用兩個任務一對比就清楚了任務CoT / SC 表現原因小明買蘋果3×12?52×1255CoT 已能穩定答對單鏈線性推理足夠無需試錯Game of 24用 4 個數湊 24CoT 僅4%必須先「試運算、看是否走得通、不通就換」一句話定位ToT 把「推理」從「寫一條鏈」重新建模成「在一棵思維樹上做搜索」——可以生成多個分支、自評每個分支、前瞻與回溯。它是 CoT / SC 的自然推廣論文原文IO、CoT、CoT-SC、self-refine 都是 ToT 在「樹深/樹寬受限」時的特例。一、大模型為什么這么「一根筋」CoT 很強但天生死穴就是上面說的從左到右寫錯了就只能錯到底。于是有人想那讓它想 100 遍、投票決定呢論文也試了——想一遍CoT4%想 100 遍投票SC9%為什么沒救因為每一次「想」它都是一根筋往前沖。100 個一根筋的人沒有一個會中途回頭。多采樣只是在重復同一個不會回頭的錯誤。這就引出一個關鍵洞察24 點這種題難點根本不是「會不會算」而是「要不要試錯和回頭」——而這恰恰是 CoT/SC 最不會的東西。二、ToT 是什么把推理變成「在一棵樹上搜索」Tree of Thoughts 的思路特別像人解題不是「想出一條路」而是「同時想幾條路邊想邊判斷哪條靠譜走不通就換一條」。它把推理從「寫一條鏈」變成「在一棵思維樹上做搜索」。四個關鍵詞思維thought不是單個 token而是「一個有意義的中間步驟」——一步運算、一段話的提綱、填字的一個詞。樹tree同一狀態可以分出多個候選分支而不是一條道走到底。自評self-evaluate每個狀態都被打分決定保留還是剪掉。搜索search用 BFS / DFS 等算法在樹上導航。三者關系一句話CoT 是「想一條路」SC 是「想多條路再投票」ToT 是「想多條路、邊想邊判斷哪條靠譜、不通就回頭」。而且論文明確說CoT、SC 全是 ToT「縮水版」的特例。ToT 不是替代它們是它們的升級檔——按任務難度「升檔」使用。三、ToT 不是什么先破除 3 個誤解講原理前先排掉最容易踩的坑?不是新訓練了一個模型ToT完全不訓練無獎勵模型、無策略梯度、無微調跑的是凍結的預訓練 LM。?不是一句 prompt 就能觸發它是一套需要外部代碼控制器的推理期框架詳見第五節。?不是 CoT 的替代品它是 CoT 的推廣按任務難度升檔使用。這三點很重要因為網上很多「ToT prompt 模板」其實只是輕量變體后面第九節會講和論文里真正的框架是兩回事。四、內部機制4 個可插拔模塊ToT 是模塊化框架由 4 個組件構成。下面仍以 24 點貫穿講解。4.1 思維分解Thought Decomposition先決定「一個 thought 多大」這定義了搜索的狀態粒度。24 點每個 thought 一步運算如13?94狀態 當前剩下的數字集合。創意寫作每個 thought 一段提綱 / 一段正文。填字游戲每個 thought 填一個詞。4.2 候選生成Thought Generation給當前狀態用 LLM生成 k 個下一步候選 thought。論文用兩種策略策略做法特點Sample獨立采樣同一狀態獨立采樣 k 次彼此無關多樣性高Propose順序提議基于已有 thought 續寫下一個更連貫但更貴24 點每狀態生成 k 個候選運算論文約 k5。4.3 狀態評估State Evaluation★ 關鍵分水嶺這是 ToT 與 CoT / SC 最大的不同每個狀態都單獨被打分。兩種方式方式做法24 點用法Value打分讓 LLM 給狀態打 0–1 分few-shot—Vote投票讓 LLM 對多個狀態比較、選最優判斷「剩余數字能否湊出 24」標sure / maybe / impossible每狀態采樣 3 次取多數評估器通常就是 LLM 自己自洽地當裁判。4.4 搜索算法Search Algorithm按評估結果組織探索論文主推兩種BFS廣度優先每一層只保留top-b個最有希望的狀態逐層展開24 點用 BFSb5depth3。DFS深度優先沿一條分支深探走到死路impossible 或超步數就回溯到上層換分支填字游戲用 DFS。論文還提到 A* / MCTS 是更先進的未來方向。五、剪枝與回溯算法級真相最容易被誤讀的部分這是 ToT 真正的精髓也是最多人講錯的地方。我把「剪枝怎么剪、回溯怎么回」在算法層面拆開——它們不是模型「想通了往回走」而是搜索算法的顯式操作。5.1 剪枝Pruning剪枝 根據評估分數把不值得展開的狀態直接丟棄不再為它生成子節點。分類式評估狀態被貼impossible→ 立即剪掉連子節點都不生成。數值式評估打 0–1 分 → 按分數排序只保留最高的 b 個beam width b其余全丟。剪枝不刪除已生成的 token只是「不再繼續往下生成這條分支」。5.2 回溯Backtracking★ 破除最大誤區回溯不是把已生成的 token 撤銷、退回去重算Transformer 生成的 token 不可逆。ToT 的「回溯」是搜索控制流——當一條分支走死算法放棄它轉去處理 frontier待探索集合里另一條還活著的分支。每個節點 「到目前為止的 thought 序列」一個狀態。ToT 在內存維護一棵樹 一個待探索集合隊列 BFS / 棧 DFS。「回到 A2 / B 分支」 用 A2 或 B 的 thought 前綴新開一次 LLM 調用而不是把 A1 的 token 抹掉。樹是由很多次獨立調用拼出來的不是一次連續生成。5.3 BFS 版偽代碼frontier[初始狀態]# 第 0 層fordepthinrange(max_depth):next_frontier[]forstateinfrontier:childrengenerate_k(state)# 模塊2生成 k 個候選forcinchildren:c.scoreevaluate(c)# 模塊3狀態評估children.sort(byc.score,descTrue)next_frontierchildren[:b]# 剪枝只留分數最高的 b 個frontiernext_frontier# 被丟棄的 剪枝ifany(solved):returnsolution# 找到 24 就停returnNone這里「回溯」表現為A1 分支死掉后它根本沒進next_frontier算法自然去處理同層的 A2、B。沒有回退動作只是不追這條了。5.4 DFS 版偽代碼defdfs(state,depth):ifsolved(state):returnstate# 命中 24ifdepthmax_depth:returnNone# 超深死forcingenerate_k(state):c.scoreevaluate(c)ifc.scoreimpossible:continue# 剪枝跳過此子節點resdfs(c,depth1)# 深入下一層ifres:returnres# 下游找到了一路返回returnNone# 所有子節點都死 → 回溯到上層dfs(初始狀態,0)這里「回溯」是字面意義return None把調用棧彈回父節點父節點for循環continue試下一個子節點。5.5 回溯是「承重墻」消融證據論文做了去掉組件的消融實驗在填字游戲上去掉回溯退化為 b1 貪心 BFS詞級成功率從60% 跌到約 20%。這意味著回溯不是錦上添花而是 ToT 生效的關鍵機制。少了它整個方法塌房。六、實戰24 點完整走查題目用4、9、10、13四個數加減乘除各用一次湊出 24。規則每個數用一次thought 一步運算狀態 剩余數字集合。搜索樹綠色保留/求解紅色評估器剪枝{4, 9, 10, 13} / | | \ A:13-94 B:10-46 C:91019? D:4×936? {4,4,10} {6,9,13} (剪枝) (剪枝) / \ A1:10-46 A2:448 {4,6} {8,10} │ (無法湊24?) A1a:6×424 ?逐層走查思維分解切成「一步一運算」狀態 剩余數字集合。生成候選從根同時提 4 個第一步候選見上表C、D 被評估為impossible剪枝只留 A、B。沿 A 展開{4,4,10}生成 A110?46→{4,6}、A2448→{8,10}。A1 求解{4,6}→6×424 ?。完整路徑13?94→10?46→6×424。如果走錯了回溯演示假設 A1 沒成它的子節點全被剪算法從 frontier 取A2{8,10}或B{6,9,13}繼續——這就是「換分支」。CoT / SC 永遠沒有這一手。同題對比范式24 點表現原因CoT貪心~4%隨機選一條常是4×936死路一條、無法回頭SC多鏈投票~9%多條獨立鏈投票但每條鏈內部仍貪心規劃力有限ToT樹搜索~74%顯式剪枝 回溯七、ToT 是框架不是 prompt成本量化這一節很多教程會跳過但它決定了你能不能真用起來。CoT / SC 是「改 prompt 就能跑」ToT 不行它需要一個控制器循環維護狀態樹、反復調用 LLM、解析輸出成狀態、按評估分數決定展開/剪枝/回溯。成本論文數據24 點GPT-4每題約5.5k 補全 token約等于并行跑 100 次獨立 CoT 試錯的總量約 100 倍單次直答成本。實測約100 次 LLM 調用 / 題量級。比 SC 的「100 條獨立鏈」更省因為剪枝提前砍掉死路但遠高于單次 CoT。一句話ToT 用「算力換正確率」只在「值得試錯」的難題上劃算。八、評估器不可靠ToT 的致命弱點前面說評估器通常就是那個 LLM。如果它看走眼把本該保留的好分支誤判為impossible→ 錯剪把死路誤判為likely→ 浪費算力還走錯。這連回一個老問題模型自評不一定反映真實推理不忠實 CoT。解法用確定性 verifier 替代 / 補充。24 點里「剩余數字能否湊 24」其實可以寫段代碼確定性驗證不一定要 LLM 自評。論文四組件可插拔→ 評估器可以換成硬規則 verifier、外部工具、或訓練好的過程獎勵模型PRM。這把 ToT 從「純 LLM 自評」升級為「LLM 生成 可靠驗證」的混合系統大幅降低誤剪風險。九、適用場景與邊界照著選別亂用適合用 ToT場景類型例子為什么有效組合 / 數學規劃Game of 24、約束滿足需要試運算、前瞻、回溯約束滿足5×5 填字中間詞必須互相一致需回溯改字帶硬約束的創作給定結尾句寫連貫文章全局約束需回溯調整提綱博弈 / 排程 / 策略多步決策、路徑規劃初始決策關鍵需試錯不適合 / 要慎用?一眼能答的簡單題增益≈0還白白多燒幾十倍 token。?純事實 / 知識問答ToT 不補知識不懂還是不懂該用檢索 / RAG。?實時 / 高并發搜索是多輪生成延遲扛不住。?狀態難定義很多任務拆不出干凈的 thought評估器無從打分。?小模型當評估器評估器本身得夠強小模型自評不可靠。三檔選型對照檔位方法適用成本1CoT多步但能一次走對低2Self-Consistency有標準答案、想用算力換穩中N 倍3ToT必須規劃 / 試錯 / 回溯高百倍級十、論文實測結果已核對原文 Yao et al., 2023以下數字來自 ToT 論文arXiv:2305.10601GPT-4經核對原文與官方數據集。Game of 24100 道難題方法成功率IO輸入-輸出 prompt7.3%CoT貪心4.0%CoT-SCk1009.0%ToTb1退化為貪心45%ToTb5BFS74%即便「best-of-100 的 CoT」也只有 49%——說明搜索更多節點勝過重復采樣鏈。Creative Writing給定 4 個隨機結尾句寫 4 段連貫文章ToT 連貫性評分 7.56高于 CoT 的 6.93人類兩兩偏好 ToT 勝 CoT 41/100 對CoT 勝 21/100。Mini Crosswords5×5 填字ToTDFS詞級成功率 60%、整局 20%遠高于 CoT 的 15.6% / 1%。消融實驗填字詞級完整 ToT 60%用 oracle 最優狀態 82.4%去掉剪枝 65.4%去掉回溯 ~20%——再次印證回溯是承重墻。十一、方法版圖與延伸ToT 之后看這些GoTGraph of Thoughts, 2023把 ToT 的「樹」放寬為「圖」允許不同分支的結論匯聚/合并適合「多思路融合產出最終解」。MCTS 路線如 rStar-Math用蒙特卡洛樹搜索替代 BFS/DFS帶「探索-利用」權衡更接近 AlphaGo。區別在于 MCTS 常在訓練時用樹搜索蒸餾進權重ToT 是推理期、純 prompt的對應物不訓練。兩篇都叫「Tree of Thoughts」的論文命名澄清Yao et al., 2023本文所講通用 BFS/DFS/beam 搜索vs Long, 2023用強化學習訓練 ToT Controller 驅動搜索策略。查資料別撞車。輕量變體 Tree-of-Thought PromptingHulbert, 2023把 ToT 思想壓進單個 prompt如「想象三位專家各自寫一步錯了就離場」無需外部控制器但搜索深度/質量遠弱于完整框架。想「零代碼嘗鮮」可用。ToT 與 PRM 的關系ToT 的評估器是手寫的、未訓練的啟發式PRM「Let’s Verify Step by Step」把它換成訓練好的逐步驗證模型。前者即插即用、零訓練后者更準但需標注數據。十二、為什么你現在就該搞懂它2026 年整個行業都在卷「推理」。你聽到的 o1、DeepSeek-R1還有各種 reasoning 模型底層到處都是「搜索 回溯 逐步驗證」的影子。而ToT是這套思想最早、最干凈、最好懂的一版原貌。讀懂它你就不只是「會用 prompt」的人了而是真正理解了——「讓 AI 學會思考」這件事在架構上到底長什么樣。 關注看后續 順手推薦一個開源工具deepSeekHarenss Desktop—— DeepSeekHarness 客戶端工具一鍵安裝 deepSeekHarenss。 下載地址https://github.com/qweqe417/dsh-desktop有興趣的朋友可以去下一個玩玩順便點個 ?Star支持作者 一張圖看懂線性鏈 vs 思維樹線性鏈CoT / SC—— 一根筋走到底問題 │ ▼ 步驟 1 │ ▼ 步驟 2 │ ▼ 步驟 3 │ ▼ 答案 ← 錯了只能錯到底思維樹ToT—— 多路并行能回頭┌─→ 候選 A ─┐ │ │ 問題 ── 生成 ──┬─→├─→ 候選 B ─┼─→ 評估 ─→ 剪枝/保留 ─→ 答案 │ │ │ │ │ └─→ 候選 C ─┘ │ │ │ └──────── 回溯換路 ───────────┘一句話線性鏈「一根筋」錯了只能錯到底思維樹「多條路并行 評估 剪枝 回溯」錯了能換路 —— 這就是 ToT 把 24 點從 4% 飆到 74% 的關鍵。