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