1 正向推理+反向驗(yàn)證
來(lái)源:AI科技評(píng)論 作者:黃楠、李梅
語(yǔ)言模型越大,其自我驗(yàn)證能力越強(qiáng),推理性能也更高。
推理能力是機(jī)器接近人類(lèi)智能的一個(gè)重要指標(biāo)。
最近的大型語(yǔ)言模型(Large language mode,LLM)正在變得越來(lái)越擅長(zhǎng)推理,背后的一個(gè)關(guān)鍵技術(shù)是思維鏈(chain-of-thought,CoT),簡(jiǎn)單來(lái)說(shuō),CoT 可以讓 LLM 模擬人類(lèi)思考的過(guò)程,幫助大型語(yǔ)言模型生成一個(gè)推理路徑,將復(fù)雜的推理問(wèn)題分解為多個(gè)簡(jiǎn)單的步驟,而不僅僅只是一個(gè)最終答案,從而增強(qiáng)模型的推理能力。
對(duì)人類(lèi)而言,我們推斷得出一個(gè)結(jié)論后,往往會(huì)通過(guò)重新驗(yàn)證來(lái)進(jìn)行核對(duì)、避免錯(cuò)誤。但當(dāng) LLM 在通過(guò) CoT 執(zhí)行復(fù)雜推理尤其是算術(shù)和邏輯推理的過(guò)程中若出現(xiàn)錯(cuò)誤,會(huì)在一定程度上影響推理效果,所以不得不進(jìn)行人工驗(yàn)證。
那么能不能讓語(yǔ)言模型也具備自我糾錯(cuò)和自我驗(yàn)證的能力呢?
近日,中國(guó)科學(xué)院自動(dòng)化所的研究團(tuán)隊(duì)提出了一種新方法證明了 LLM 可對(duì)自己的推理結(jié)論進(jìn)行可解釋的自我驗(yàn)證,從而大大提高推理性能,這讓 LLM 朝著人類(lèi)智能又前進(jìn)了一步。
論文地址:https://arxiv.org/pdf/2212.09561.pdf
1 正向推理+反向驗(yàn)證
當(dāng)涉及復(fù)雜推理時(shí),語(yǔ)言模型往往缺乏穩(wěn)健性,一旦發(fā)生任何一個(gè)小錯(cuò)誤,都可能會(huì)改變命題的全部含義,從而導(dǎo)致出現(xiàn)錯(cuò)誤答案。使用CoT 提示進(jìn)行推理時(shí),問(wèn)題會(huì)更嚴(yán)重,由于模型沒(méi)有糾錯(cuò)機(jī)制,以至于很難從錯(cuò)誤的假設(shè)中糾正過(guò)來(lái)。
以往的一種解決方法是通過(guò)訓(xùn)練驗(yàn)證器(verififiers)來(lái)評(píng)估模型輸出正確性。但訓(xùn)練驗(yàn)證器有三個(gè)大缺點(diǎn):需要大量的人力和計(jì)算資源、可能存在誤報(bào)、可解釋性差。
為此,中科院團(tuán)隊(duì)提出讓 LLM 進(jìn)行自我驗(yàn)證。
首先,假設(shè)推理問(wèn)題中的所有條件對(duì)于得出結(jié)論都是必要的,給定結(jié)論和其他條件后,可推導(dǎo)出其余條件。自我驗(yàn)證分兩個(gè)階段進(jìn)行:
正向推理,LLM 生成候選思維鏈和結(jié)論給定的問(wèn)題文本;
反向驗(yàn)證,使用 LLM 來(lái)驗(yàn)證條件是否滿足候選結(jié)論,并根據(jù)驗(yàn)證分?jǐn)?shù)對(duì)候選結(jié)論進(jìn)行排序。
如下圖,對(duì)于“Jackie 有 10 個(gè)蘋(píng)果(f1),Adam 有 8 個(gè)蘋(píng)果(f2),Jackie 比 Adam 多了多少個(gè)蘋(píng)果?”這個(gè)問(wèn)題,可從 f1 和 f2 推理出結(jié)論 fy。然后,通過(guò)反向驗(yàn)證來(lái)檢驗(yàn)該結(jié)論的準(zhǔn)確性,就像解方程一樣,如果以 f2 和 fy 為條件,可以得出 f1,通過(guò)驗(yàn)證 f1 是否與原來(lái)的 f1 結(jié)果一致,可以判斷 fy 的正確性。
研究表明,LLM 僅需少量提示即可使用自我驗(yàn)證,無(wú)需訓(xùn)練或梯度更新。它們用候選結(jié)論來(lái)驗(yàn)證,解決了原 CoT 中偏離正確思維過(guò)程的問(wèn)題。而且,驗(yàn)證分?jǐn)?shù)源自整個(gè)思維推理過(guò)程,可解釋性很高。
通過(guò)對(duì) GPT?3、CODEX 和 Instruct?GPT 等大模型的實(shí)驗(yàn)分析,這項(xiàng)研究證明了 LLM 具備可解釋的自我驗(yàn)證能力。
2 LLM 的自我驗(yàn)證過(guò)程
自我驗(yàn)證的整個(gè)過(guò)程如圖 2所示。第一步與 CoT 類(lèi)似,但研究通過(guò)采樣解碼生成多個(gè)候選結(jié)論,計(jì)算每個(gè)候選結(jié)論的驗(yàn)證分?jǐn)?shù),并選擇最高分?jǐn)?shù)作為最終結(jié)論。
LLM 在第一階段中生成一些候選結(jié)論,三個(gè)預(yù)訓(xùn)練語(yǔ)言模型用于大量自動(dòng)構(gòu)建的數(shù)值推理問(wèn)題,但這些方法需要大量的數(shù)據(jù)和專(zhuān)家注釋?zhuān)缓?LLM 依次驗(yàn)證這些結(jié)論,統(tǒng)計(jì)推理正確的屏蔽條件的個(gè)數(shù)作為第二階段的驗(yàn)證分?jǐn)?shù)
如果只屏蔽第一個(gè)證據(jù),則不需要這個(gè)證據(jù)(前向推理時(shí),需要計(jì)算周末的錢(qián),周五的工作時(shí)數(shù)不影響最終結(jié)論)。因此,我們無(wú)法根據(jù)現(xiàn)有條件和任何候選結(jié)論來(lái)預(yù)測(cè)此證據(jù)
給定一個(gè)語(yǔ)言模型 M 和一個(gè)問(wèn)答數(shù)據(jù)集 D,CoT 為 D 設(shè)計(jì)了一組樣本 C,其中包含 n 個(gè)樣本,epoch 樣本有包含條件和問(wèn)題的輸入 X,思維過(guò)程 t 和結(jié)論 y。這些示例用作測(cè)試時(shí)間的輸入。通常 n 是一位數(shù),因此需要語(yǔ)言模型 M 在生成 y 之前安裝 C 生成 t 的提示:
C 中的每個(gè)示例都連接為提示。
使用 Sampling 解碼生成 K y,K 是 y 的個(gè)數(shù)。具體來(lái)說(shuō),采樣譯碼是一種隨機(jī)譯碼方法,它可以在每一步從可能生成的詞的概率分布中采樣來(lái)選擇下一個(gè)詞,重復(fù)使用 Sampling 解碼可以得到多個(gè)候選結(jié)論。
對(duì)輸入的 X 進(jìn)一步細(xì)分為
其中每個(gè) f 是一個(gè)條件,q 是一個(gè)問(wèn)題。我們使用命令“請(qǐng)把問(wèn)題和答案改成完整的陳述句[q] The answer is [y]”通過(guò) M 把 q 和 y 改成新的陳述句 fy 。在問(wèn)題生成上,問(wèn)題的多樣性使得在實(shí)際操作中很難平衡問(wèn)題和答案之間的連貫性和事實(shí)一致性的需要,因此直接屏蔽條件。首先,通過(guò)正則匹配找到 f1 中的值改寫(xiě)為 X,在新問(wèn)題的末尾加入“What is the answer of X?” ,從而提示語(yǔ)言模型指示目標(biāo)。
如圖 4 所示,如果給定的 X 不滿足所有條件都是結(jié)論的必要條件,可以發(fā)現(xiàn)只有掩碼的第一個(gè)條件會(huì)有局限性,難以準(zhǔn)確評(píng)估其驗(yàn)證分?jǐn)?shù)。為了解決這個(gè)問(wèn)題,可以采用多個(gè)條件依次驗(yàn)證的方法:依次用 X 替換原始 X 中出現(xiàn)的所有 f,并要求 M 重新預(yù)測(cè)它,提高驗(yàn)證的可靠性和準(zhǔn)確性。
研究人員設(shè)計(jì)了一個(gè)類(lèi)似于正向推理的 CoT 以指導(dǎo) LLM 生成解決過(guò)程。而反向驗(yàn)證過(guò)程類(lèi)似于求解方程式,可將其最終結(jié)果與屏蔽條件進(jìn)行匹配。
由于 LLM 本身性能有限,在反向驗(yàn)證過(guò)程中,單次解碼會(huì)因隨機(jī)性導(dǎo)致驗(yàn)證結(jié)果出現(xiàn)偏差,難以保證更準(zhǔn)確的驗(yàn)證分?jǐn)?shù)。為了解決這個(gè)問(wèn)題,采樣解碼過(guò)程將重復(fù) P 次,這樣驗(yàn)證分?jǐn)?shù)就可以更準(zhǔn)確地反映模型對(duì)給定結(jié)論的置信度。
驗(yàn)證分?jǐn)?shù)計(jì)算如下:
其中,1(.)為指示函數(shù),從生成的 K 個(gè)候選答案中選擇驗(yàn)證分?jǐn)?shù)最高的一個(gè)作為結(jié)果,
3 LLM 的自我驗(yàn)證能增強(qiáng)推理性能
任務(wù)和數(shù)據(jù)集
此項(xiàng)研究評(píng)估了6個(gè)算術(shù)推理數(shù)據(jù)集,進(jìn)一步證明了自我驗(yàn)證在常識(shí)推理和邏輯推理數(shù)據(jù)集上的有效性。這些數(shù)據(jù)集在輸入格式方面高度異質(zhì):
算術(shù),前兩個(gè)是一步推理的數(shù)據(jù)集,后四個(gè)需要多步推理,解決起來(lái)比較有挑戰(zhàn)性
常識(shí),CommonsenseQA(CSQA)需要使用常識(shí)和關(guān)于世界的知識(shí)才能準(zhǔn)確回答具有復(fù)雜含義的問(wèn)題,其依賴(lài)于先驗(yàn)知識(shí)來(lái)提供準(zhǔn)確的響應(yīng)
邏輯,日期理解要求模型從一個(gè)上下文推斷日期
型號(hào)
研究人員在實(shí)驗(yàn)中測(cè)試來(lái)原始 CODEX 模型和 Instruct?GPT 模型,此外還通過(guò)使用 GPT?3 進(jìn)行分析實(shí)驗(yàn),研究了不同參數(shù)級(jí)別對(duì)可驗(yàn)證性的影響,LLM 的大小范圍為 0.3B 到 175B 。這些實(shí)驗(yàn)使用了 OpenAI 的 API 來(lái)獲得推理結(jié)果。
實(shí)驗(yàn)結(jié)果表明,使用了自我驗(yàn)證的兩個(gè)模型在多個(gè)任務(wù)中實(shí)現(xiàn)了 SOTA 性能。
可以看到,自我驗(yàn)證在算術(shù)數(shù)據(jù)集上實(shí)現(xiàn)了1.67%/2.84%的平均改進(jìn),并為常識(shí)推理和邏輯推理任務(wù)帶來(lái)了少量?jī)?yōu)化。此外,自我驗(yàn)證還直接導(dǎo)致高性能 Instruct?GPT 模型結(jié)果平均增加2.33%,這表明,具有強(qiáng)大前向推理能力的模型也具有很高的自我驗(yàn)證能力。
研究人員進(jìn)一步發(fā)現(xiàn)了以下幾個(gè)關(guān)鍵結(jié)論。
可用條件越多,驗(yàn)證準(zhǔn)確性越高
圖 6 中觀察了對(duì)六個(gè)不同算術(shù)數(shù)據(jù)集使用單一條件掩碼的效果:由于這些數(shù)據(jù)集輸入中的每個(gè)數(shù)字都可以被視為一個(gè)條件,因此可以研究增加驗(yàn)證條件數(shù)量的影響。經(jīng)大多數(shù)實(shí)驗(yàn)可發(fā)現(xiàn),多條件掩碼比單條件掩碼表現(xiàn)更好,并且都比原始 CoT 表現(xiàn)更好。
模型越大,自我驗(yàn)證能力越強(qiáng)
圖 7顯示了參數(shù)從 0.4B 到 175B 的 GPT?3 模型能力。實(shí)驗(yàn)結(jié)果表明,當(dāng)參數(shù)較小時(shí),模型的自驗(yàn)證能力較弱,甚至不如 CoT 的原始性能。這說(shuō)明,模型的自我驗(yàn)證也是一種涌現(xiàn)能力,且往往出現(xiàn)在更大的模型中。
思維鏈提示很少并不影響自我驗(yàn)證能力
圖 8 所示的實(shí)驗(yàn)結(jié)果顯示了不同的提示量對(duì)性能的影響。可以看到,自我驗(yàn)證在較小的樣本中表現(xiàn)出更大的穩(wěn)健性,甚至低至 2 次,這時(shí)候其 8 次提示的性能是 99.6%,而 CoT 只有 98.7%。不僅如此,即使只有 4 個(gè)提示(2 個(gè) CoT 提示+ 2 個(gè)自我驗(yàn)證提示),自我驗(yàn)證也明顯優(yōu)于 CoT 8 次提示,突出了自我驗(yàn)證在數(shù)據(jù)有限情況下的重要性。
與其它方法相比,條件掩碼的自我驗(yàn)證性能更優(yōu)
有另一種方法可以驗(yàn)證模型答案的正確性:真-假項(xiàng)目驗(yàn)證,這以方法是模型對(duì)所有條件進(jìn)行二分判斷,如圖 12 所示,不覆蓋任何條件。此研究還提供了一個(gè)反向推理的例子,并嘗試讓模型自動(dòng)從結(jié)論是否滿足條件進(jìn)行反向推理,但實(shí)驗(yàn)結(jié)果如圖 10 所示,真-假項(xiàng)目驗(yàn)證的性能,要落后于條件掩碼驗(yàn)證的性能。
為了理解這種差距的原因,研究分析了具體案例,如圖 11 所示,結(jié)果表明:(1)缺乏明確的反向推理目標(biāo)導(dǎo)致模型再次從正向推理,該結(jié)果沒(méi)有意義、并且不利用現(xiàn)有的結(jié)論;(2)真-假項(xiàng)目驗(yàn)證提供了所有的條件,但這些條件可能會(huì)誤導(dǎo)模型的推理過(guò)程,使模型沒(méi)有起點(diǎn)。因此,更有效的做法是使用條件掩碼驗(yàn)證,從而更好地激發(fā)模型的自我驗(yàn)證能力。
LLM 的自我驗(yàn)證能糾錯(cuò),但可也能「誤傷」
圖 12:使用 Instruct?GPT 為八個(gè)數(shù)據(jù)集中的每一個(gè)生成了五組候選答案,然后利用 Instruct?GPT 的自我驗(yàn)證 能力,對(duì)它們進(jìn)行一一判斷和排序
左邊的扇形圖顯示了自我驗(yàn)證產(chǎn)生的候選結(jié)論的預(yù)測(cè)結(jié)果。LLM 在每次提示中產(chǎn)生1-5個(gè)候選結(jié)論(由于 LLM 的自洽性,可能會(huì)產(chǎn)生相同的候選結(jié)論),這些結(jié)論可能是正確的,也可能是錯(cuò)誤的,再通過(guò) LLM 自我驗(yàn)證來(lái)檢驗(yàn)這些結(jié)論,并將其類(lèi)為真陽(yáng)性(TP)、真陰性(TN)、假陰性(FN)或假陽(yáng)性(FP)。可以發(fā)現(xiàn),除了 TP 和 TN 之外,還有大量的 FN,但只有少量的 FP。
右邊的表格顯示了召回率明顯高于準(zhǔn)確率,由此可以說(shuō)明,LLM 的自我驗(yàn)證可以準(zhǔn)確剔除不正確的結(jié)論,但也可能將一個(gè)正確結(jié)論錯(cuò)誤地認(rèn)為是不正確的。這可能是由于反向驗(yàn)證時(shí)方程錯(cuò)誤或計(jì)算錯(cuò)誤造成的,這一問(wèn)題將在未來(lái)解決。
最后總結(jié)一下,這項(xiàng)工作提出的自我驗(yàn)證方法能夠讓大型語(yǔ)言模型和提示來(lái)引導(dǎo)模型驗(yàn)證自己的結(jié)果,能提高 LLM 在推理任務(wù)中的準(zhǔn)確性和可靠性。
但需要注意的是,這些提示是人為構(gòu)造的,可能會(huì)引入偏差。所以方法的有效性會(huì)受到 LLM 產(chǎn)生的候選結(jié)論中正確答案的存在的限制,因此取決于模型正確前向推理的能力。
此外,該方法涉及生成多個(gè)候選 CoT 和結(jié)論,這對(duì)于 LLM 來(lái)說(shuō)也存在計(jì)算資源的消耗。雖然它可以幫助 LLM 避免來(lái)自不正確的 CoT 干擾,但也可能無(wú)法完全消除推理過(guò)程中的錯(cuò)誤。
聯(lián)系客服