1 簡介
Prompt learning中的prompt如同一種心理暗示,可以驅(qū)使語言模型按照特定的方向去預(yù)測。就像一種解題技巧,只要加入了它,就能更準確的解決問題。在之前prompt系列的文章中,我們介紹過各種形式的prompt,也強調(diào)過一個合適的prompt對于下游任務(wù)的效果影響重大,為此如何尋找一個合適的prompt的顯得尤為重要。
今天介紹一個最近剛被發(fā)現(xiàn)的“寶藏prompt”,Let’s think step by step,通過使用特定的prompt“Let’s think step by step”和相應(yīng)的兩階段prompt技巧,提高了大規(guī)模語言模型在的推理能力,在多個推理相關(guān)的zero-shot任務(wù)取得驚人的提升,遠超之前的zero-shot方法。
2背景
大規(guī)模預(yù)訓(xùn)練語言模型借助于針對特定任務(wù)設(shè)計的prompt(無論是few shot還是zero shot),在單步驟的system-1任務(wù)上有著出色表現(xiàn),但是對于那些緩慢和需要多步推理的system-2任務(wù)表現(xiàn)不佳。(system-1跟system-2是心理學(xué)家定義的一些推理任務(wù),可以理解為system-1是那些一步就可以推出答案的任務(wù),,而system-2則是那些需要通過多步推理才能解決的任務(wù))。
為了解決大規(guī)模語言模型在system-2任務(wù)中表現(xiàn)不佳的問題,CoT(Chain of thought prompting)被提出來,它將原本的few shot的樣例,調(diào)整為逐步推理的答案,從而讓語言模型去學(xué)習(xí)few shot樣例的逐步推理過程,從而控制模型推理能力的方向,在復(fù)雜的system-2任務(wù)中獲得明顯提升。細節(jié)可以見下圖中的樣例,其中左上角就是原本的few shot prompt,而右上角就是將few shot樣例調(diào)整為逐步推理樣例的CoT(為了跟后面的Zero-shot-CoT區(qū)分而稱為Few-shot- CoT),可以看出Few-shot-CoT是將few shot樣例里的推理過程展開了,讓語言模型能更好的學(xué)習(xí)其中的細節(jié)。
圖1:Few-shot, Few-shot-CoT, Zero-shot, Zero-shot-CoT示例
3 Zero-shot-CoT
跟前面提及的Few-shot Cot不同,Zero-shot-CoT不需要經(jīng)過調(diào)整的逐步推理的few shot樣例,也不同大多數(shù)prompt,它不依賴于特定的任務(wù),可以利用當前問題逐步的推理過程推導(dǎo)得到一個簡單的prompt模版,從而控制語言模型預(yù)測的方向。Zero-shot Cot的核心是利用“Let’s think step by step”去抽取當前問題的逐步推理過程。雖然Zero-shot-CoT的概念很簡單,它的巧妙之處在于整個過程使用了兩次prompt,具體過程如下,同時可以查看下圖樣例加深理解。
a)推論抽取
首先將問題X通過一個簡單的模版”Q:[X].A:[Z]”調(diào)整為一個prompt,其中[X]是一個輸入槽位,通過問題X來填充,而[Z]是一個觸發(fā)器槽位,用一個人工構(gòu)建的觸發(fā)器句子來填充,使得語言模型可以從中抽取回答問題X所需的逐步推理過程,論文中用的觸發(fā)器句子是“Let’s think step by step.”。然后將構(gòu)造好的模版輸入到語言模型,從而生成后續(xù)的句子Z(可以使用任何解碼策略,論文為了簡便使用了貪婪解碼策略)。
b)答案抽取
將第一步構(gòu)造好的模版Q:[X].A:[Z],生成的句子Z,和一個新的觸發(fā)器句子[A]拼接到一起輸入到同一個語言模型,利用語言模型生成的結(jié)果進行解析得到最終的答案。這一步的觸發(fā)器句子[A]跟第一步的觸發(fā)器句子不同,它依賴于具體的答案形式,例如圖中樣例用的觸發(fā)器句子是“Therefore, the answer (arabic numerals) is”
圖2: Zero-shot-Cot全過程
Zero-shot-CoT跟Few-shot-CoT的區(qū)別在于,對于每個任務(wù),F(xiàn)ew-shot-CoT需要謹慎的人工工程將few shot樣例轉(zhuǎn)化為特定的答案格式,就是其中的逐步推理過程,而Zero-shot-CoT則不需要這些工程,只需要調(diào)用兩次語言模型即可實現(xiàn)。Zero-shot-CoT跟Zero-shot的區(qū)別在于,Zero-shot-Cot多了生成多步推論的過程,最終輸入語言模型的文本會更加豐富,語言模型能按照逐步推論的方向進行預(yù)測,從而更好的控制語言模型的輸出。
4 實驗結(jié)果
論文在算術(shù)推理跟常識推理相關(guān)的任務(wù)做了實驗,有以下一些實驗結(jié)論。
a)Zero-shot-CoT在需要多步推理的算術(shù)推理任務(wù),符號推理任務(wù),其他邏輯推理任務(wù)上大幅超越zero-shot,在不需要多步推理的算數(shù)推理任務(wù)上(SingleEq和AddSub)上跟zero-shot水平相當。在常識推理任務(wù)上,Zero-shot-Cot表現(xiàn)沒有提升。
圖3: Zero-shot-CoT跟Zero-shot在多個任務(wù)上的表現(xiàn)
b)在算術(shù)推理任務(wù)中,雖然Zero-shot-CoT不及Few-shot-CoT,但明顯優(yōu)于標準的Few-shot,即便是帶8個樣例的Fes-shot方法。
圖4: 在多步算法推理任務(wù)上多種方法的效果對比
c)對于常識推理問題,Zero-shot-CoT通常能生成靈活合理的推論,即便最終預(yù)測是錯誤的(下圖左邊樣例)。同時當模型發(fā)現(xiàn)很難將答案選項縮小時,Zero-shot-CoT經(jīng)常輸出多個答案選項(下圖右邊樣例)。
圖5: Zero-shot-CoT在常識推理任務(wù)的若干bad case
5討論
a)語言模型規(guī)模跟zero-shot推理是否相關(guān)?
大規(guī)模語言模型能帶來更合理的推理。對于不需要多步推理的任務(wù),zero-shot表現(xiàn)隨著語言模型規(guī)模的增長可能不增長或者增長非常緩慢,但是對于需要多步推理的任務(wù),隨著語言模型規(guī)模的增長,zero-shot的效果飛速增長。
圖6:模型規(guī)模的影響
b)Prompt的選擇是否影響Zero-shot-CoT
如果文本被撰寫成有利于深度推理的樣子,模型效果也會得到提升。不同的prompt會驅(qū)使模型表示出迥然不同的推理能力,具體的差異取決了實際句子。在論文實驗中,其中一個prompt”Let’s think step by step”取得最優(yōu)的效果。
圖7:不同prompt對于Zero-shot-CoT的影響
c)大規(guī)模語言模型的推理能力
部分研究表明預(yù)訓(xùn)練模型通常不擅長推理任務(wù),但是通過讓它進行逐步推理可以極大程度的提升它的推理性能,而不是通過微調(diào)。論文的實驗也佐證了大規(guī)模語言模型是一個合適的zero-shot推理器。
d)Multi-task prompting
大多數(shù)prompt都是針對特定任務(wù)而設(shè)計的,但是Zero-shot-CoT是支持多任務(wù)的,具有更強的泛化能力,能應(yīng)用到更多不同的任務(wù)中去。Zero-shot-CoT可以為作為一種參考,不僅加速應(yīng)用大規(guī)模語言模型進行邏輯推理的研究,也加速發(fā)現(xiàn)其他大規(guī)模語言模型的廣泛感知能力的研究。
6總結(jié)
個人覺得,相比其他prompt相關(guān)的文章,Zero-shot-CoT通過兩階段的prompt過程設(shè)計,擺脫了prompt工程的限制,也不受限于具體的任務(wù),更好的控制模型的預(yù)測方向。雖然思想跟Few-shot-CoT很像,但是擺脫了其中的精心設(shè)計的將few shot樣例轉(zhuǎn)化為合適的prompt的過程。這一點還是很有價值的。
但是,看完這個文章還是有不少的疑問。文章提及Zero-shot-CoT是multi-task的方法,但是只在推理相關(guān)的任務(wù)上進行實驗,Let’s think step by step”在非推理的任務(wù)上也會是最優(yōu)選擇嗎?在其他任務(wù)上,Zero-shot-CoT能取得多少增益?對于其他語言而言,找到自身最佳的“Let’s think step by step”只能把所有可能的prompt都測試一遍嗎?有其他自動化的手段嗎?有沒有跨語言的“Let’s think step by step”?
參考文獻
1.(2022,) Large Language Models are Zero-Shot Reasoners
https://arxiv.org/pdf/2205.11916.pdf
審核編輯 :李倩
-
自動化
+關(guān)注
關(guān)注
29文章
5483瀏覽量
79007 -
語言模型
+關(guān)注
關(guān)注
0文章
501瀏覽量
10236
原文標題:提示學(xué)習(xí) | Let’s think step by step
文章出處:【微信號:zenRRan,微信公眾號:深度學(xué)習(xí)自然語言處理】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論