人會逆向思維,LLM也可以?DeepMind研究表明還能提升推理能力
人能逆向思維,LLM 也可以嗎?北卡羅來納大學教堂山分校與谷歌最近的一項研究表明,LLM 確實可以,并且逆向思維還能幫助提升 LLM 的正向推理能力!
論文一作 Justin Chih-Yao Chen 的推文
簡單來說,正向思維就是從問題開始,一步步地得出答案;而逆向思維則是先從一個預測答案開始,逆推到原始問題。
組合使用正向和逆向思維可讓我們驗證解答的正確性并找到可能的錯誤。
舉個簡單例子,如果小明有 2 個蘋果,小紅有 3 個蘋果,那么他們一共有多少個蘋果?
使用正向推理,我們可以得出 2 + 3 = 5。再使用逆向推理,我們可以從共有 5 個蘋果的結論開始,然后根據小明有 2 個來逆向得知小紅有 3 個。這些數值與原始問題相符,故此可以驗證 5 這個答案的正確性。如果正向推理出錯了,比如答案是 6 個,那么逆向推理時就會得到與原始問題不一樣的數值:小紅有 4 個蘋果。這種矛盾可讓我們重新檢視自己的推理過程哪里有誤。
大型語言模型(LLM)的數學能力也能通過正向 - 逆向推理得到提升,原因有二:
- 數學本身是高度結構化的,因此正向和逆向推理之間存在明確的逆反關系;
- 只需替換名稱或數值等變量,就可以創建出新的數學問題。
那么問題來了:逆向思維能否應用于更廣泛、結構性較差的領域?
此外,這些方法通常是測試時使用,目的是驗證:給定一個解,讓 LLM 逆向思考并查看正向推理是否正確。雖然它們比其它測試時方法(例如自我一致性)的表現稍微好一點,但還是存在未解的疑問:我們能否訓練一個本身就能逆向思維的模型,從而提升其正向推理效果,而不是在測試時使用逆向推理進行驗證?
近日,北卡羅來納大學教堂山分校、谷歌 Cloud AI Research、谷歌 DeepMind 的一個聯合團隊為上面兩個問題提供了解答。他們發布的論文表明,逆向思維可以顯著 LLM 的推理能力,并且不限于數學任務。他們還提出了一個名叫 RevThink 的框架,可將逆向思維「灌輸」給語言模型。
- 論文標題:Reverse Thinking Makes LLMs Stronger Reasoners
- 論文地址:https://arxiv.org/pdf/2411.19865
論文發布后,吸引來不少稱贊之聲。
方法
RevThink 主要包含兩個階段:數據增強和全新的學習目標。
數據增強
首先,對于推理數據集,該團隊使用了一個更大、能力更強的教師模型來對其進行增強。
我們知道,一般來說,推理基準數據由一個問題和一個答案構成。那么該如何增強它呢?該團隊的方法是通過對教師模式使用少樣本提示來(few-shot prompting)生成三種新數據:正向推理、逆向問題、逆向推理。其中正向和逆向推理都會使用思維鏈。
只有當數據點的正向推理準確(與 ground truth 相符)且逆向推理與原始問題一致(通過提示教師模型進行驗證)時,該數據點才會被保留下來。
學習目標
完成數據集增強之后,該團隊還提出了三個用于訓練更小的學生模型的關鍵目標。
具體來說,學生模型需要學會:
- 基于問題生成正確的正向推理;
- 基于原始問題生成逆向問題;
- 基于逆向問題生成逆向推理。
之所以要設置這三個目標,該團隊說明了三點原因:
- 基于問題生成正確的正向推理是知識蒸餾的標準方法;
- 生成逆向問題會促使學生模型「思考」如何逆向一個問題并確定要問的正確問題;
- 最后,解決這個逆向問題可以增強學生模型逆向推理的能力。
在測試時,首先會使用問題來詢問該學生模型,而它只會生成前向推理 —— 類似于標準的零樣本推理。
本質上講,這個流程是在訓練過程中內化了逆向推理的能力,同時還能保證測試時間計算與零樣本方法一樣高效。
如圖 1 傳統的監督式微調側重于從問題到答案的單向推理。相比之下,RevThink 基于新提出的數據增強方法和目標,通過學習兩個方向的推理而引入了雙向思維。這能為模型帶來更大的提升。
實驗和評估
該團隊通過實驗驗證了 RevThink 的有效性。具體來說,他們使用的教師模型是 Gemini-1.5-Pro-001,學生模型是 Mistral-7B-Instruct-v0.3 和 Gemma-7B-Instruct。訓練中,他們使用了 LoRA 微調,秩設為 32。所有比較方法都使用了 vllm 和貪婪解碼。
他們也選擇了多種任務進行評估,包括常識推理(StrategyQA、CommonsenseQA、ARCchallenge),數學推理(MATH、GSM8K),表格數據推理(TabMWP)、自然語言推理(ANLI),邏輯推理(Date Understanding)。
參與比較的方法大致可分為三類:零樣本方法、知識蒸餾(包含符號知識蒸餾和逐步蒸餾)和數據增強(包含問題重新表述、問題增強、答案增強)。更多實驗設置請參閱原論文。
主要結果
表 1 給出了主要結果。
首先,RevThink 的平均性能表現很好,在不同數據集和模型上都優于基線。與學生模型的零樣本性能相比,RevThink 使用 Mistral 時實現了 12.68% 的平均提升,使用 Gemma 時實現了 14.37% 的平均提升。
此外,相比于符號知識蒸餾(SKD)和逐步蒸餾(Distill Step-by-Step)—— 依賴于使用來自教師模型的正確推理鏈來執行監督式微調,RevThink 有 6.44% 至 7.15% 的顯著提升。
與基于數據增強的基線方法相比,RevThink 帶來的增益也更為顯著,特別是在常識推理、表格推理和日期理解方面。雖然其中一些增強方法(例如答案增強 (AnsAug))對于數學推理很有效,但它們為其它領域帶來的改進較少。這表明數學是一個更結構化的領域,會隨著數據的增加而更好地擴展。
相比之下,RevThink 在各種推理任務上都能帶來穩定的提升。并且表 3 表明,在留存數據集上進行評估時,RevThink 在領域外數學數據集上也能帶來更大的增益,表現出了更好的泛化能力。
下面還列出了 RevThink 的更多優勢,相關詳情請訪問原論文:
- RevThink 表現出了很好的樣本效率。
- 逆向問題生成可提高性能,但充分利用新的數據集可獲得最佳性能。
- RevThink 的目標比使用指令調整的單獨實例更有效。
- 只需稍多一點 token,RevThink 就能獲得更大提升。
- RevThink 與模型大小呈正相關。
- RevThink 可泛化至 OOD 數據集。
- RevThink 可作為現有方法的補充。
- RevThink 在可逆問題和中等難度問題上表現出了更大的提升。