Chain-of-Thought(CoT)
傳送門(mén):https://github.com/wzzzd/LLM_Learning_Note/blob/main/Tuning/chain-of-thought-prompting.md
1.介紹
在過(guò)去幾年的探索中,業(yè)界發(fā)現(xiàn)了一個(gè)現(xiàn)象,在增大模型參數(shù)量和訓(xùn)練數(shù)據(jù)的同時(shí),在多數(shù)任務(wù)上,模型的表現(xiàn)會(huì)越來(lái)越好。因而,現(xiàn)有的大模型LLM,最大參數(shù)量已經(jīng)超過(guò)了千億。
然而,增大模型參數(shù)規(guī)模,對(duì)于一些具有挑戰(zhàn)的任務(wù)(例如算術(shù)、常識(shí)推理和符號(hào)推理)的效果,并沒(méi)有太大提升。對(duì)于算術(shù)類推理任務(wù),我們期望模型生成自然語(yǔ)言邏輯依據(jù)來(lái)指導(dǎo)并生成最終答案,但是獲得邏輯依據(jù)是比較復(fù)雜昂貴的(標(biāo)注成本層面)。
自從發(fā)現(xiàn)了大模型ICL(In-Context Learning)的能力后,這個(gè)問(wèn)題有個(gè)新的解決思路:對(duì)某個(gè)Task,能否為大模型提供一些上下文in-context example作為Prompt,以此來(lái)提升模型的推理能力?實(shí)驗(yàn)表名,在復(fù)雜推理任務(wù)上加入ICL帶來(lái)的增益不明顯。因此,變衍生出了CoT的技術(shù)。
Chain-of-Thought(CoT)是一種改進(jìn)的Prompt技術(shù),目的在于提升大模型LLMs在復(fù)雜推理任務(wù)上的表現(xiàn),如算術(shù)推理(arithmetic reasoning)、常識(shí)推理(commonsense reasoning)、符號(hào)推理(symbolic reasoning)。
2.思路
ICL的思路是在新測(cè)試樣本中加入示例(demonstration)來(lái)重構(gòu)prompt。
與ICL(In-Context Learning)有所不同,CoT對(duì)每個(gè)demonstration,會(huì)使用中間推理過(guò)程(intermediate reasoning steps)來(lái)重新構(gòu)造demonstration,使模型在對(duì)新樣本預(yù)測(cè)時(shí),先生成中間推理的思維鏈,再生成結(jié)果,目的是提升LLM在新樣本中的表現(xiàn)。
3.CoT方法
一般來(lái)說(shuō)CoT會(huì)分為兩種:基于人工示例標(biāo)注的Few-shot CoT和無(wú)人工示例標(biāo)注的Zero-shot CoT。下面將逐一介紹。
3.1 Few-shot CoT
假設(shè)基于ICL的測(cè)試樣本輸入表示為 < i n p u t , d e m o n s t r a t i o n s > <input, demonstrations> <input,demonstrations>,那么加入Few-shot CoT的測(cè)試樣本輸入,可表示為 < i n p u t , C o T > <input, CoT> <input,CoT>。
3.1.1 CoT Prompt設(shè)計(jì)
我們知道了加入CoT的示例后,能提升LLM的表現(xiàn)。那么我們應(yīng)該如何構(gòu)造或使用CoT?
投票式CoT
《Self-Consistency Improves Chain of Thought Reasoning in Language Models》
論文基于一個(gè)思想:一個(gè)復(fù)雜的推理任務(wù),其可以有多種推理路徑(即解題思路),最終都能夠得到正確的答案。故Self-Consistency在解碼過(guò)程中,拋棄了greedy decoding的策略,而是使用采樣的方式,選擇生成不同的推理路徑,每個(gè)路徑對(duì)應(yīng)一個(gè)最終答案。
具體做法為:
- 對(duì)于單一的測(cè)試數(shù)據(jù),通過(guò)多次的解碼采樣,會(huì)生成多條推理路徑和答案。
- 基于投票的策略,選擇最一致的答案。
實(shí)驗(yàn)表明,對(duì)于同一問(wèn)題生成更多的推理鏈以供投票往往能取得更好的效果。當(dāng)推理鏈數(shù)量足夠多時(shí),這種方法效果能夠勝過(guò)使用greedy decoding的CoT方法。
《On the advance of making language models better reasoners》
論文在Self-Consistency的基礎(chǔ)上,進(jìn)一步做了優(yōu)化。
- 1.Diverse Prompts
- 對(duì)于每個(gè)測(cè)試問(wèn)題,構(gòu)造了 M 1 M_1 M1?種不同的prompt(即由不同demonstration構(gòu)造的prompt)
- 對(duì)于每種不同的prompt,讓LLM生成 M 2 M_2 M2?條推理路徑。
- 則對(duì)于同一個(gè)測(cè)試問(wèn)題,共生成了 M 1 ? M 2 M_1*M_2 M1??M2?條結(jié)果
- 2.Verifier
- 訓(xùn)練了一個(gè)Verifier,用于判斷當(dāng)前推理路徑得出的答案正確與否。
- 關(guān)于樣本構(gòu)建,使用LLM生成的推理路徑和答案,與grandtruth進(jìn)行對(duì)比,一致的即視為正樣本,否則負(fù)樣本。
- 3.Vote
- 訓(xùn)練好Verifier后,對(duì)與一個(gè)測(cè)試問(wèn)題與LLM生成的多條推理路徑,Verifier進(jìn)行二元判別
- 結(jié)合判別結(jié)果和投票結(jié)果,得出模型的最終預(yù)測(cè)。
實(shí)驗(yàn)結(jié)果顯示,本論文的方法相對(duì)基于Greedy Decode和Self-Consistency能得到更優(yōu)的效果。
使用復(fù)雜的CoT
《Complexity-based prompting for multi-step reasoning》
面對(duì)這么多可選的CoT,簡(jiǎn)單的CoT示例和復(fù)雜的CoT示例,對(duì)新的樣本推理結(jié)果會(huì)不會(huì)產(chǎn)生影響?答案是Yes。
論文探討了一個(gè)問(wèn)題,在包含簡(jiǎn)單推理路徑的demonstrations和復(fù)雜推理路徑的demonstrations下,哪個(gè)效果會(huì)表現(xiàn)較好?(這里的簡(jiǎn)單和復(fù)雜是指 推理鏈/推理步驟的長(zhǎng)度)
本論文繼承了Self-Consistency的思想,具體方法:
- 1.對(duì)于同一個(gè)測(cè)試問(wèn)題,使用功能LLM(GPT-3)生成 N N N條不同的推理鏈+答案;
- 2.對(duì)于生成的推理鏈+答案,按照推理鏈的長(zhǎng)度進(jìn)行倒序排序;
- 3.保留TopK條推理鏈+答案,并使用投票的方式,選取最終預(yù)測(cè)。
實(shí)驗(yàn)結(jié)果表明,本論文的方法效果優(yōu)于以下方法: (1)人工構(gòu)建Cot、(2)random Cot、(2)Complex CoT(數(shù)據(jù)集中最長(zhǎng)的多個(gè)思維鏈作為demonstrations)。
自動(dòng)構(gòu)建CoT
《Automatic chain of thought prompting in large language models》
上面提到的方法是基于人工構(gòu)造CoT,那我們能否讓模型自己來(lái)生成CoT?本論文就提供了這樣一種自動(dòng)生成CoT的思路。
本論文提到的Manual-CoT,可以等同于Few-shot CoT來(lái)理解。
由于Zero-Shot-CoT方法存在不穩(wěn)定性,而Manual-CoT方法需要大量人工成本投入。作者提出了一種基于Auto-CoT的方法,自動(dòng)構(gòu)建包含問(wèn)題和推理鏈的說(shuō)明樣例(demonstrations)。
整個(gè)過(guò)程分了兩個(gè)階段:
1.question cluster: 目的是將數(shù)據(jù)集中的question劃分到不同簇中。
- 使用Sentence-Bert計(jì)算每個(gè)question的向量表示;
- 使用k-means方法將question記性簇劃分;
- 最后對(duì)每個(gè)簇中的question,根據(jù)距離中心點(diǎn)距離,升序排序。
2.demostration sampling: 目的是從每個(gè)簇中選取一個(gè)代表性的question,基于LLMs,使用Zero-Shot-CoT生成推理鏈。
-
對(duì)于每一個(gè)簇 i i i里的每一個(gè)問(wèn)題 q j ( i ) q^{(i)}_j qj(i)?,使用Zero-Shot-CoT的方法,將 [ Q : q j ( i ) , A : [ P ] ] [Q:q^{(i)}_j,A:[P]] [Q:qj(i)?,A:[P]](其中 [ P ] [P] [P]表示"Let’s think step by step")輸入到LLMs,LLMs生成該問(wèn)題的推理鏈 r j ( i ) r^{(i)}_j rj(i)?和答案 a j ( i ) a^{(i)}_j aj(i)?;
-
若問(wèn)題 q j ( i ) q^{(i)}_j qj(i)?不超過(guò)60個(gè)tokens,且推理鏈 r j ( i ) r^{(i)}_j rj(i)?不超過(guò)5個(gè)推理步驟,則將問(wèn)題+推理鏈+答案,加入到demostrations列表中: [ Q : q j ( i ) , A : r j ( i ) 。 a j ( i ) ] [Q:q^{(i)}_j,A:r^{(i)}_j。a^{(i)}_j] [Q:qj(i)?,A:rj(i)?。aj(i)?];
-
遍歷完所有簇,將得到k個(gè)demostrations,將其拼接上測(cè)試question,構(gòu)造成新的Prompt,輸入LLMs便可得到生成結(jié)果。
值得一提的是,Auto-CoT在多個(gè)開(kāi)源推理任務(wù)的數(shù)據(jù)集上,效果與Manual-CoT相當(dāng),甚至某些任務(wù)表現(xiàn)得更好。
CoT中示例順序的影響
《Chain of thought prompting elicits reasoning in large language models》
盡管CoT是ICL的一種特殊形式,但是與ICL有所不同的是,CoT中demonstrations的排序?qū)ζ湓谛聹y(cè)試樣本中的生成結(jié)果影響較小,論文對(duì)demonstrations進(jìn)行重排序,在多數(shù)推理任務(wù)上僅導(dǎo)致小于2%的性能變化。(demonstrations順序?qū)CL影響較大)
3.1.2 CoT的增強(qiáng)策略
3.2 Zero-shot CoT
與Few-shot CoT不同,Zero-shot CoT并不需要人為構(gòu)造demonstrations,只需要在prompt中加入一個(gè)特定的指令,即可驅(qū)動(dòng)LLMs以思維鏈的方式生成結(jié)果。
當(dāng)然這種不需要人工構(gòu)造demonstrations的方式,效果相對(duì)Few-shot CoT會(huì)表現(xiàn)稍微差一點(diǎn)點(diǎn)。但是相對(duì)Zero-shot和Few-shot的方法而言,Zero-shot CoT在復(fù)雜任務(wù)推理上卻能帶來(lái)巨大的效果提升。
《Large language models are zero-shot reasoners》
論文首先提出了Zero-shot CoT的方法,整個(gè)流程包含兩部分:
- 1.Reasoning Extraction
- 使用一個(gè)特定的"reasoning" prompt,是語(yǔ)言模型LLM生成原始問(wèn)題的思維鏈,如"Let’s think step by step."(讓我們一步步來(lái)思考)
- 2.Answer Extraction
- 基于第一步的結(jié)果,添加一個(gè)"answer" prompt,要求LLM生成正確的結(jié)果。
- 這一個(gè)步驟中,LLM的輸入格式為:quesiton + “reasoning” prompt + result(CoT) + “answer” prompt,輸出為:result(answer)
值得一提的是,論文同時(shí)發(fā)現(xiàn)了,當(dāng)模型LLM變得越來(lái)越大,對(duì)于使用Zero-shot的結(jié)果帶來(lái)的增益不大,但是對(duì)使用Zero-shot CoT的結(jié)果帶來(lái)的增益較大。
《Scaling Instruction-Finetuned Language Models》
既然在上一篇論文中,已經(jīng)發(fā)現(xiàn)了LLM存在Zero-shot CoT的能力,那如果事先對(duì)LLM進(jìn)行基于CoT的instruction tuning,那模型使用Zero-shot CoT方式在對(duì)unseen樣本進(jìn)行預(yù)測(cè)時(shí),效果會(huì)不會(huì)更好?本論文給出了肯定的答案。
論文探索了以下可能影響LLM在unseen task上表現(xiàn)的因素:
- 1.任務(wù)數(shù)量
- 2.模型大小
- 3.指令微調(diào)(instruction tuning)
論文微調(diào)數(shù)據(jù)集包含了1836種指令任務(wù),473個(gè)數(shù)據(jù)集和146種任務(wù)類型構(gòu)成,數(shù)據(jù)集中包含了9個(gè)人工標(biāo)注的CoT數(shù)據(jù)集。同時(shí)保留一個(gè)沒(méi)出現(xiàn)過(guò)的held-out數(shù)據(jù)集作為模型評(píng)估數(shù)據(jù)集。
使用的模型是PaLM,而經(jīng)過(guò)instruction tuning的模型,稱為FlanPaLM(Finetuned Language PaLM)。
得到了以下結(jié)論:
- 1.增加微調(diào)任務(wù)數(shù)量,可以提高LLM表現(xiàn)。但任務(wù)數(shù)量超過(guò)一定值后,不管模型尺寸是否增大,受益都不大。推測(cè)原因有:
- (1) 額外的任務(wù)多樣化不足,沒(méi)有為L(zhǎng)LM提供新的知識(shí);
- (2) 多任務(wù)指令微調(diào)只是更好地激發(fā)了模型從預(yù)訓(xùn)練任務(wù)中學(xué)習(xí)到知識(shí)的表達(dá)能力,而微調(diào)任務(wù)超過(guò)一定值后,對(duì)表達(dá)能力沒(méi)有太大幫助。
- 2.微調(diào)和未微調(diào)的PaLM,從8B增大到540B,在unseen任務(wù)上效果越來(lái)越好;
- 3.微調(diào)數(shù)據(jù)與CoT數(shù)據(jù)的關(guān)系
- (1) 微調(diào)數(shù)據(jù)中刪除CoT數(shù)據(jù),會(huì)降低PaLM的推理能力
- (2) 微調(diào)數(shù)據(jù)包含CoT數(shù)據(jù),會(huì)全面提高所有評(píng)測(cè)任務(wù)的表現(xiàn)
5.總結(jié)
對(duì)于大模型LLM涌現(xiàn)的CoT能力,業(yè)界目前的共識(shí)是:當(dāng)模型參數(shù)超過(guò)100B后,在復(fù)雜推理任務(wù)中使用CoT是能帶來(lái)增益的;而當(dāng)模型小于這個(gè)尺寸,CoT并不會(huì)帶來(lái)效果增益。
還記得在Pretrain+Fine-tuning時(shí)代下,對(duì)于復(fù)雜數(shù)學(xué)推理任務(wù),如MultiArith、GSM8K下,效果還是不太理想,而短短幾年時(shí)間,LLM+CoT的模式已經(jīng)大大提升了該領(lǐng)域的解決能力。隨著LLM的繼續(xù)發(fā)展,未來(lái)必定會(huì)發(fā)現(xiàn)更多LLM隱藏的能力和使用方法,讓我們拭目以待。
6.Reference
Chain-of-Thought Prompting Elicits Reasoning in Large Language Models
Large language models are zero-shot reasoners
Scaling Instruction-Finetuned Language Models
Self-Consistency Improves Chain of Thought Reasoning in Language Models
On the advance of making language models better reasoners
Chain of thought prompting elicits reasoning in large language models文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-531574.html
Complexity-based prompting for multi-step reasoning文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-531574.html
Chain of thought prompting elicits reasoning in large language models
到了這里,關(guān)于談?wù)凬LP中 大語(yǔ)言模型LLM的 思維鏈 Chain-of-Thought(CoT)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!