當prompt策略遇上分治算法,南加大、微軟讓大模型煉成「火眼金睛」
近年來,大語言模型(LLMs)由于其通用的問題處理能力而引起了大量的關(guān)注。現(xiàn)有研究表明,適當?shù)奶崾驹O(shè)計(prompt enginerring),例如思維鏈(Chain-of-Thoughts),可以解鎖 LLM 在不同領(lǐng)域的強大能力。
然而,在處理涉及重復子任務(wù)和 / 或含有欺騙性內(nèi)容的任務(wù)(例如算術(shù)計算和段落級別長度的虛假新聞檢測)時,現(xiàn)有的提示策略要么受限于表達能力不足,要么會受到幻覺引發(fā)的中間錯誤的影響。
為了使 LLM 更好地分辨并盡可能避免這種中間錯誤,來自南加州大學、微軟的研究者提出了一種基于分治算法的提示策略。這種策略利用分治程序來引導 LLM。
論文地址:https://arxiv.org/pdf/2402.05359.pdf
具體來講,我們將一個大任務(wù)的解決過程解耦為三個子過程:子問題劃分、子問題求解以及子問題合并。理論分析表明,我們的策略可以賦予 LLM 超越固定深度 Transformer 的表達能力。實驗表明,我們提出的方法在受到中間錯誤和欺騙性內(nèi)容困擾的任務(wù)中(例如大整數(shù)乘法、幻覺檢測和錯誤信息檢測)可以比經(jīng)典的提示策略獲得更好的性能。
太長不看版:我們發(fā)現(xiàn)在應(yīng)用 LLM 處理較長的問題輸入時,把輸入拆分然后分而治之可以取得更好的效果。我們從理論上解釋了這一現(xiàn)象并實驗角度進行了驗證。
研究動機
本文的研究動機來自于實驗中觀察到的有趣現(xiàn)象。具體來說,我們發(fā)現(xiàn)對于涉及重復子任務(wù)和 / 或含有欺騙性內(nèi)容的任務(wù)(如段落級別長度的虛假新聞檢測),對輸入進行拆分可以提升模型對于錯誤信息的分辨能力。下圖展示了一個具體的例子。
在這個例子當中,我們調(diào)用大語言模型來評估一段總結(jié)性文本是否與完整的新聞報道存在事實性沖突。
在這個任務(wù)中,我們嘗試了兩種策略:耦合策略和分治策略。在耦合策略下,我們直接為模型提供完整的新聞報道和整段總結(jié)性文本,然后要求模型評估二者是否存在沖突。模型錯誤地認為二者不存在沖突,并且忽視了我們標紅的沖突點(新聞中明確表示調(diào)查人員否定了錄像的存在,然而總結(jié)中的第一句話表示錄像已被成功復原)。
而當我們采取分治策略,也就是簡單地將總結(jié)性文本拆分成多句話,然后分別對每句話進行評估,模型成功地識別出了沖突。
這個例子向我們展示了:對長輸入進行劃分可以幫助我們更好地解鎖模型的能力?;谶@一點,我們提出利用分治程序來引導 LLM,從而賦予模型更強的分辨力。
基于分治的提示(prompting)策略
我們提出使用分治(Divide-and-Conquer, DaC)程序來引導 LLM。該程序包括三個不同的子過程:子問題劃分、子問題求解以及子解答合并。
在子問題劃分,我們提示 LLM 將任務(wù)分解為一系列具有較小規(guī)模的并行同質(zhì)子任務(wù)(例如將長段落分解為句子)。這里的并行原則保證模型可以分別處理這些子任務(wù)而不依賴于某些特定的求解順序。也因此,一個子任務(wù)的解答不會依賴于其它子任務(wù)的解答的正確性,這增強了模型對于中間錯誤的魯棒性,使模型獲得更強的分辨力。
之后,在子問題求解階段,我們提示 LLM 分別求解每個子任務(wù)。
最后,在子解答合并階段,我們提示 LLM 將每個子任務(wù)的答案組合起來并獲得最終答案。在這個過程中,所有三個階段的推理過程都被隔離開來以避免干擾。它們都由一個程序而不是 LLM 來引導,以避免幻覺或來自輸入上下文的欺騙。
在下面的示意圖中,我們將自己的方法和目前流行的提示策略進行了對比。
為了解決不同規(guī)模的任務(wù),我們提出了兩種變體:單級分治策略 (Single-Level Divide-and-Conquer) 和多級分治策略 (Multi-Level Divide-and-Conquer)。單級策略中,我們只對輸入進行一次劃分,然后就開始進行求解。在多級策略中,我們可以遞歸調(diào)用分治程序,從而把求解過程展開成一棵多層的樹。
理論分析
我們通過理論分析展示了為什么分治策略能夠提升大語言模型的分辨力。
此前的工作(Feng et al 2023, Merrill & Sabharwal 2023)已經(jīng)證明,現(xiàn)有的通用大語言模型所普遍采用的固定深度與對數(shù)精度的預訓練 Transformer,存在表達能力上的限制。
具體來說,假設(shè) NC1 類問題嚴格難于 TC0 類時(TC0 和 NC1 是并行計算理論中的兩大類問題,其關(guān)系類似 P 與 NP),那么這些 Transformer 模型在處理 NC1 完全問題時,其模型寬度需要以超多項式(如指數(shù))級別的速度隨問題規(guī)模增長。NC1 完全問題包含了很多常見的問題,比如兩色 2 叉子樹匹配問題。
而我們此前提到的評估兩段文本是否存在事實性沖突的問題,恰好可以被視為判斷總結(jié)文本所對應(yīng)的語義樹是否匹配新聞材料的語義樹的一棵子樹。因此,當總結(jié)性文本足夠長時,大語言模型會面臨表達能力不足的問題。我們的理論分析嚴格證明了,在基于分治的提示策略下,存在一個寬度和深度均為常數(shù)的 Transformer,可以在 log(n)的時間復雜度下解決任意規(guī)模的兩色 2 叉子樹匹配問題
實驗結(jié)果
我們考慮了三個任務(wù):大整數(shù)乘法、幻覺檢測、新聞驗證。我們基于 GPT-3.5-Turbo 和 GPT-4 進行評估。對于大整數(shù)乘法,此前的工作已經(jīng)證明,ChatGPT 難以正確計算 4 位以上的整數(shù)乘法問題。因此我們使用 5 位乘 5 位的乘法來驗證我們的提示策略的有效性。
結(jié)果如下圖所示,可以看出,無論是準確率指標還是編輯距離指標,我們的方法相對其他 baseline 都具有明顯優(yōu)勢。
對于幻覺檢測,我們采用 HaluEval 數(shù)據(jù)集中的 Summarization Hallucination Detection 子集。對于該子集,模型需要根據(jù)一段新聞材料判斷一段總結(jié)性文本是否包含幻覺。我們將總結(jié)性文本劃分為單句并分別進行檢測。
檢測結(jié)果如下,可以看到,我們的方法相對 baseline 更好的平衡了精確度和召回率,從而取得了更好的準確率和 F1 score。
對于新聞驗證,我們基于 SciFact 數(shù)據(jù)集構(gòu)造了一個段落驗證數(shù)據(jù)集。對于該數(shù)據(jù)集,模型需要根據(jù)一篇學術(shù)論文中的段落判斷一段新聞報道是真新聞還是假新聞。我們將新聞報道劃分為單句并分別進行檢測。
檢測結(jié)果如下,可以看到,我們的方法相對 baseline 取得了更好的準確率和 G-Mean score。