自我糾錯如何使OpenAI o1推理能力大大加強?北大MIT團隊理論解釋

自我糾錯(Self Correction)能力,傳統上被視爲人類特有的特徵,正越來越多地在人工智能領域,尤其是大型語言模型(LLMs)中得到廣泛應用,最近爆火的OpenAI o1模型[1]和Reflection 70B模型[2]都採取了自我糾正的方法。

傳統的大語言模型,因爲在輸出答案的時候是逐個Token輸出,當輸出長度較長時,中間某些Token出錯是必然發生。但即使LLM後來知道前面輸出的Token錯了,它也得用更多錯誤來“圓謊”,因爲沒有機制讓它去修正前面的錯誤。

而OpenAI o1在“慢思考”也就是生成Hidden COT的過程中,通過分析OpenAI官網給出的Hidden COT例子可以發現,在解決字謎問題的思考過程中,o1首先發現了每兩個連續的明文字母會映射到一個秘文字母,於是便嘗試使用奇數字母來構建明文,但是經過驗證發現並不合理(Not directly);接着又重新修正答案最終成功解出字謎。

圖1 OpenAI o1 官網示例(部分Hidden CoT)

Reflection 70B的關鍵技術也包括錯誤識別和錯誤糾正。他們用到了一種名爲Reflection-Tuning(反思微調)的技術,使得模型能夠在最終確定回覆之前,先檢測自身推理的錯誤並糾正。在實際的執行過程中,這會用到一種名爲思考標籤(thinking tag)的機制。模型會在這個標籤內部進行反思,直到它得到正確答案或認爲自己得到了正確答案。

頻頻應用於大語言模型的自我糾錯技術爲何有效?爲什麼糾錯過程可以讓模型把原本答錯的問題重新答對?

爲了探究這一問題,北大王奕森團隊與MIT合作,從理論上分析了大語言模型自我糾錯能力背後的工作機理。

作者團隊將自我糾錯的過程抽象爲對齊任務,從上下文學習(In-context learning)的角度對自我糾錯進行了理論分析。值得一提的是,他們並沒有使用線性注意力機制下的線性迴歸任務進行理論分析,而是使用真實世界LLM在用的softmax多頭注意力機制的transformer結構,並利用Bradley-Terry 模型和 Plackett-Luce 模型(LLM對齊的實際選擇,用於RLHF和DPO)設計對齊任務進行研究。受理論啓發,他們提出了一種簡單的自我糾錯策略--上下文檢查(Check as Context),並通過實驗,在消除大語言模型中存在的潛在偏見以及防禦越獄攻擊中效果顯著。

作者也通過設置驗證實驗來檢驗其理論導出的種種結論,以及各個 transformer 結構模塊對 LLM 執行上下文對齊能力的影響,作者發現了很多有趣的結論:

自我糾錯策略:上下文檢查

作者使用上下文檢查(Check as Context,CaC)作爲LLM完成自我糾錯的方法,在兩個現實世界的對齊任務中探索了自我糾錯:緩解社會偏見和防範越獄攻擊。

圖3 BBQ數據集上使用CaC的示例。

消除LLM社會偏見

本文使用 BBQ(Bias Benchmark for QA)數據集,在 vicuna-7B 和 Llama2-7b-chat 模型上測試了 CaC 方法的效果。此外,還在 BBQ 上研究了模型大小、評估質量和糾錯輪數對糾錯效果的影響。主要結論如下:

圖4 CaC對於不同種類的偏見的修正

圖5 BBQ上關於模型大小、評估質量以及糾錯輪數的消融實驗

同時,在防禦越獄攻擊的實驗中,CaC也是所有測試的防禦手段中最低的。

更多文章細節,請參考原文:https://openreview.net/pdf?id=OtvNLTWYww

參考資料:

[1] https://openai.com/index/introducing-openai-o1-preview/

[2] https://reflection70b.com/