今年,大型语言模型(LLM)成为人工智能领域备受关注的焦点。LLM 在各种自然语言处理(NLP)任务上取得了显著的进展,尤其在推理方面的突破令人惊叹。然而,在复杂的推理任务上,LLM 的表现仍然有待提高
LLM 能否判断出自己的推理存在错误?最近,剑桥大学和 Google Research 联合开展的一项研究发现:LLM 无法自行发现推理错误,但却能够使用该研究提出的回溯方法来修正错误
这篇论文引发了一些争议,有人对此提出异议。例如,在Hacker News上,有人评论说论文的标题夸大其词,有点标题党的味道。还有人批评论文中提出的纠错逻辑错误的方法是基于模式匹配,而不是采用逻辑方法,这种方法容易失败
Huang 等人在论文《Large language models cannot self-correct reasoning yet》中指出:自我校正或许是能有效地提升模型输出的风格和质量,但鲜有证据表明 LLM 有能力在没有外部反馈的情况下识别和纠正自身的推理和逻辑错误。比如 Reflexion 和 RCI 都使用了基本真值的纠正结果作为停止自我校正循环的信号。
剑桥大学和Google Research的研究团队提出了一种全新的思路:将自我校正过程分为错误发现和输出校正两个阶段
本文的主要贡献包括:
BIG-Bench 包含了 2186 个使用 CoT 风格的轨迹信息集合。每个轨迹都是由 PaLM 2-L-Unicorn 生成的,并且标注了第一个逻辑错误的位置。表格 1 展示了一个轨迹示例,其中错误出现在第 4 步
这些轨迹来自 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所示
每個問題都有兩個可能的答案:要嘛正確,要嘛錯誤。如果是錯誤的話,數值 N 將指示第一個錯誤出現的步驟
所有模型都被輸入了相同的 3 個 prompt。他們使用了三種不同的prompt 設計方法:
需要重新寫作的內容是:相關討論
研究結果表明,這三個模型都難以應對這個新的錯誤發現資料集。 GPT 的表現最好,但在直接的步驟層面的 prompt 設計上也只能達到 52.87 的整體準確度。
這表示目前最佳的 LLM 難以發現錯誤,即使在最簡單和明確的案例中。相較之下,人類在沒有特定專業知識時也能發現錯誤,並且具有很高的一致性。
研究者猜測:LLM 無法發現錯誤是 LLM 無法自我校正推理錯誤的主要原因。
prompt 設計方法的比較
#研究人員發現,從直接軌跡層面的方法到步驟層面的方法再到CoT 方法,軌跡的準確度顯著降低,沒有出現錯誤。圖 1 顯示了這種權衡
研究者認為,造成這種情況的原因可能是模型輸出的數量。這三種方法都需要產生越來越複雜的輸出:直接產生軌跡的提示設計方法需要單一標記,直接產生步驟的提示設計方法需要每步一個標記,而CoT步驟層面的提示設計方法則需要每步多個句子。如果每次產生呼叫的錯誤率存在一定的機率,則每條軌跡的呼叫次數越多,模型至少辨識出一個錯誤的可能性就越大
##將錯誤位置作為正確性代理的少樣本prompt 設計
#研究者探究了這些prompt 設計方法能否可靠地決定一個軌蹟的正確性,而不是錯誤位置。他們算出了平均F1分數,計算依據是模型能否正確預測軌跡中是否有錯誤。如果有錯誤,則認為模型預測的軌跡是「錯誤答案」。否則,認為模型預測的軌跡是「正確答案」
使用correct_ans 和incorrect_ans 作為正例標籤,並根據每個標籤的出現次數進行加權,研究者計算了平均F1分數,結果如表5。
這個加權 F1 分數表明,對於確定最終答案的正確性而言,透過 prompt 尋找錯誤是一個很糟糕的策略。
回溯
研究者在這項研究中採用了一種替代方案:用一個在少量資料上訓練的輕量級分類器取代外部回饋。與傳統強化學習中的獎勵模型類似,這個分類器可以偵測 CoT 軌跡中的任何邏輯錯誤,然後再回饋給生成器模型以提升輸出。如果想要最大化提升,可以進行多次迭代。
研究者提出了一個簡單的方法,透過回溯邏輯錯誤的位置來提升模型的輸出 比起先前的自我校正方法,這種回溯方法有諸多優點: 研究人員使用 BIG-Bench Mistake 資料集進行實驗,旨在探討回溯方法是否有助於 LLM 校正邏輯錯誤。實驗結果請參考表格6
#∆accuracy✓ 是指原答案是correct_ans 時,在軌跡集合上的accuracy_ans 之差。 對於錯誤答案軌跡的結果,需要重新計算準確度 這些分數結果顯示:校正incorrect_ans 軌跡的效益大於改變原本正確的答案所造成的損失。此外,儘管隨機基準也獲得了提升,但它們的提升顯著小於使用真正錯誤位置時的提升。請注意,在隨機基準中,涉及步驟較少的任務更可能獲得效能提升,因為這樣更可能找到真正錯誤的位置。 為了探索在沒有好的標籤時,需要哪種準確度等級的獎勵模型,他們實驗了透過模擬的獎勵模型使用回溯;這種模擬的獎勵模型的設計目標是產生不同準確度等級的標籤。他們使用 accuracy_RM 表示模擬獎勵模型在指定錯誤位置的準確度。 當給定獎勵模型的 accuracy_RM 為 X% 時,便在 X% 的時間使用來自 BIG-Bench Mistake 的錯誤位置。對於剩餘的 (100 − X)%,就隨機取樣一個錯誤位置。為了模擬典型分類器的行為,會以與資料集分佈相符的方式來取樣錯誤位置。研究者也想辦法確保了採樣的錯誤位置與正確位置不符。結果見圖 2。 可以觀察到,當損失率達到65%時,∆準確率開始趨於穩定。實際上,對於大多數任務而言,在準確率_RM約為60-70%時,∆準確率✓已經超過了∆準確率✗。這表明,儘管更高的準確率可以獲得更好的結果,但即使沒有黃金標準的錯誤位置標籤,回溯仍然有效
以上是Google:LLM找不到推理錯誤,但能修正它的詳細內容。更多資訊請關注PHP中文網其他相關文章!