首頁  >  文章  >  科技週邊  >  Google:LLM找不到推理錯誤,但能修正它

Google:LLM找不到推理錯誤,但能修正它

王林
王林轉載
2023-11-27 14:39:20988瀏覽

今年,大型语言模型(LLM)成为人工智能领域备受关注的焦点。LLM 在各种自然语言处理(NLP)任务上取得了显著的进展,尤其在推理方面的突破令人惊叹。然而,在复杂的推理任务上,LLM 的表现仍然有待提高

LLM 能否判断出自己的推理存在错误?最近,剑桥大学和 Google Research 联合开展的一项研究发现:LLM 无法自行发现推理错误,但却能够使用该研究提出的回溯方法来修正错误

Google:LLM找不到推理錯誤,但能修正它

  • 论文地址:https://arxiv.org/pdf/2311.08516.pdf
  • 数据集地址:https://github.com/WHGTyen/BIG-Bench-Mistake

这篇论文引发了一些争议,有人对此提出异议。例如,在Hacker News上,有人评论说论文的标题夸大其词,有点标题党的味道。还有人批评论文中提出的纠错逻辑错误的方法是基于模式匹配,而不是采用逻辑方法,这种方法容易失败

Huang 等人在论文《Large language models cannot self-correct reasoning yet》中指出:自我校正或许是能有效地提升模型输出的风格和质量,但鲜有证据表明 LLM 有能力在没有外部反馈的情况下识别和纠正自身的推理和逻辑错误。比如 Reflexion 和 RCI 都使用了基本真值的纠正结果作为停止自我校正循环的信号。

剑桥大学和Google Research的研究团队提出了一种全新的思路:将自我校正过程分为错误发现和输出校正两个阶段

  • 错误发现是一种基础推理技能,已经在哲学、心理学和数学领域得到了广泛的研究和应用,并催生了批判性思维、逻辑和数学谬误等概念。我们可以合理地认为发现错误的能力也应该是 对 LLM 的一项重要要求。但是,本文结果表明:当前最佳的 LLM 目前还无法可靠地发现错误。
  • 输出校正涉及部分或完全修改之前生成的输出。自我校正是指由生成输出的同一模型来完成校正。尽管 LLM 没有发现错误的能力,但本文表明:如果能提供有关错误的信息(如通过一个小型的监督式奖励模型),LLM 可以使用回溯方法校正输出。

本文的主要贡献包括:

  • 使用思维链 prompt 设计方法,任何任务都可以变成错误发现任务。研究者为此收集并发布了一个 CoT 类型的轨迹信息数据集 BIG-Bench Mistake,该数据集由 PaLM 生成,并标注了第一个逻辑错误的位置。研究者表示,BIG-Bench Mistake 在它的同类数据集中,是首个不局限于数学问题的数据集。
  • 为了测试当前最佳 LLM 的推理能力,研究者基于新数据集对它们进行了基准评测。结果发现,当前 SOTA LLM 也难以发现错误,即便是客观的明确的错误。他们猜测:LLM 无法发现错误是 LLM 无法自我校正推理错误的主要原因,但这方面还有待进一步研究。
  • 本文提出使用回溯方法来校正输出,利用错误的位置信息来提升在原始任务上的性能。研究表明这种方法可以校正原本错误的输出,同时对原本正确的输出影响极小。
  • 本文将回溯方法解释成了「言语强化学习」的一种形式,从而可实现对 CoT 输出的迭代式提升,而无需任何权重更新。研究者提出,可以通过一个经过训练的分类器作为奖励模型来使用回溯,他们也通过实验证明了在不同奖励模型准确度下回溯的有效性。

BIG-Bench Mistake数据集

BIG-Bench 包含了 2186 个使用 CoT 风格的轨迹信息集合。每个轨迹都是由 PaLM 2-L-Unicorn 生成的,并且标注了第一个逻辑错误的位置。表格 1 展示了一个轨迹示例,其中错误出现在第 4 步

Google:LLM找不到推理錯誤,但能修正它

这些轨迹来自 BIG-Bench 数据集中的 5 个任务:词排序、跟踪经过混洗的对象、逻辑推演、多步算术和 Dyck 语言。

為了解答每個任務的問題,他們使用了CoT prompt 設計法來呼叫 PaLM 2。為了將CoT 軌跡分成明確的步驟,他們採用了《React: Synergizing reasoning and acting in language models》中提出的方法,分開生成每一步,並使用換行符作為停止標記

#產生所有軌跡時,在該資料集中,當temperature = 0時,答案的正確性由精確匹配決定

#基準測試結果 

在新的錯誤發現資料集上,報告了GPT-4-Turbo、GPT-4和GPT-3.5-Turbo的準確度如表4所示

Google:LLM找不到推理錯誤,但能修正它

每個問題都有兩個可能的答案:要嘛正確,要嘛錯誤。如果是錯誤的話,數值 N 將指示第一個錯誤出現的步驟

所有模型都被輸入了相同的 3 個 prompt。他們使用了三種不同的prompt 設計方法:

  • 直接的軌跡層面的prompt 設計 
  • ##直接的步驟層面的prompt 設計 
  • CoT 步驟層面的prompt 設計

需要重新寫作的內容是:相關討論

研究結果表明,這三個模型都難以應對這個新的錯誤發現資料集。 GPT 的表現最好,但在直接的步驟層面的 prompt 設計上也只能達到 52.87 的整體準確度。

這表示目前最佳的 LLM 難以發現錯誤,即使在最簡單和明確的案例中。相較之下,人類在沒有特定專業知識時也能發現錯誤,並且具有很高的一致性。

研究者猜測:LLM 無法發現錯誤是 LLM 無法自我校正推理錯誤的主要原因。

prompt 設計方法的比較

#研究人員發現,從直接軌跡層面的方法到步驟層面的方法再到CoT 方法,軌跡的準確度顯著降低,沒有出現錯誤。圖 1 顯示了這種權衡

Google:LLM找不到推理錯誤,但能修正它

研究者認為,造成這種情況的原因可能是模型輸出的數量。這三種方法都需要產生越來越複雜的輸出:直接產生軌跡的提示設計方法需要單一標記,直接產生步驟的提示設計方法需要每步一個標記,而CoT步驟層面的提示設計方法則需要每步多個句子。如果每次產生呼叫的錯誤率存在一定的機率,則每條軌跡的呼叫次數越多,模型至少辨識出一個錯誤的可能性就越大

##將錯誤位置作為正確性代理的少樣本prompt 設計

#研究者探究了這些prompt 設計方法能否可靠地決定一個軌蹟的正確性,而不是錯誤位置。

他們算出了平均F1分數,計算依據是模型能否正確預測軌跡中是否有錯誤。如果有錯誤,則認為模型預測的軌跡是「錯誤答案」。否則,認為模型預測的軌跡是「正確答案」

使用correct_ans 和incorrect_ans 作為正例標籤,並根據每個標籤的出現次數進行加權,研究者計算了平均F1分數,結果如表5。

Google:LLM找不到推理錯誤,但能修正它

這個加權 F1 分數表明,對於確定最終答案的正確性而言,透過 prompt 尋找錯誤是一個很糟糕的策略。

回溯

黃等人指出,LLM在沒有外部回饋的情況下無法自我校正邏輯錯誤。然而,在許多真實世界的應用中,通常是沒有可用的外部回饋的

研究者在這項研究中採用了一種替代方案:用一個在少量資料上訓練的輕量級分類器取代外部回饋。與傳統強化學習中的獎勵模型類似,這個分類器可以偵測 CoT 軌跡中的任何邏輯錯誤,然後再回饋給生成器模型以提升輸出。如果想要最大化提升,可以進行多次迭代。

研究者提出了一個簡單的方法,透過回溯邏輯錯誤的位置來提升模型的輸出

  • 模型首先產生一個初始的CoT 軌跡。在實驗中,設定 temperature = 0。
  • 然後使用獎勵模型確定軌跡中錯誤的位置。
  • 如果沒有錯誤,就轉向下一個軌跡。如果有錯誤,則再次向模型輸入 prompt 以執行相同的步驟,但這次 temperature = 1,產生 8 個輸出。這裡會使用同樣的 prompt 以及包含錯誤步驟之前所有步驟的部分軌跡。
  • 在這 8 個輸出中,過濾掉與先前的錯誤一樣的選項。再從剩下的輸出中選擇對數機率最高的一個。
  • 最後,用新的重新產生的步驟取代先前步驟,再重新設定 temperature = 0,繼續產生該軌跡的剩餘步驟。

比起先前的自我校正方法,這種回溯方法有諸多優點:

  • 新的回溯方法不需要對答案有預先的知識。相反,它依賴於有關邏輯錯誤的資訊(例如來自訓練獎勵模型的資訊),這可以使用獎勵模型一步步地確定。邏輯錯誤可能出現在 correct_ans 軌跡中,也可能不出現在 incorrect_ans 軌跡中。 
  • 回溯方法不依賴任何特定的 prompt 文字或措辭,從而可減少相關的偏好。 
  • 比相比需要重新產生整個軌跡的方法,回溯方法可以透過重複使用已知邏輯正確的步驟來降低計算成本。
  • 回溯方法可直接提升中間步驟的質量,這可能對需要正確步驟的場景來說很有用(例如產生數學問題的解),同時還能提升可解釋性。

研究人員使用 BIG-Bench Mistake 資料集進行實驗,旨在探討回溯方法是否有助於 LLM 校正邏輯錯誤。實驗結果請參考表格6

Google:LLM找不到推理錯誤,但能修正它

#∆accuracy✓ 是指原答案是correct_ans 時,在軌跡集合上的accuracy_ans 之差。

對於錯誤答案軌跡的結果,需要重新計算準確度

這些分數結果顯示:校正incorrect_ans 軌跡的效益大於改變原本正確的答案所造成的損失。此外,儘管隨機基準也獲得了提升,但它們的提升顯著小於使用真正錯誤位置時的提升。請注意,在隨機基準中,涉及步驟較少的任務更可能獲得效能提升,因為這樣更可能找到真正錯誤的位置。

為了探索在沒有好的標籤時,需要哪種準確度等級的獎勵模型,他們實驗了透過模擬的獎勵模型使用回溯;這種模擬的獎勵模型的設計目標是產生不同準確度等級的標籤。他們使用 accuracy_RM 表示模擬獎勵模型在指定錯誤位置的準確度。

當給定獎勵模型的 accuracy_RM 為 X% 時,便在 X% 的時間使用來自 BIG-Bench Mistake 的錯誤位置。對於剩餘的 (100 − X)%,就隨機取樣一個錯誤位置。為了模擬典型分類器的行為,會以與資料集分佈相符的方式來取樣錯誤位置。研究者也想辦法確保了採樣的錯誤位置與正確位置不符。結果見圖 2。

Google:LLM找不到推理錯誤,但能修正它

可以觀察到,當損失率達到65%時,∆準確率開始趨於穩定。實際上,對於大多數任務而言,在準確率_RM約為60-70%時,∆準確率✓已經超過了∆準確率✗。這表明,儘管更高的準確率可以獲得更好的結果,但即使沒有黃金標準的錯誤位置標籤,回溯仍然有效

以上是Google:LLM找不到推理錯誤,但能修正它的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:51cto.com。如有侵權,請聯絡admin@php.cn刪除