最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

Chain of Thought論文、代碼和資源【論文精讀】

2022-10-24 14:57 作者:如果我是泡橘子  | 我要投稿

Chain of Thought Prompting Elicits Reasoning in Large Language Models

  • chain of thought:也就是 COT ,一經(jīng)提出就引發(fā)了社區(qū)對(duì)它的熱烈討論,類似 AI 是不是也需要鼓勵(lì)來獲得更好的表現(xiàn)之類的問題



CoT readinglist






背景知識(shí)

  • 這篇文章中說,只要在每個(gè)答案之前加上一句“Let's think step by step”,就可以立即在兩個(gè)比較困難的數(shù)學(xué)問題數(shù)據(jù)上漲點(diǎn),而且漲點(diǎn)非常明顯
  • 由于這個(gè)方法比較簡單,只是加了一句話就能夠非常明顯地漲點(diǎn),所以立即引發(fā)了大家對(duì)于這一領(lǐng)域的關(guān)注,也就是“ AI 是不是也需要鼓勵(lì)來獲得更好的表現(xiàn)”



語言模型的本質(zhì)是對(duì)任意一段文本序列的概率進(jìn)行建模

?
02:59
?

  • 如果將語言模型看成一個(gè)大黑盒的話,它的輸入是一段文本序列,輸出也是一段文本序列,通過訓(xùn)練語言模型,就能使得給定的文本序列和輸出的文本序列拼接起來所組成的一整段文本序列的概率盡可能比較大
  • 語言模型的細(xì)節(jié)可以參考《動(dòng)手學(xué)深度學(xué)習(xí)》的語言模型和數(shù)據(jù)集章節(jié):https://zh-v2.d2l.ai/chapter_recurrent-neural-networks/language-models-and-dataset.html;筆記:https://www.bilibili.com/read/cv17622666



如何用 GPT-3 這類的大語言模型來做零樣本、單樣本和少樣本學(xué)習(xí)?

?
05:41
?

  • 對(duì)于 GPT-3 來說,也就是圖中的 transformer decoder,無論是在零樣本、單樣本還是少樣本的情況下,它們的輸入都是一段文本序列,輸出也是一段文本序列
  • 少樣本與零樣本的唯一區(qū)別就是中間多出了一些參考樣例,它們其實(shí)都是在續(xù)寫前綴(只是零樣本的輸入沒有任何參考,而少樣本的輸入有一些參考樣例來幫助語言模型推斷如何根據(jù)任務(wù)輸入生成相應(yīng)的任務(wù)輸出)



用一個(gè)訓(xùn)練好的大語言模型來求解推理任務(wù)的幾種范式

  • 這里以需要推理的數(shù)學(xué)題舉例

1、Zero-shot

?
06:44
?

  • 文獻(xiàn):Large Language Models are Zero-Shot Reasoners(https://arxiv.org/abs/2205.11916)
  • 語言模型的輸入是一道數(shù)學(xué)題連接一個(gè)字符串“The answer is”,然后讓語言模型進(jìn)行續(xù)寫

2、Zero-Shot-CoT

  • 語言模型的輸入還是一道數(shù)學(xué)題連接一個(gè)字符串“Let's think step by step”,然后讓語言模型進(jìn)行續(xù)寫
  • 這種情況下,語言模型會(huì)續(xù)寫出中間推理步驟,并最終生成答案

3、Manual-CoT

  • 文獻(xiàn):Chain of Thought Prompting Elicits Reasoning in Large Language Models(https://arxiv.org/abs/2201.11903)
  • 這種情況下使用到了少樣本學(xué)習(xí),在輸入問題之前,手動(dòng)設(shè)計(jì)一些問題和答案的樣例(樣例的答案給出中間推理步驟),這些問題和答案都需要手動(dòng)構(gòu)造,所以叫 Manual-CoT
  • 語言模型的輸入是一些手動(dòng)設(shè)計(jì)的問題和答案的參考樣例連接一個(gè)真正需要求解的問題,然后讓語言模型進(jìn)行續(xù)寫
  • 這里少樣本訓(xùn)練中的問題和答案的樣例都需要人為構(gòu)造并手動(dòng)設(shè)計(jì),因此為了和第四種自動(dòng) CoT 做區(qū)分,這里稱為 Manual-CoT
  • Manual-CoT 比 Zero-Shot-CoT 的性能要好,因?yàn)樗捎玫氖?few shot ,在輸入中提供了一些問題、中間推理步驟以及答案的樣例給語言模型進(jìn)行參考。但是,提供這些樣例需要進(jìn)行人工設(shè)計(jì),這就需要一定的人工成本

4、Auto-CoT

  • 文獻(xiàn):Automatic Chain of thought Prompting in Large Language Models(https://arxiv.org/abs/2210.03493)

Auto-CoT 其實(shí)也是受到了 Manual-CoT 的啟發(fā),既然Manual-CoT 比 Zero-Shot-CoT 的性能要好,而且性能好的關(guān)鍵就在于人工設(shè)計(jì)的問題、中間推理步驟和答案的樣例,那么就可以考慮將這部分進(jìn)行自動(dòng)化,從而節(jié)省人工成本

實(shí)時(shí)發(fā)現(xiàn)是可行的,做法主要分為兩步

  1. 通過多樣性選取有代表性的問題
  2. 對(duì)于每一個(gè)采樣的問題拼接上“Let's think step by step”(類似于 Zero-Shot-CoT )輸入到語言模型,讓語言模型生成中間推理步驟和答案,然后把這些所有采樣的問題以及語言模型生成的中間推理步驟和答案全部拼接在一起,構(gòu)成少樣本學(xué)習(xí)的樣例,最后再拼接上需要求解的問題一起輸入到語言模型中進(jìn)行續(xù)寫
  • 最終模型續(xù)寫出了中間的推理步驟以及答案,并且質(zhì)量非常高
  • 值得一提的是,在十個(gè)數(shù)據(jù)集上 Auto-CoT 是可以匹配甚至超越 Manual-CoT 的性能,也就說明自動(dòng)構(gòu)造的 CoT 的問題、中間推理步驟和答案樣例比人工設(shè)計(jì)的還要好,而且還節(jié)省了人工成本
  • 在 Auto-CoT 中,其實(shí)也是用到了很多個(gè)“Let's think step by step”對(duì)每個(gè)采樣的問題分別觸發(fā)中間推理步驟和答案,這也是為什么叫它“Let's think not just step by step but also one by one”,也就是AI需要多鼓勵(lì)幾次

代碼實(shí)現(xiàn)

?
11:42
?

  • https://github.com/amazon-research/auto-cot 目錄下 try_cot.ipynb 文件

CoT 這個(gè)領(lǐng)域剛發(fā)展不久,所以還有很多未解之謎,盡管剛提出才幾個(gè)月,但是已經(jīng)受到了社區(qū)的廣泛關(guān)注





Abstract

衡量語言模型規(guī)模的三個(gè)角度

  • 訓(xùn)練計(jì)算量:FLOPs
  • 訓(xùn)練數(shù)據(jù)的大小:num of tokens
  • 模型本身參數(shù)量的大小

這三個(gè)量往往是協(xié)同增長的,文中所提到的規(guī)模主要還是從模型本身的參數(shù)量來看的

現(xiàn)在語言模型的規(guī)模越來越大,但是即便是現(xiàn)在最大的語言模型,它們也往往很難在涉及到推理方面的任務(wù)取得很好的表現(xiàn),也就是說,他們通常很難在數(shù)學(xué),符號(hào),以及常識(shí)的推理上取得尚佳的表現(xiàn)

這篇文章主要是針對(duì)大語言模型在遇到語言推理任務(wù)時(shí)的局限性,提出了 chain of thought,也就是思維鏈

  • 文中也給出了 CoT 的定義:人類在遇到一系列問題時(shí)所產(chǎn)生的推理步驟,而它們的表現(xiàn)形式就是一系列的短句子(比如說在背景介紹中所提到的遇到數(shù)學(xué)問題時(shí)所產(chǎn)生的中間推理步驟)

最終的實(shí)驗(yàn)效果非常好,比如說在使用谷歌內(nèi)部的 540B 參數(shù)量的 PaLM 大語言模型,CoT 能夠在像 GSM8K 這樣比較難一點(diǎn)的數(shù)學(xué)問題數(shù)據(jù)集上取得新的 state of art





1.Introduction

語言模型的規(guī)模達(dá)到 100B 的參數(shù)量之后,就能夠在像 sentiment analysis and topic classification 這種分類任務(wù)上取得非常好的結(jié)果

  • 作者將這類任務(wù)歸納為 system-1,也就是能夠人類很快很直觀地理解的任務(wù)
  • 還有一類任務(wù)需要很慢而且是很仔細(xì)的考慮,作者將其歸納為 system-2 (比如一些設(shè)計(jì)邏輯、常識(shí)的推理任務(wù))

作者發(fā)現(xiàn),即便語言模型的規(guī)模達(dá)到了幾百B的參數(shù)量,也很難在 system-2 這類任務(wù)上獲得很好的表現(xiàn)

  • 作者將這種現(xiàn)象稱為 flat scaling curves:如果將語言模型參數(shù)量作為橫坐標(biāo),在 system-2 這類任務(wù)上的表現(xiàn)作為縱坐標(biāo),則折線就會(huì)變得相當(dāng)平緩,不會(huì)像在 system-1 這類任務(wù)上那么容易就實(shí)現(xiàn)模型的性能隨著模型參數(shù)量的增長而提升,也就是說,在 system-2 這類任務(wù)上語言模型就很難大力出奇跡了

針對(duì)這個(gè)問題,作者提出了 chain of thought (CoT)這種方法來利用大語言模型求解推理任務(wù)



圖1

  • 上圖展示了在 CoT 誕生之前是怎樣使用標(biāo)準(zhǔn)的 prompting 方法來求解推理任務(wù)的
  • 首先這是一個(gè)少樣本學(xué)習(xí)的方法,需要給出一些問題和答案的樣例,然后拼接這正想要求解的問題,最后再拼接一個(gè)字符串“A:”之后輸入到大語言模型中,讓大語言模型進(jìn)行續(xù)寫
  • 大語言模型會(huì)在所提供的問題和答案的樣例中學(xué)習(xí)如何求解,結(jié)果發(fā)現(xiàn)很容易出錯(cuò),也就是上面提到的大語言模型在 system-2 上很容易遇到瓶頸
  • 上圖展示了 CoT 的做法,CoT 與 Standard prompting 唯一的區(qū)別就是,CoT 在樣例中在給出問題的同時(shí),不僅給出了答案,在答案之前還給出了人為寫的中間推理步驟
  • 在把問題、中間推理步驟和答案的若干樣例拼接上所想要求解的問題和字符串“A”,再輸入到語言模型之后,語言模型會(huì)自動(dòng)地先續(xù)寫中間推理步驟,有了這些推理步驟之后,它就會(huì)更容易地給出正確答案,也就是能夠更好地解決 system-2 這類的問題





2.Chain of thought

chain of thought 的定義:在應(yīng)對(duì)推理任務(wù)時(shí),在給出最終答案之前所產(chǎn)生的中間推理步驟,他們載體是一系列的短句子

chain of thought 也可以和最后的答案合在一起,作為一個(gè)整體。但是作者還是將中間解題步驟叫做 CoT ,這樣才能更好地表達(dá)模擬人類一步一步思考而最終得出答案的過程這一內(nèi)涵

  • “step by step”其實(shí)在這篇文章中就已經(jīng)提到了

因?yàn)?CoT 是作者所提出的一個(gè)新事物,所以作者強(qiáng)調(diào)了 CoT 中幾個(gè)比較有意思的地方

  • 首先,CoT 原則上能夠讓模型把一個(gè)多步的問題分解出各種中間步驟,使那些具有更多推理步的問題有機(jī)會(huì)分配到更多的計(jì)算量(如果是從最后的將拼接好的問題、答案樣例以及所要求解的問題和前綴輸入到語言模型中產(chǎn)生最后的答案這一步來看,對(duì)于一個(gè)更難的問題,在續(xù)寫的時(shí)候,CoT就使得語言模型能夠產(chǎn)生更多的中間推理步驟,因?yàn)檎Z言模型在生成輸出的時(shí)候是一個(gè)一個(gè) token 進(jìn)行生成的,那么如果問題越難,CoT 又使得生成的中間步驟越多,那么整體上生成的 token 的數(shù)量也會(huì)越多,自然而然在求解更難的問題的時(shí)候就會(huì)使用到更多的計(jì)算量。就好比人類在遇到更難得問題的時(shí)候,可能就會(huì)耗費(fèi)更多的腦力,這樣 CoT 也能夠讓計(jì)算機(jī)能夠?qū)Ωy的問題分配更多的計(jì)算資源)
  • CoT 提供了可解釋性,也就是在不知道答案的情況下,也能夠知道答案是怎樣得來的,也就是所謂的中間推理步驟
  • 作者認(rèn)為 CoT 在原則上能夠適用于任何人類能夠用語言所能解決的問題,而不僅僅是數(shù)學(xué)、邏輯、常識(shí)這類的問題。因?yàn)?CoT 本身的載體就是一系列的短句子,本身也是人類語言
  • 當(dāng)一個(gè)語言模型訓(xùn)練好之后,就能夠通過 few-shot prompting 這種范式,在每個(gè)樣例中寫上中間推理步驟,再拼接好所要求解的問題輸入到語言模型,就能夠引發(fā)語言模型續(xù)寫中間推理步驟,再得出最后的答案(像 Zero-Shot CoT 就發(fā)現(xiàn),甚至都不需要在 few-shot 這些樣例中添加 CoT ,可以僅憑“l(fā)et's think step by step”作為 CoT 的推理;而 Auto CoT ,也就是“Let's think not just step by step but one by one”使用了多個(gè)“l(fā)et's think step by step”就可以自動(dòng)地構(gòu)造 few-shot 的樣例,從而彌補(bǔ)了 Zero-shot 和 Few-shot 之間的性能差異)





3.Arithmetic Reasoning

  • 算數(shù)推理,也是本文中最重要的部分

這里的算數(shù)推理所考慮的問題范圍集中在小學(xué)數(shù)學(xué)問題,也就是 6-10 歲的小朋友所能解決的數(shù)學(xué)問題



實(shí)驗(yàn)設(shè)計(jì)

作者人工設(shè)計(jì)了一套 8 個(gè)帶有 CoT 推理鏈條的 few-shot 樣例,而且作者在六個(gè)數(shù)據(jù)集中統(tǒng)一使用了這 8 個(gè)帶有 CoT 推理鏈條的 few-shot 樣例

  • 其中的一個(gè)原因是因?yàn)槿斯?gòu)造 CoT 推理鏈條的 few-shot 樣例的成本是很高的,因?yàn)椴粌H要找到具有代表性的問題,還要為每個(gè)問題設(shè)計(jì)中間推理步驟以及答案,而最后的性能對(duì)這些人工設(shè)計(jì)非常敏感,所以需要反復(fù)進(jìn)行調(diào)試。
  • 所以在后續(xù)的 auto CoT 的工作中就想將人工設(shè)計(jì)的這部分工作自動(dòng)化,自動(dòng)化的一大好處是能夠?qū)@六個(gè)數(shù)據(jù)集中的每個(gè)數(shù)據(jù)集分別地自動(dòng)構(gòu)造帶有 CoT 推理鏈條的 few-shot 樣例,而且這也能夠帶來性能的提升
  • 所以多讀這種對(duì)細(xì)節(jié)描述比較詳細(xì)的優(yōu)秀論文有時(shí)候也能夠啟發(fā)我們研究的靈感



對(duì)于這一節(jié)中的主要實(shí)驗(yàn)看一下圖2和圖3就可以了,實(shí)驗(yàn)是基于 LaMDA 和 PaLM 這兩個(gè)谷歌內(nèi)部的大語言模型來做實(shí)驗(yàn)(這里是 arxiv 的 V2 版本,作者在后續(xù)的 arxiv 版本中也補(bǔ)充了其他模型的實(shí)驗(yàn))

圖 2

?
26:08
?

圖 3

  • 在圖 2 中展示了在四個(gè)相對(duì)比較簡單的數(shù)據(jù)集上, standard prompting 可以隨著語言模型大小的不斷增加而獲取性能上的提升,這樣的話 CoT prompting 就沒有產(chǎn)生特別碾壓性的優(yōu)勢
  • 而在圖 3 中,當(dāng)換成兩個(gè)更加具有挑戰(zhàn)性的數(shù)學(xué)推理數(shù)據(jù)集時(shí),standard prompting 就出現(xiàn)了之前引言中所提到的 flat scaling curve 現(xiàn)象(隨著語言模型規(guī)模的增加,性能并沒有獲得顯著性的提升);而 CoT prompting 確實(shí)可以隨著語言模型大小的不斷增加而不斷地提升性能,這里就體現(xiàn)了 CoT 的重要性



CoT 的方法很簡單,但是一個(gè)好的工作往往會(huì)告訴你:“我的方法是很簡單,但是不能再簡單了,也就是 It is simple,but it can't be simpler”,所以作者也進(jìn)行了一系列的消融實(shí)驗(yàn),消融結(jié)果實(shí)驗(yàn)如表 3 所示

表 3

  • Equation Only:把 CoT 替換成只包含 CoT 中的算式部分
  • Variable compute only:把 CoT 替換成與中間 CoT 長度相等的”`````“
  • 結(jié)果發(fā)現(xiàn)上述兩種方法都比 CoT 差了很多,這就說明了 CoT 雖然簡單,但是不能再簡單了,而且這也更能體現(xiàn)出 CoT 中自然語言所起的作用
  • Thought after answer:把中間推理步驟放在答案的后面
  • 實(shí)驗(yàn)結(jié)果顯示:把中間推理步驟放在答案的后面所得到的結(jié)果也不是很好,這就說明,在訓(xùn)練數(shù)據(jù)集中大部分情況下依然還是先給出中間推理步驟再給出答案,而不是先給出答案再給出中間推理步驟



在本節(jié)的最后,作者也提到 CoT 的性能可能也會(huì)對(duì)人工設(shè)計(jì)的 prompt 比較敏感,因此有必要評(píng)測所提出的方法的魯棒性,有關(guān)魯棒性的實(shí)驗(yàn)結(jié)果如圖 4 所示

圖 4

  • 粉紅色的五角星表示有三個(gè)作者分別設(shè)計(jì)了一套帶有 CoT 的樣例
  • 顏色淡一點(diǎn)的五角星表示作者專門又設(shè)計(jì)了一套更加簡單的帶有 CoT 的樣例
  • 最后的棕色十字代表從帶有中間推理步驟的數(shù)據(jù)集中隨機(jī)地選取一些問題,并附上這些數(shù)據(jù)集中自帶的中間推理步驟構(gòu)成 CoT 的樣例,再拼接上答案來進(jìn)行評(píng)測
  • 最后的結(jié)果顯示:帶 CoT 的方法都要比不帶 CoT 的 standard prompting 要帶來更加顯著的性能提升,尤其是在圖三中的兩個(gè)更加困難的數(shù)學(xué)推理數(shù)據(jù)集中,這種性能提升更加明顯





4.Symbolic Reasoning

文章中在本節(jié)和下一節(jié)中還提到了一些其他類型的任務(wù)

符號(hào)推理任務(wù)

?
30:01
?





5. Commonsense Reasoning

常識(shí)推理任務(wù)

?
31:33
?



圖 6

  • 圖 6 中展示了 CoT 模型在這些任務(wù)的性能,和之前類似,尤其是當(dāng)你的語言模型的規(guī)模很大的時(shí)候,CoT 相對(duì)普通的 prompting 方法能夠帶來更加顯著的性能提升





6.Discussion

在文章的末尾,作者強(qiáng)調(diào),在 CoT 誕生之前的標(biāo)準(zhǔn)的 prompting 只是大語言模型語言能力的一個(gè)下限





----end----

其他參考:

1、《動(dòng)手學(xué)深度學(xué)習(xí)》,英文版教程,https://d2l.ai/chapter_attention-mechanisms-and-transformers/large-pretraining-transformers.html

2、Chain of Thought Prompting Elicits Reasoning in Large Language Models,https://arxiv.org/pdf/2201.11903v2.pdf

Chain of Thought論文、代碼和資源【論文精讀】的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國家法律
遵义市| 乌苏市| 灵璧县| 福清市| 北海市| 中方县| 南平市| 普定县| 宣汉县| 西平县| 女性| 马边| 西安市| 哈巴河县| 南郑县| 无极县| 汶川县| 宁陕县| 抚顺县| 辽宁省| 岳阳市| 石阡县| 阳谷县| 阳西县| 临猗县| 鲜城| 云霄县| 平江县| 枞阳县| 蚌埠市| 岳池县| 平南县| 屏东市| 昌邑市| 龙南县| 乌拉特前旗| 白城市| 资中县| 同江市| 谷城县| 翼城县|