【文獻筆記】Tree of Thoughts: Deliberate Problem Solving with Large Language Models

Tree of Thoughts: Deliberate Problem Solving with Large Language Models
https://github.com/princeton-nlp/tree-of-thought-llm

標題翻譯:思維樹:利用大型語言模型問題求解

1. 內容介紹

1.1. 背景

決策過程有兩種模式:

  1. 快速、自動、無意識的模式(System 1)-- 語言模型基于語言的token聯想生成
  2. 緩慢、謹慎、有意識的模式(System 2) – 多樣化選擇和規劃的過程

現有的LLM方法在復雜問題中面臨兩大局限

  • 局部探索不足:在生成過程中不能同時探索多種可能的推理路徑
  • 缺乏全局規劃:沒有能力回溯或前瞻,導致路徑選擇可能陷入局部最優解

論文提出了思維樹的框架,可以與搜索算法相結合,例如廣度優先搜索(BFS)或深度優先搜索(DFS)來進行前瞻、回溯和狀態評估。


1.2. 對比圖:

在這里插入圖片描述

  • IO:傳統的從輸入直接生成輸出,屬于單步決策,無探索過程
  • CoT:通過生成一系列中間步驟(思維鏈)來推導最終結果,但每次僅沿單一路徑生成,缺乏分支探索能力
  • SC-CoT:通過采樣多條獨立的思維鏈,利用多數投票機制實現自一致性
  • ToT:允許在每個思維步驟生成多種可能的中間狀態,并選擇最有希望的分支,每個分支的狀態可以通過啟發式評估(如評分或投票)確定是否繼續擴展

1.3. 什么是思維?

根據不同的問題,一個思維可能是:
在這里插入圖片描述

  • 填字游戲:幾個單詞
  • 24點:一行算式
  • 創意寫作:一段文字

2. 研究方法

2.1. 框架設計:ToT框架圍繞以下四個核心問題展開

  • 如何分解問題?-- 思維分解:將復雜問題分解為多個中間步驟,每個步驟稱為一個思維,思維需要足夠小以保證模型能生成多樣化候選解,又要足夠大以便評估

  • 如何生成候選解?思維生成器G(p,s,k)={z1,z2…zk}:輸入當前的狀態s=[x,z1,z2…zi](x表示問題,z是中間的思維),利用語言模型p生成k個候選思維z
    有兩種生成策略:

    1. 隨機生成:用COT獨立隨機生成k個候選解,多樣性更好,適合開放性任務(如寫作);
    2. 順序生成:在同一上下文中逐步生成k個候選解,適合約束較強的任務(如數學問題)
  • 如何評估候選狀態? – 狀態評估器V(p,S)(s)=score:給定多個候選狀態的集合S,通過啟發式方法評估
    有兩種評估策略:

    1. 獨立價值評估:為每個狀態s生成一個分數(如 1-10)或分類標簽(如 “sure” / “maybe” / “impossible”);
    2. 投票評估:跨狀態比較,通過對比多個狀態,選擇最有潛力的一個(類似于SC)。對于這兩種策略,都可以多次提示LM來整合價值或投票結果
  • 如何搜索最優路徑?-- 選擇什么搜索算法
    在這里插入圖片描述

    1. BFS: 每層保留b個最優狀態,逐層展開,適合24點這種層少的
    2. DFS:首先探索最有希望的狀態,直到達到最深;或者狀態評估器認為從當前狀態s解決問題是不可能的(價值V < v_th(臨界值)),就修剪停止擴展并回溯到s的父狀態

2.2. 優點:

  • 模塊化與靈活性:可以分別調整上面四個模塊,選擇不同LM,思維生成策略,狀態評估策略,搜索算法

  • 高適應性:針對不同任務可以有不同的策略

  • 無需額外訓練

3. 實驗

3.1. 24點任務:100個實例

在這里插入圖片描述

3.1.1. 步驟

將問題分解為3步,每步生成一個中間算式,然后使用BFS(b=5)確保所有可能的算式都被探索,且通過啟發式評估篩選出最有潛力的路徑(順序生成,獨立評估,BFS

  • 步驟1:從四個數字中選取兩個進行運算,生成一個新的狀態(例如4+9=13或者10-4=6)

  • 步驟2:使用剩余的數字進行下一步操作,生成新的候選狀態

  • 步驟3:根據啟發式評估(分類標簽),判斷當前狀態是否有可能最終達成目標24

3.1.2. 結果

對于每種方法,選擇100次嘗試中的最好結果,作為理論上的最佳表現

在這里插入圖片描述

  • 表2:

    • IO prompt:傳統的輸入輸出方法,直接從輸入(數字)到輸出(算式)進行推理,但沒有中間推理過程

    • CoT prompt:生成一系列中間步驟,逐步推導結果

    • CoT-SC:使用k個CoT的樣本,通過投票選擇最常見的答案,以增強推理的多樣性

    • IO + Refine:對IO方法進行迭代優化,在每次生成后進行反思和修正

  • 圖3a:訪問節點越多,成功率越高,ToT能夠探索更多的路徑,從而大大提高成功率

  • 圖3b:CoT方法容易在推理的初期階段就走錯路徑,但TOT因為有評估并能夠進行回溯修正所以能夠保持更高的成功率

3.2. 創意寫作任務

根據四個隨機的句子生成一篇連貫的文章,每段結尾包含一個輸入句子(隨機生成,投票評估,BFS

在這里插入圖片描述

3.2.1. 步驟
  • 生成計劃:根據輸入生成多個寫作計劃
  • 評估計劃:對計劃投票
  • 生成完整段落:根據最好的計劃生成多個完整段落
  • 評估段落:再對完整的段落再進行投票,選擇最連貫的段落生成方案
3.2.2. 結果:用GPT-4(1-10分)和人類來評估每個生成的段落的質量

在這里插入圖片描述

都是ToT方式得分最好


3.3. **5×5Mini填詞任務:

20個實例,評估,正確字母的比例(每個游戲25個)、單詞數(每個游戲10個)和完成游戲數 (順序生成,獨立評估,DFS)

在這里插入圖片描述

3.3.1. 步驟
  • 候選生成:根據字謎提示生成多個候選單詞
  • 啟發式評估:每個候選單詞會通過啟發式評估器進行評分,判斷其與其他已填單詞的交叉匹配程度,根據得分選擇得分最高的單詞填入網格,并繼續處理其他空格,如果某個單詞導致沖突(如垂直或水平單詞不匹配),就修剪掉并回溯到上一步的,選擇其他候選單詞
3.3.2. 結果:

在這里插入圖片描述

通過假設理想化的評估機制(Oracle),來模擬最優路徑選擇,模擬ToT上限,能達到35%的游戲完成率,可能是因為5×5填字游戲設計中有一些GPT-4無法識別的罕見或過時單詞

去掉剪枝或者去掉回溯后效果表現均不佳


3.4. 消融實驗

在這里插入圖片描述

換了點更艱難的任務,然后換了LM版本比較


3.5. 計算成本

在這里插入圖片描述
在這里插入圖片描述

計算成本相對來說很大


4. 總結

ToT通過探索不同路徑、評估中間狀態并進行全局優化,提高模型在復雜任務中的問題解決能力
未來的方向還是LLM的微調和更高效的搜索算法(如A*)

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/89994.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/89994.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/89994.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

使用 Mathematical_Expression 從零開始實現數學題目的作答小游戲【可復制代碼】

從零開始實現數學題目的作答小游戲 開源技術欄 使用 Mathematical_Expression 讓計算機做出題人&#xff0c;讓代碼與數學碰撞出趣味火花。 目錄 文章目錄 從零開始實現數學題目的作答小游戲目錄 從零開始實現數學題目的作答小游戲&#xff1a;讓代碼與數學碰撞出趣味火花為…

DQL-9-小結

DQL-9-小結 小結DQL語句 小結 DQL語句 SELECT 字段列表 -- 字段名 [AS] 別名FROM 表名列表WHERE條件列表 -- >、 >、 <、 <、 、 <>、 like、 between ... and、 in、 and、 or, 分組之前過濾 GROUP BY分組字段列表HAVING分組后條件列表 -- 分組之后…

[netty5: WebSocketServerHandshaker WebSocketServerHandshakerFactory]-源碼分析

在閱讀這篇文章前&#xff0c;推薦先閱讀以下內容&#xff1a; [netty5: WebSocketFrame]-源碼分析[netty5: WebSocketFrameEncoder & WebSocketFrameDecoder]-源碼解析 WebSocketServerHandshakerFactory WebSocketServerHandshakerFactory 用于根據客戶端請求中的 Web…

數據挖掘:深度解析與實戰應用

在當今數字化時代&#xff0c;數據挖掘已經成為企業獲取競爭優勢的關鍵技術之一。通過從大量數據中提取有價值的信息&#xff0c;企業可以更好地理解客戶需求、優化業務流程、提高運營效率。本文將深入探討數據挖掘的核心技術、實際應用案例以及如何在企業中實施數據挖掘項目。…

LLM面試題14

算法崗面試題 介紹下Transformer模型。 Transformer本身是一個典型的encoder-decoder模型&#xff0c;Encoder端和Decoder端均有6個Block,Encoder端的Block包括兩個模塊&#xff0c;多頭self-attention模塊以及一個前饋神經網絡模塊&#xff1b;Decoder端的Block包括三個模塊&…

Java金融場景中為什么金額字段禁止使用浮點類型(float/double)?

引言 Java金融場景中為什么金額字段禁止使用浮點類型&#xff1f;這是一篇你不能忽視的“爆雷”警告&#xff01; 在金融、電商、支付、清結算等業務系統中&#xff0c;浮點類型是絕對禁區&#xff01; &#x1f6a8;一、核心警告&#xff1a;浮點類型不是十進制數&#xff01;…

SVN下載與拉取

大家好我是蘇麟&#xff0c;今天聊一聊SVN。 SVN官網&#xff1a;下載 TortoiseSVN - TortoiseSVN 軟件 根據系統選擇32位還是64位 打開文件 安裝&#xff0c;下一步&#xff0c;下一步 安裝成功后&#xff0c;右鍵找到SVNcheck 輸入地址 輸入用戶名和密碼就OK了 這期就到這里…

數據結構筆記8:堆

目錄 滿二叉樹&#xff1a; 完全二叉樹&#xff1a; 堆是一種特殊的完全二叉樹&#xff1a; 我們可以以數組的方式存儲堆。 父節點和子節點下標關系的推導&#xff1a; 1.使用數學歸納法證明n2 1 n0&#xff1a; 2.使用邊和節點的關系證明n2 1 n0&#xff1a; 我們…

3. lvgl 9.3 vscode 模擬環境搭建 lv_port_pc_vscode-release-v9.3

文章目錄1. 資源下載1. 1 lv_port_pc_vscode1.2 cmake 和 mingw 環境搭建1.3 sdl 下載1.4 下載lvgl_v9.32. 環境搭建2.1 拷貝lvgl 源碼到工程2.2 添加SDL2 依賴2.3 執行工程3. 運行示例1. 資源下載 1. 1 lv_port_pc_vscode 那么多模擬器&#xff0c;為什么選擇這個&#xff1…

【牛客刷題】小紅的爆炸串(二)

一、題目介紹 本題鏈接為:小紅的爆炸串(二) 小紅定義一個字符串會爆炸,當且僅當至少有k對相鄰的字母不同。 例如,當 k k k=2時,"arc"會爆炸,而"aabb"則不會爆炸。 小紅拿到了一個長度為

【實戰】如何訓練一個客服語音對話場景VAD模型

1. 引言:客服場景下的VAD模型 在客服中心,每天都會產生海量的通話錄音。對這些錄音進行有效分析,可以用于服務質量監控、客戶意圖洞察、流程優化等。VAD在其中扮演著“預處理器”和“過濾器”的關鍵角色: 提升ASR效率與準確性:只將檢測到的語音片段送入ASR引擎,可以避免…

在 Dokploy 中為 PostgreSQL 搭建 PgBouncer 數據庫連接池(圖文)

前言&#xff1a;為什么你需要一個連接池&#xff1f; 如果你正在使用 Node.js (尤其是像 Next.js 這樣的框架) 配合 Prisma 操作 PostgreSQL 數據庫&#xff0c;你很可能在某個階段會遇到那個令人頭疼的錯誤&#xff1a;“Error: Too many clients already”。這通常發生在應…

Mac獲取終端歷史

在 macOS 中&#xff0c;歷史記錄文件的位置取決于你使用的 shell。以下是針對不同 shell 的歷史記錄文件的默認位置&#xff1a;對于 Bash 用戶&#xff1a; 歷史記錄文件通常位于 ~/.bash_history。對于 Zsh 用戶&#xff08;macOS Catalina及以后版本默認使用的shell&#x…

高頻交易服務器篇

在 Binance 進行高頻交易&#xff08;HFT&#xff09;時&#xff0c;服務器的低延遲、高穩定性和快速網絡是關鍵。亞馬遜云&#xff08;AWS&#xff09; 提供了多種適合高頻交易的方案&#xff0c;以下是推薦的配置和優化策略&#xff1a;1. 選擇 AWS 區域&#xff08;Region&a…

MVC與MVVM架構模式詳解:原理、區別與JavaScript實現

Hi&#xff0c;我是布蘭妮甜 &#xff01;在當今復雜的前端開發領域&#xff0c;如何組織代碼結構一直是開發者面臨的核心挑戰。MVC和MVVM作為兩種經典的架構模式&#xff0c;為前端應用提供了清晰的責任劃分和可維護的代碼組織方案。本文將深入探討這兩種模式的原理、實現差異…

從小白到進階:解鎖linux與c語言高級編程知識點嵌入式開發的任督二脈(2)

【硬核揭秘】Linux與C高級編程&#xff1a;從入門到精通&#xff0c;你的全棧之路&#xff01; 第三部分&#xff1a;Shell腳本編程——自動化你的Linux世界&#xff0c;讓效率飛起來&#xff01; 嘿&#xff0c;各位C語言的“卷王”們&#xff01; 在Linux的世界里&#xf…

鎖和事務的關系

事務的4大特性(ACID) 原子性&#xff08;Atomicity&#xff09;&#xff1a;事務被視為一個單一的、不可分割的工作單元一致性&#xff08;Consistency&#xff09;&#xff1a;事務執行前后&#xff0c;數據庫從一個一致狀態轉變為另一個一致狀態&#xff0c;并且強制執行所有…

電動車信用免押小程序免押租賃小程序php方案

電動車信用免押租賃小程序&#xff0c;免押租小程序&#xff0c;信用免押接口申請、對接開發&#xff0c;可源碼搭建&#xff0c;可二開或定制。開發語言后端php&#xff0c;前端uniapp。可二開定制 在線選擇門店&#xff0c;選擇車輛類型&#xff0c;選擇租賃方式&#xff08…

機器學習在智能安防中的應用:視頻監控與異常行為檢測

隨著人工智能技術的飛速發展&#xff0c;智能安防領域正經歷著一場深刻的變革。智能安防通過整合先進的信息技術&#xff0c;如物聯網&#xff08;IoT&#xff09;、大數據和機器學習&#xff0c;能夠實現從傳統的被動防御到主動預防的轉變。機器學習技術在智能安防中的應用尤為…

MySQL中DROP、DELETE與TRUNCATE的深度解析

在MySQL數據庫操作中&#xff0c;DROP、DELETE和TRUNCATE是三個常用的數據操作命令&#xff0c;它們都可以用于刪除數據&#xff0c;但在功能、執行效率、事務處理以及對表結構的影響等方面存在顯著差異。本文將從多個維度對這三個命令進行詳細對比和解析&#xff0c;幫助讀者更…