超越PaLM!北大碩士提出DiVeRSe,全面刷新NLP推理排行榜
?大型語言模型可以說是現(xiàn)代自然語言處理技術(shù)的基石了,比如1750億參數(shù)的GPT-3,5400億參數(shù)的PaLM,預(yù)訓(xùn)練模型為下游任務(wù)提供了非常強(qiáng)大的few-shot learning的能力。
但推理任務(wù)仍然是一個難關(guān),尤其是需要多步驟推理才能得到正確答案的問題。
最近有研究人員發(fā)現(xiàn),只要設(shè)計合適的prompt就能引導(dǎo)模型進(jìn)行多步驟的推理來生成最終答案,這種方法也稱為思維鏈(chain-of-thought)推理。
思維鏈技術(shù)在算術(shù)基準(zhǔn)GSM8K上將準(zhǔn)確率從17.9%提升到了58.1%,后來引入的投票自洽(self-consistency)機(jī)制進(jìn)一步將準(zhǔn)確率提升到74.4%
簡單來說,復(fù)雜的推理任務(wù)通常有多個能得到正確答案的推理路徑,自洽方法通過思維鏈從語言模型中采樣一組不同的推理路徑,然后返回其中最自洽的答案。
最近,來自北大和微軟的研究人員基于自洽的新方法DiVeRSe,包含三個主要的創(chuàng)新點(diǎn),進(jìn)一步提升了模型的推理能力。
論文鏈接:https://arxiv.org/abs/2206.02336
代碼鏈接:https://github.com/microsoft/DiVeRSe
第一,受到自洽方式「想法不同,答案相同」的啟發(fā),即從語言模型中采樣不同的推理路徑,DiVeRSe在多樣性上更進(jìn)一步,按照「條條大路通羅馬」的理念,使用多個prompt生成答案,能夠生成更完整、互補(bǔ)的答案。
研究人員首先對每個問題提供5個不同的prompts,然后對每個prompt采樣出20個推理路徑,最后就可以對每個問題生成100個解答推理路徑。
一個關(guān)鍵的問題是如何獲取不同的prompt,假定已經(jīng)獲取一個樣例庫后,我們可以從中采樣K個樣例來構(gòu)造一個prompt,然后重復(fù)5次即可
如果沒有足夠的樣例,則采用self-teaching的方式提升prompt多樣性,即從一部分樣例中生成偽推理路徑和<問題,答案>對。
第二,在生成推理路徑時,語言模型中并不存在一種機(jī)制來糾正先前步驟中的錯誤,可能會導(dǎo)致最終預(yù)測結(jié)果的混亂。DiVeRSe借鑒verifier的思想,對每個推理路徑的正確性進(jìn)行驗(yàn)證來引導(dǎo)投票機(jī)制。也就是說,并非所有的推理機(jī)制都是相等重要的或都是好的。
假設(shè)我們對一個問題有100條推理路徑,其中60條的結(jié)果為「答案是110」,而40條路徑的結(jié)果為「答案是150」。如果沒有驗(yàn)證器(即原始自洽方法),「答案是110」為多數(shù)票,所以我們可以將110視為最終答案,并刪除結(jié)果為150的40條推理路徑。
verifier則是對推理路徑進(jìn)行打分,函數(shù)f由一個二分類器訓(xùn)練得到,輸入為問題x,路徑z和答案y,輸出為positive的概率。
有verifier后,假設(shè)「答案是110」的60條推理路徑的平均得分是0.3;「答案是150」的40條推理路徑的平均得分是0.8。 那么最終的答案應(yīng)該是150,因?yàn)?0*0.8>60*0.3
第三,由于答案是基于多個步驟的推理而產(chǎn)生的,當(dāng)一個路徑生成一個正確的答案時,可以認(rèn)為所有的步驟都對最終的正確性做出了貢獻(xiàn)。然而,當(dāng)生成一個錯誤的答案時,這并不意味著所有的步驟都是錯誤的或?qū)﹀e誤有貢獻(xiàn)。
換句話說,盡管結(jié)果錯了,中間一些步驟可能仍然是正確的,但一些后續(xù)的偏離方向的步驟導(dǎo)致了最終的錯誤答案。DiVeRSe設(shè)計了一個機(jī)制,為每個步驟分配一個細(xì)粒度的標(biāo)簽,并提出了一個step-aware的驗(yàn)證器,并將正確性分配到每個步驟的推理上,而非只看最終的答案。
主體仍然是一個二分類器,但關(guān)鍵的問題為如何獲得step-level的負(fù)標(biāo)簽,因?yàn)槿绻罱K的答案錯誤,沒有人工的參與,我們并不知道哪步出錯,而正確的答案則過程應(yīng)該都是正確的。
研究人員提出supports的概念,比如在算術(shù)任務(wù)中,需要有另外一個樣例的中間結(jié)果和該中間步驟的結(jié)果相同。
基于這三點(diǎn)改進(jìn),研究人員在5個算數(shù)推理數(shù)據(jù)集上進(jìn)行實(shí)驗(yàn),可以看到在基于code-davinci-002的DiVeRSe方法都取得了新的SOTA算法,平均的提升率為6.2%
在兩個常識推理任務(wù)上,DiVeRSe的性能略低于基于PaLM的自洽(-2.2%),推測原因可能是常識推理任務(wù)是多項(xiàng)選擇任務(wù),而不是開放性的生成任務(wù),導(dǎo)致了出現(xiàn)了更多false-positive的偽例證。
在歸納推理任務(wù)上,DiVeRSe在CLUTRR任務(wù)上取得了95.9%的成績,超過了之前SOTA的微調(diào)結(jié)果(+28.9%)
在消融實(shí)驗(yàn)中,可以看到voting verifier機(jī)制對性能的提升是比較明顯的。
而在大多數(shù)實(shí)驗(yàn)中,將voting verifier擴(kuò)展為step-aware版本可以帶來性能的提升。對于GSM8K上的code-davinci-002,step-aware版本的verifier則會導(dǎo)致性能略有下降。
可能的原因?yàn)閏ode-davinci-002更強(qiáng)大,可以為GSM8K產(chǎn)生更高質(zhì)量的推理路徑,從而減少步驟級信息的必要性,即text-davinci更容易生成短/不完整的推理路徑,而code-davinci對生成長內(nèi)容更友好。
論文的第一作者為Yifei Li,于2020年本科畢業(yè)于東北大學(xué)軟件工程專業(yè),目前碩士就讀于北京大學(xué),主要研究方向?yàn)樽匀徽Z言處理,特別是大規(guī)模語言模型中的prompt-tuning和推理。
文章的第二作者為Zeqi Lin,為微軟亞洲研究院DKI研究員,分別于2014年和2019年獲得北京大學(xué)的學(xué)士和博士學(xué)位,主要研究方向?yàn)闄C(jī)器學(xué)習(xí)及其在軟件分析和數(shù)據(jù)分析中的應(yīng)用。?