Graph of Thoughts: Solving Elaborate Problems with Large Language Models
Website & code: https://github.com/spcl/graph-of-thoughts
作者介紹了Graph of Thought (GoT):一個具備提高LLM提示能力,超越了思維鏈或思維樹 (ToT) 等范式提供的能力的框架。GoT的關(guān)鍵思想和主要優(yōu)勢是能夠?qū)LM生成的信息建模為任意圖,其中信息單位(“LLM思想”)是頂點,而邊對應(yīng)于這些頂點之間的依賴關(guān)系。這種方法能夠?qū)⑷我獾腖LM思想組合成協(xié)同結(jié)果,提煉出整個思想網(wǎng)絡(luò)的本質(zhì),或者使用反饋循環(huán)來增強思想。作者說明了GoT在不同的任務(wù)上提供了比現(xiàn)有技術(shù)更好的優(yōu)勢,例如比ToT提高了62%的排序質(zhì)量,同時降低了大于31%成本。本文確保了GoT可以通過新的思維轉(zhuǎn)換進行擴展,因此可以用于引領(lǐng)新的提示方案。這項工作使LLM推理更接近人類思維或大腦機制,如recurrence循環(huán),兩種機制都形成的復(fù)雜網(wǎng)絡(luò)。
Introduction
LLM正在接管人工智能的世界。近年來,主要基于解碼器變壓器Transformer的模型快速發(fā)展。
Prompt engineering: 提示工程是解決不同LLM任務(wù)的一種資源高效的方法。簡而言之,一個是在發(fā)送到LLM的輸入中包含了任務(wù)描述。如果此描述表述適當,LLM使用其基于自回歸的標記生成機制來解決任務(wù)。此類提示可能包含帶有解決方案的示例任務(wù)(少鏡頭提示,也稱為in-context learning (ICL),或者甚至根本沒有示例任務(wù) (zero-shot prompting) 。近年來,研究表明,這種機制可以用于解決一系列涉及數(shù)學(xué)、常識或符號推理的廣泛任務(wù)。
Chain-of-Thought (CoT) : 思維鏈 (CoT) 是一種提示方法,其中除了任務(wù)輸入/輸出外,還包括提示(中間“思維”)中的中間推理步驟。CoT被證明可以顯著提高LLM解決問題的能力,而無需采用任何模型更新。與CoT相比的一個主要改進,即 Self-Consistency with CoT (CoT-SC) ,是一個生成多個CoT的方案,然后選擇最好的一個作為結(jié)果。最近,CoT和CoT-SC用思想樹 (ToT) 進行了擴展,用樹來建模LLM推理過程。這有助于使用不同的思維路徑,并提供了新的功能,如從沒有希望的結(jié)果中回溯。不幸的是,ToT方法仍然通過對思維過程強加剛性樹狀結(jié)構(gòu),從根本上限制了提示符內(nèi)的推理能力。
在這項工作中,作者認為,通過使LLM思想形成一個任意的圖結(jié)構(gòu),可以從根本上實現(xiàn)更強大的提示。這是由許多現(xiàn)象驅(qū)動的,如人類的推理、大腦的結(jié)構(gòu)、或算法的執(zhí)行。當研究一個新穎的想法時,人類不僅會遵循一連串的想法 (CoT) 或者嘗試不同的想法 (ToT),而且實際上會形成一個更復(fù)雜的思想網(wǎng)絡(luò)。例如,一個可以探索一定鏈的推理,回溯,開始一個新的,然后意識到一定的想法可以結(jié)合當前探索,并合并到一個新的解決方案,利用他們的優(yōu)勢,消除他們的弱點。類似地,大腦形成復(fù)雜的網(wǎng)絡(luò),具有類似圖的模式,如循環(huán)。執(zhí)行算法還暴露了網(wǎng)絡(luò)模式,通常用有向無環(huán)圖表示。當應(yīng)用于LLM思想時,相應(yīng)的支持圖的轉(zhuǎn)換可以帶來更強大的提示,但它們不能用CoT或ToT自然地表示。
作者觀察到,當將一個LLM的推理過程建模為一個圖時,這些(以及許多其他的)思維轉(zhuǎn)換可以自然地啟用。為此,本文提出了思想圖 (GoT),這是一種通過網(wǎng)絡(luò)推理來增強LLM能力的方法(貢獻#1)。在GoT中,一個LLM思想被建模為一個頂點,而一條邊是這些思想之間的依賴關(guān)系。使用GoT,人們可以通過構(gòu)造具有多個傳入邊的頂點來聚合任意的思想。總的來說,GoT所使用的圖抽象無縫地將CoT和ToT概括到更復(fù)雜的思維模式,而不訴諸于任何模型更新。
然而,實踐GoT需要解決幾個挑戰(zhàn)。例如,對于不同任務(wù)的最佳圖形結(jié)構(gòu)是什么?如何最好地綜合思想,以最大化準確性和最小化成本?為了回答這些問題,作者精心設(shè)計了一個用于實現(xiàn)GoT的模塊化體系結(jié)構(gòu)(貢獻#2),附帶了兩個設(shè)計亮點。首先,作者實現(xiàn)對個人思想進行細粒度控制。這使作者能夠完全控制與LLM正在進行的對話,并應(yīng)用高級思想轉(zhuǎn)換,例如將正在進行的推理中最有前途的想法組合成一個新的想法。其次,作者確保本文的體系結(jié)構(gòu)可以通過新的思維轉(zhuǎn)換、推理模式(即思想圖)和LLM模型進行無縫擴展。這使得使用GoT快速形成新的原型,同時實驗不同的模型,如GPT-3.5、GPT-4或Llama-2。
作者舉例說明了GoT的幾個用例(排序、關(guān)鍵字計數(shù)、設(shè)置操作、文檔合并),并詳細說明了如何使用基于圖的范例來實現(xiàn)它們(貢獻#3)。本文評估了GoT,并展示了它相對于最先進技術(shù)的優(yōu)勢(貢獻#4)??偟膩碚f,作者觀察到GoT特別適合于可以自然分解為更小的子任務(wù),這些任務(wù)單獨解決,然后合并為最終解決方案。在這里,GoT優(yōu)于其他方案,例如,在分類質(zhì)量方面,比CoT和ToT分別提高了≈70%和≈62%,同時比ToT降低了大于31%的成本。
作者將GoT與表1中的其他提示方案進行了定性比較。GoT是唯一一個在提示符內(nèi)啟用任意的基于圖的思想轉(zhuǎn)換的方法,比如聚合,包括所有以前提出的方案。
2 Background & Notation
2.1 Language Models & In-Context Learning
與LLM的對話由用戶消息 (prompts) 和LLM回復(fù) (thoughts) 組成。作者遵循已建立的notation,將參數(shù)θ的預(yù)訓(xùn)練語言模型 (LM) 表示為 p θ p_θ pθ?。小寫字母,如 x , y , z , . . . x,y,z,... x,y,z,...表示LLM的想法。作者有意不規(guī)定什么是單一的“thought”,而是使它具有特定的用途。因此,單一的思想可以是段落(例如在文章摘要中),文檔(例如在文檔生成中),代碼塊(例如在代碼調(diào)試或優(yōu)化中)等等。
以下是具體提示方法的描述。
Input-Output (IO): 輸入-輸出(IO)提示是一種簡單的方法,我們使用LLM將輸入序列x直接轉(zhuǎn)換為輸出y,而不需要任何中間的想法。
Chain-of-Thought (CoT): 第二,在CoT中,作者引入了中間思想 a 1 , a 2 , . . . a_1,a_2,... a1?,a2?,...在 x x x和 y y y之間。在普通IO基線上,該策略可以顯著提高各種LM任務(wù),如數(shù)學(xué)謎題或一般數(shù)學(xué)推理。
Multiple CoTs: 第三,可以通過生成幾個獨立的 k k k個CoT,并返回輸出最好的一個(根據(jù)一些規(guī)定的評分指標),將CoT推廣到多個CoT,也就是Self-Consistency with CoT (CoT-SC)。這種方法增強了CoT,因為它提供了一個探索不同推理路徑的機會。然而,它并沒有提供一條路徑中的“本地探索”,比如回溯。
Tree of Thoughts (ToT): 最后, Tree of Thought (ToT) 在一定程度上被其他方案隱式地使用,如思想分解thought decomposition。它通過將過程或推理建模為一個思想樹來增強CoT-SC。一個樹節(jié)點表示一個部分解決方案?;谝粋€給定的節(jié)點,思想生成器構(gòu)造一個給定數(shù)量的k個新節(jié)點。然后,狀態(tài)評估器為每個這樣的新節(jié)點生成分數(shù)。根據(jù)用例,評估可以使用LLM本身進行,或者它可以利用人工分數(shù)。最后,擴展樹的時間表由所使用的搜索算法(例如BFS或DFS)決定。
3 The GoT Framework
形式上,GoT可以被建模為一個元組 ( G , T , E , R ) (G,T,E,R) (G,T,E,R),其中 G G G是“LLM推理過程”(即,上下文中的所有LLM思想,以及它們的關(guān)系), T T T是潛在的思維轉(zhuǎn)換, ε \varepsilon ε是一個用于獲得大量思想的評價者函數(shù),而 R R R是一個排序函數(shù),用于選擇最相關(guān)的思想。
3.1 Reasoning Process
作者將推理過程建模為一個有向圖 G = ( V , E ) G =(V,E) G=(V,E); V V V是一組頂點, E ? V × V E?V×V E?V×V是一組邊。 G G G是有向的,因此邊是有序頂點對 E ? V × V E?V×V E?V×V的子集。頂點包含當前問題的解決方案(無論是初始問題、中間問題還是最終問題)。這種思想的具體形式取決于一個用例;它可以是一個段落(在寫作任務(wù)中)或者一個數(shù)字序列(在排序中)。一個有向邊(t1,t2)表示思想t2是使用t1作為“直接輸入”來構(gòu)造的,即通過顯式地指示LLM使用t1來生成t2。
在某些用例中,圖節(jié)點屬于不同的類。例如,在writing任務(wù)中,一些頂點為writing段落的計劃建模,而其他頂點對文本的實際段落建模。在這種情況下,GoT包含一個異構(gòu)圖heterogeneous graph G = ( V , E , c ) G = (V, E, c) G=(V,E,c) 來建模LLM推理,其中 c c c將頂點 V V V映射到它們各自的類 C C C(在上述情況下,它將是 C = { p l a n , p a r } C = \{plan,par\} C={plan,par})。因此,任何頂點 v v v都可以建模推理的不同方面。
作者將 G G G與LLM推理過程聯(lián)系起來。為了推進這一過程,作者將思想轉(zhuǎn)換thought transformations應(yīng)用于 G G G。這樣的一個例子是將最佳得分(到目前為止)的思想合并為一個新的思想。另一個例子是循環(huán)思考一個想法,以增強它。請注意,這些轉(zhuǎn)換嚴格地擴展了CoT、CoT-SC或ToT中可用的轉(zhuǎn)換集。
3.2 Transformations of Thoughts
由于基于圖的推理模型,GoT實現(xiàn)了新的思想轉(zhuǎn)換,稱為支持圖的轉(zhuǎn)換graph-enabled transformations。例如,在寫作中,人們可以將幾篇輸入文章合并成一個連貫的摘要。在排序中,可以合并已排序的子數(shù)組為最后的已排序的數(shù)組,圖2中說明了聚合和生成的示例。
在形式上,每一個這樣的轉(zhuǎn)換都可以被建模為 T ( G , p θ ) T(G,p_θ) T(G,pθ?),其中 G = ( V , E ) G = (V,E) G=(V,E)是反映當前推理狀態(tài)的圖,而 p θ p_θ pθ?是所使用的LLM。 T T T通常通過添加新的頂點及其進入的邊來修改 G G G。我們有 G ′ = T ( G , p θ ) = ( V ′ , E ′ ) G'=T(G,p_θ)=(V', E') G′=T(G,pθ?)=(V′,E′),其中 V ′ = ( V ∪ V + ) \ V ? V'=(V∪V^ +) \backslash V^? V′=(V∪V+)\V?和 E ′ = ( E ∪ E + ) \ E ? E'=(E∪E^+) \backslash E^? E′=(E∪E+)\E?。 V + V^+ V+和 E + E^+ E+分別是插入到 G G G中的新的頂點和邊,以建模新的思想及其依賴關(guān)系。為了最大化GoT的表達性——作者還通過指定要刪除的相應(yīng)頂點和邊(分別為 V ? V^? V?和 E ? E^? E?),允許用戶顯式地刪除思想。在這里,用戶有責(zé)任確保集合 V + , E + , V ? V^+,E^+,V^? V+,E+,V?和 E ? E^? E?具有一致的轉(zhuǎn)換(例如,用戶不會試圖刪除一個不存在的頂點)。這使得方案能夠無縫地合并,為了在上下文中節(jié)省空間,人們可以刪除不承諾改進的部分推理。
T T T的具體形式以及它如何影響 G G G取決于一個特定的轉(zhuǎn)換。作者首先詳細介紹了主要的支持圖形的思想轉(zhuǎn)換,然后繼續(xù)描述GoT如何包含從早期方案中獲得的轉(zhuǎn)換。除非另有說明,否則 V ? = E ? = ? V^?=E^?=? V?=E?=?。
Aggregation Transformations: 首先,通過GoT,人們可以將任意的想法聚合成新的想法aggregate arbitrary thoughts,以結(jié)合和強化這些想法的優(yōu)點,同時消除它們的缺點。在基本形式中,只創(chuàng)建一個新頂點, V + = { v + } V^+ = \{v^+\} V+={v+}和 E + = { ( v 1 , v + ) , . . . , ( v k , v + ) } E^+ =\{(v_1,v^+),...,(v_k,v^+)\} E+={(v1?,v+),...,(vk?,v+)},其中 v 1 , . . . , v k v_1,...,v_k v1?,...,vk?是合并的k思想。更普遍地說,這使得聚合推理路徑,即更長的思維鏈,而不僅僅是個人的思維。在圖模型中,它是否簡單地通過添加來自頂點 v 1 , . . . , v k v_1,...,v_k v1?,...,vk?的輸出邊建模幾個鏈的最終思想,到結(jié)合這些鏈的單一思想 v + v^+ v+中來實現(xiàn)。
**Refining Transformations:**另一個思想的轉(zhuǎn)變是通過修改當前思想的內(nèi)容來細化當前思想的 v v v: V + = { } 和 E + = { ( v , v ) } V^+=\{ \}和E^+ = \{(v,v)\} V+={}和E+={(v,v)}。圖中的這個循環(huán)表示了與原始思想具有相同連接的迭代思想。
Generation Transformations: 最后,可以根據(jù)現(xiàn)有的單一thought v v v產(chǎn)生一個或多個新的thought。這個類包含了來自早期方案的類似推理步驟,如ToT或CoT-SC。形式上, V + = { v 1 + , . . . , v k + } 和 E + = { ( v , v 1 + ) , . . . , ( v , v k + ) } V^+ = \{v_1^+,...,v_k^ +\}和E^+ = \{(v,v_1^+),...,(v,v_k^ +)\} V+={v1+?,...,vk+?}和E+={(v,v1+?),...,(v,vk+?)}。
3.3 Scoring & Ranking Thoughts
通過思考來了解當前的解決方案是否足夠好。一個分數(shù)被建模為一般函數(shù) ε ( v , G , p θ ) \varepsilon (v,G,p_θ) ε(v,G,pθ?),其中 v v v是一個被認為要評估的值。作者在 ε \varepsilon ε中使用整個推理過程( G G G)的狀態(tài)來獲得最大的一般性,因為,在某些評估場景中,分數(shù)可能與其他thought有關(guān)。
GOT也可以對這些thought進行排名。作者將其與函數(shù) R ( G , p θ , h ) R(G, p_θ,h) R(G,pθ?,h)進行建模, h h h是G中指定的排名最高的thought,其返回于 R R R。雖然 R R R的具體形式取決于一個用例,作者通常使用一個簡單而有效的策略,其中 h h h thoughts是得分最高的返回結(jié)果,即 v 1 , . . . , v h = R ( G , p θ , h ) v_1,...,v_h = R(G, p_θ, h) v1?,...,vh?=R(G,pθ?,h)。
4 System Architecture & Extensibility
GoT體系結(jié)構(gòu)由一組相互作用的模塊組成,見圖3(藍色部分)。這些模塊是提示器Prompter (為LLM準備消息)、解析器Parser(從LLM的回復(fù)中提取信息)、評分模塊Scoring(驗證LLM回復(fù)和評分)和控制器Controller(協(xié)調(diào)整個推理過程,并決定如何進行)??刂破鬟€包含另外兩個重要元素:操作圖 (GoO) 和圖形推理狀態(tài) (GRS)。GoO是一個靜態(tài)結(jié)構(gòu),它指定了給定任務(wù)的圖分解,也就是說,它規(guī)定了要應(yīng)用于LLM思想的轉(zhuǎn)換,以及它們的順序和依賴關(guān)系。GRS是一個動態(tài)結(jié)構(gòu),它維持著正在進行的LLM推理過程的狀態(tài)(其思想及其狀態(tài)的歷史)。
4.1 Prompter
提示器準備要發(fā)送到LLM的提示。這個模塊負責(zé)在提示符中編碼圖形結(jié)構(gòu)的具體內(nèi)容。GoT體系結(jié)構(gòu)允許用戶通過提供對圖結(jié)構(gòu)的完全訪問來實現(xiàn)特定于用例的圖編碼。
4.2 Parser
解析器從LLM的思想中提取信息。對于每一個這樣的思想,解析器構(gòu)建思想狀態(tài),其中包含這些提取的信息。然后使用思想狀態(tài)來相應(yīng)地更新GRS。
4.3 Scoring & Validation
在這里,作者驗證一個給定的LLM的思想是否滿足潛在的正確性條件,然后給它一個分數(shù)。根據(jù)分數(shù)的來源,該模塊可以參考LLM。此外,根據(jù)用例的不同,分數(shù)也可以由人類來分配。最后,像排序這樣的用例會使用簡單的本地評分函數(shù)。
4.4 Controller
控制器實現(xiàn)了一種從其GRS結(jié)構(gòu)中選擇思想的特定策略。它還會選擇應(yīng)該應(yīng)用于哪些思想的轉(zhuǎn)換,然后將這些信息傳遞給提示器。它還決定是否應(yīng)該完成整個過程,或者是否應(yīng)該啟動與LLM的下一輪交互。在作者當前的設(shè)計中,這是由GoO中指定的執(zhí)行計劃決定的。
4.5 GoO & GRS
用戶構(gòu)造了一個GoO實例,它規(guī)定了思想操作的執(zhí)行計劃。GoO是一個靜態(tài)結(jié)構(gòu),在執(zhí)行開始之前構(gòu)造一次。每個操作對象都知道其前任操作和后續(xù)操作。然后,在執(zhí)行過程中,GoO實例維護關(guān)于LLM推理過程的不斷更新信息。這包括到目前為止已經(jīng)執(zhí)行了哪個操作、所有生成的LLM思想的狀態(tài)、它們的有效性和分數(shù),以及任何其他相關(guān)信息。上述元素提供了可擴展的api,支持直接實現(xiàn)不同的提示方案。這些api是圖3的綠色部分中的概述,并在文檔中詳細說明。我們還提供了這些操作所使用的提示的示例,以及圖3的紅色部分中相應(yīng)的GRS。
5 Example Use Cases
5.1 Sorting
由于空間的限制,作者詳細介紹了一個用例(排序)。本文專注于它的分解和操作圖,這是在GoT中實現(xiàn)和執(zhí)行任何工作負載的核心。本文考慮對帶有重復(fù)項的數(shù)字0-9進行排序??紤]的LLM無法對超過一定長度的這些數(shù)字序列進行正確排序,因為重復(fù)計數(shù)不匹配。
在GoT中,采用了基于合并的排序:首先,將數(shù)字的輸入序列分解為子數(shù)組。然后,一個人將這些子數(shù)組單獨排序,然后分別將它們合并為一個最終的解決方案。圖4說明了這個用例及其圖分解。在這里,LLM認為的是一個已排序的數(shù)字序列。
要對結(jié)果進行評分,請表示一個包含 [ a 1 , a 2 , . . . , a n ] [a_1, a_2,...,a_n] [a1?,a2?,...,an?]的輸入序列,以及一個包含 [ b 1 , b 2 , . . . , b m ] [b_1,b_2,...,b_m] [b1?,b2?,...,bm?]的輸出序列。使用以下分數(shù)來確定錯誤的“范圍”:
error-scope = X + Y , ? w h e r e ? p ∈ { 1 , . . . , m } , ? q ∈ { 1 , . . . , n } , ?and \text{error-scope}=X+Y,\ where\ p \in \{1,...,m\},\ q \in \{1,...,n\},\ \text{and} error-scope=X+Y,?where?p∈{1,...,m},?q∈{1,...,n},?and
X = ∑ i = 1 m ? 1 sgn ( max ? ( b i ? b i + 1 , 0 ) ) , X=\sum_{i=1}^{m-1} \text{sgn}(\max(b_i-b_{i+1},0)), X=∑i=1m?1?sgn(max(bi??bi+1?,0)),
Y = ∑ i = 0 9 ∣ ∣ { b p : b p = i } ∣ ? ∣ { a q : a = i } ∣ ∣ Y=\sum_{i=0}^9||\{b_p:b_p=i\}|-|\{a_q:a=i\}|| Y=∑i=09?∣∣{bp?:bp?=i}∣?∣{aq?:a=i}∣∣
這里, X X X表示有多少個連續(xù)的數(shù)字對被錯誤地排序。如果兩個數(shù)字 i i i和 i + 1 i + 1 i+1被錯誤地排序(即, b i > b i + 1 b_i > b_{i+1} bi?>bi+1?),那么求和內(nèi)的表達式返回1,將錯誤分數(shù)增加1。對于正確排序的兩個數(shù)字,此表達式總計為0。然后,Y確定一個給定的輸出序列保持輸出數(shù)頻率的程度。具體來說,對于每個考慮的數(shù)字 x ( x ∈ { 0 , . . . , 9 } ) x(x∈\{0,...,9\}) x(x∈{0,...,9}),得到了等于 x x x的輸入元素的計數(shù)與等于 x x x的輸出元素的計數(shù)之間的差值。對于一個完全保留 x x x頻率的輸出序列,這將等于0。在這個計數(shù)中的任何一個“偏差”,都會增加“誤差范圍”1)。然后把它和所有考慮過的 x x x的值相加。在繪制這個分數(shù)時,為了提高圖的清晰度,作者另外應(yīng)用了剪切最小值(誤差范圍, n n n),因為一些基線 ( I O , C o T ) (IO, CoT) (IO,CoT)會導(dǎo)致大量具有高誤差范圍的異常值。最后,要使用描述“正確排序的范圍”元素的“正分數(shù)”,可以使用max值(n個?錯誤范圍,0)。
5.2 Set Operations
此外,作者還考慮了集合操作,重點關(guān)注集合的交集。它們在從基因組或文檔比較到模式匹配的問題上有許多應(yīng)用(特別是集合交集)。兩個集合的集合交集的實現(xiàn)方式類似于排序。第二個輸入集被分割成多個子集,并通過LLM確定這些子集與第一個輸入集的交集。然后,將聚合生成的交集集,以得到最終的結(jié)果。對于評估,我們使用了32、64和128個元素的不同集合大小,并且我們將在兩個集合中發(fā)現(xiàn)的元素的數(shù)量改變?yōu)樵?5%到75%之間
分數(shù)表示在最終的交集中缺失或錯誤包含的元素的總數(shù)。具體來說,表示兩個輸入集 [ a 1 , a 2 , . . . , a n ] [a_1,a_2,...,a_n] [a1?,a2?,...,an?]和 B = [ b 1 , b 2 , . . . , b n ] B=[b_1,b_2,...,b_n] B=[b1?,b2?,...,bn?],輸出集為 C = [ c 1 , c 2 , . . . , c m ] C = [c_1,c_2,...,c_m] C=[c1?,c2?,...,cm?]。然后
error-scope = X 1 + X 2 + X 3 \text{error-scope} = X_1 + X_2 + X_3 error-scope=X1?+X2?+X3?
其中 X 1 = ∣ C \ ( A ∩ B ) ∣ X1 = |C \backslash(A∩B)| X1=∣C\(A∩B)∣是C中不應(yīng)該存在的元素數(shù)量, X 2 = ∣ ( A ∩ B ) \ C ∣ X2=|(A∩B) \backslash C| X2=∣(A∩B)\C∣是 C C C中缺少的元素數(shù)量, X d X_d Xd?是 C C C中重復(fù)的數(shù)量(因為LLM以自然語言表示為列表)。最后,要使用描述“正確計算的范圍”元素的“正分數(shù)”,可以使用最大值(n個?誤差范圍,0)。
5.3 Keyword Counting
關(guān)鍵字計數(shù)在輸入文本中查找給定類別(在示例實現(xiàn)中的國家)中的關(guān)鍵字的頻率。GoT將輸入文本分割成多個段落,計算每一個段落中的關(guān)鍵字,并聚合子結(jié)果。段落的數(shù)量是可配置的,也可以留給LLM,這使得將每個句子作為一個單獨的段落來處理成為可能。在這里,為了給一個想法評分,首先對每個關(guān)鍵字計算出計算計數(shù)和正確計數(shù)之間的絕對差異。然后將所有這些差異相加,得到最終的分數(shù)。
5.4 Document Merging
最后,作者還提供了文檔合并。在這里,目標是生成一個新的保密協(xié)議(NDA)文檔。其目標是確保最少的重復(fù)量,同時最大限度地保留信息。文檔合并廣泛適用于,例如,法律程序,即必須將多個信息源合并成單個文檔或文章。為了給一個解決方案評分,我們查詢LLM的兩個值(每個值3次,并取平均值)。第一個值對應(yīng)于解決方案冗余(10表示沒有冗余,0表示至少一半的信息冗余),第二個值表示信息保留(10表示所有信息保留,0表示沒有信息保留)。作者計算這些值的調(diào)和平均值。
6 The Latency-Volume Tradeoff
本文表明,GoT在延遲(達到給定的最終thought的跳躍數(shù))和體積之間的權(quán)衡方面改進了之前的提示方案。對于一個給定的thought t t t,將體積定義為之前可能影響 t t t的LLM思想的數(shù)量。形式上, t t t的體積是在思想圖中存在一條到 t t t的路徑的thought的數(shù)量。假設(shè)輸出一個思維需要花費 O ( 1 ) O (1) O(1)個時間,并將每個提示方案的總成本固定為 Θ ( n ) Θ(n) Θ(n)。
該方案的結(jié)構(gòu)如下。CoT-SC由k個源自單一起始思維的獨立鏈組成。ToT是一個完整的k-ary樹。最后,在GoT中,一個完整的k-ary樹在它的葉子處與一個相同大小的“鏡像”k-ary樹連接,但其邊緣被反轉(zhuǎn)。
分析結(jié)果詳見表2。CoT提供了高達N的大量體積,但以N的高延遲為代價。CoTSC減少了延遲k倍(對應(yīng)于其分支因子),但同時也減少了體積k。ToT提供了logk N的延遲,但體積也很小。GoT是唯一一個同時延遲logk N和高容量N的方案。這是由于GoT利用思想的聚合,使得它有可能從圖分解中的任何其他中間思想達到最終思想。
7 Evaluation
作者展示了GoT比現(xiàn)有技術(shù)水平的優(yōu)勢。本文專注于比較GoT和ToT,因為它被證明始終優(yōu)于其他方案。不過,為了進行廣泛的比較,本文也用IO、CoT和CoT-SC進行了實驗。由于分析結(jié)果在一個很大的評估空間中,呈現(xiàn)了具有代表性的結(jié)果,并省略了沒有帶來相關(guān)見解的數(shù)據(jù)(例如,CoT-SC)。
7.1 Evaluation Methodology
我們?yōu)槊總€任務(wù)和比較基線使用100個輸入樣本。我們將溫度設(shè)置為1.0,并使用4k上下文。對于每個實驗,我們在各自的方案中固定思想的數(shù)量,以在每個實驗中實現(xiàn)相似的成本。
**Parameters:**作者對分支因子k和級別的數(shù)量L進行了廣泛的實驗,以確保作者將GoT與成本有效和有利的配置進行比較。本文繪制了ToT的兩個變體:一種是較高的k和較低的深度(ToT),另一種是較低的k,但較高的L(ToT2)。本文的目標是在更稀疏的生成輪(較低的k)和更多的生成輪(較大的L)之間的權(quán)衡中實現(xiàn)一個平衡點。通常每輪更多的回復(fù)更昂貴(例如,圖7的總響應(yīng)為80個對60個,但成本為6美元對3美元)。作者還嘗試了不同的問題大小P(例如,在排序中,P表示要排序多少個數(shù)字)。
**Used LLMs:**由于預(yù)算限制,作者重點關(guān)注GPT- 3.5,使用GPT-4。本文也實驗了Llama-2,但它通常比GPT-3.5更差,而且運行速度也要慢得多,因此無法獲得足夠的樣本。
7.2 Analysis of GoT’s Advantages
分析結(jié)果見圖5(排序)、6(集合交叉)、7(關(guān)鍵字計數(shù))和8(文檔合并);具體用例說明請參見第5節(jié)??偟膩碚f,GoT提高了所有考慮的基線的結(jié)果質(zhì)量,與ToT相比,它降低了推理成本。
GoT vs. ToT: 在考慮的所有問題實例中,GoT比ToT和ToT2大大改進。ToT通常比ToT2的質(zhì)量要高一些,但同時成本也要高得多。GoT的成本總是低于ToT,并且比ToT2相當(在某些情況下更低,在其他情況下更高)。例如,與ToT相比,P = 128減少了62%的≈中值誤差,從而實現(xiàn)了更高的排序質(zhì)量,同時確保了>31%的成本降低。這些優(yōu)勢是由于GoT能夠?qū)?fù)雜的任務(wù)分解為更簡單的子任務(wù),獨立地解決這些子任務(wù),然后逐步地將這些結(jié)果合并到最終的結(jié)果中
**GoT vs. IO and CoT:**GoT始終比IO/CoT提供更高質(zhì)量的結(jié)果。例如,對于排序(P = 64),GoT的中值誤差分別比CoT和IO低≈65%和≈83%。然而,GoT和ToT的成本遠遠高于IO和CoT。這主要是由于作者對CoT的配置,如果這不能改善結(jié)果,作者就不會人為地夸大推理鏈的長度。GoT和ToT的成本較高,是由為每個生成操作建立的k個新思想所驅(qū)動的;這些多種想法是GoT在質(zhì)量上具有優(yōu)勢的原因之一。
**Increasing Complexity of Tackled Problems:**最重要的是,目標的優(yōu)勢的質(zhì)量增加所有基線的大小問題p。例如,在排序,而P = 32只有只能忽略地改善ToT2,其平均錯誤計數(shù)變低P = 64≈61%,P=128≈69%。四分位數(shù)也分別變得更好。其他方案的結(jié)果也遵循直覺;例如,隨著P的增加,IO持續(xù)變得更差,這是由于一個單一的想法不太可能解決一個大的問題實例??偟膩碚f,這個分析說明了GoT確實非常適合于復(fù)雜的問題案例,因為隨著問題規(guī)模的增長,執(zhí)行時間表通常會變得更加復(fù)雜。
7.3 Discussion on Task Decomposition
當將一個任務(wù)劃分為子任務(wù),然后解決這些子任務(wù)時,響應(yīng)和輸入的大?。ㄒ詷擞浿校鶕?jù)任務(wù)分解的程度成比例地減少。然而,提示符的“靜態(tài)”部分(即少鏡頭的示例)可能會成為一個重要的開銷(參見圖7中的GoT4到GoT8)。作者觀察到這些很少的例子通常也可以減少大?。ɡ?,段落用于演示關(guān)鍵字計數(shù)也可以變小,仍然表明實際輸入大?。?,因此積極努力降低成本(例如,看到GoT8和GoTx之間的區(qū)別在圖7)。
在進行圖分解時,總體目標是將任務(wù)分解到一個點,LLM可以使用單個提示(或使用一些額外的改進步驟)在大多數(shù)時間內(nèi)正確地解決它。這大大降低了在圖形探索的后期階段所需的改進/細化步驟的數(shù)量。此外,正如我們的結(jié)果所表明的那樣,組合或連接子結(jié)果通常比從頭開始解決大型任務(wù)實例更容易。因此,LLM在聚合最終解決方案時通常是成功的。文章來源:http://www.zghlxwxcb.cn/news/detail-690927.html
8 Conclusion
提示工程是LLM研究的核心新領(lǐng)域之一。它允許有效地使用llm,而不需要進行任何模型更新。然而,設(shè)計有效的提示是一項具有挑戰(zhàn)性的任務(wù)。在這項工作中,本文提出了GoT,這是一種新的范式,使LLM能夠在沒有任何模型更新的情況下有效地解決不同的任務(wù)。關(guān)鍵的思想是將LLM推理建模為一個任意的圖,其中思想是頂點,思想之間的依賴關(guān)系是邊。這使得思想的新轉(zhuǎn)變成為可能,比如聚合。人類的任務(wù)解決通常是非線性的,它涉及到將中間的解決方案組合成最終的解決方案,或者在發(fā)現(xiàn)新的見解時改變推理的流程。GoT用其圖形結(jié)構(gòu)反映了這一點。GoT優(yōu)于其他提示方案,例如確保對ToT的分類質(zhì)量提高了62%,同時降低了31%的>成本。作者還提出了一種新的提示方案的度量方法,即思想的體積,以表明一個給定的LLM輸出可以隨身攜帶的信息范圍,其中GoT也很突出。這為實現(xiàn)更有原則的及時工程提供了一步。在過去的幾十年里,圖形抽象一直是計算和人工智能領(lǐng)域的一些成功設(shè)計的基礎(chǔ),例如蛋白質(zhì)預(yù)測的AlphaFold。本文的工作將它應(yīng)用于快速工程領(lǐng)域。文章來源地址http://www.zghlxwxcb.cn/news/detail-690927.html
到了這里,關(guān)于【閱讀筆記】Graph of Thoughts: Solving Elaborate Problems with Large Language Models的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!