產(chǎn)品必讀|AI對(duì)話(huà)(二):Prompt不只是一句話(huà)
很大程度上,Prompt的結(jié)構(gòu)與內(nèi)容會(huì)對(duì)最后模型的輸出能力產(chǎn)生極大影響,所以,我們需要做好Prompt的設(shè)計(jì)。這篇文章里,作者就對(duì)Prompt如何構(gòu)建等問(wèn)題做了分享,一起來(lái)看。
Prompt是什么?簡(jiǎn)單理解,用戶(hù)輸入給AI模型的一串指令或提示詞(Prompt)讓模型完成指定任務(wù)。前文提到,訓(xùn)練模型的【Pre-train,Prompt,Predict】這個(gè)范式,用特定語(yǔ)言的模板(prompt)挖掘預(yù)訓(xùn)練模型(Pre-train)的本身能力,因此可以降低語(yǔ)義差異。(其他訓(xùn)練范式請(qǐng)見(jiàn)上個(gè)系列)
理所當(dāng)然的,輸入的不同直接決定了輸出的質(zhì)量。Prompt 的結(jié)構(gòu)與內(nèi)容對(duì)最后模型的輸出能力有極大影響,要想更好地得到輸出,對(duì)Prompt的設(shè)計(jì)必不可少。
一、Prompt有哪些分類(lèi)
1. Zero-shot
零樣本提示,即直接給指令,不舉例引導(dǎo)。其實(shí)這是最為能證明模型推理能力的情況,也是我們最理想的任務(wù)形式,我們讓機(jī)器人做什么事,它就能直接做了。
例如:在機(jī)器沒(méi)有專(zhuān)門(mén)針對(duì)進(jìn)行股市描述分析訓(xùn)練,輸出一份股市走勢(shì)報(bào)告。
我們常發(fā)現(xiàn)這樣的情況模型輸出的效果不是很好,因此針對(duì)這樣的情況,還會(huì)進(jìn)一步補(bǔ)充更多的提示信息過(guò)渡。
2. Few-Shot
即提供給模型幾個(gè)示例,實(shí)現(xiàn)上下文學(xué)習(xí)(ICL – In Context Learning),引導(dǎo)模型更好地輸出任務(wù)。其中只提供了一個(gè)示例的是One-shot。
例如下圖(與豆包對(duì)話(huà)),在這個(gè)Case中給出了兩個(gè)示例,最后的輸出也可以看到依賴(lài)了相關(guān)輸入。
但Few shot仍然具有局限性,特別是對(duì)于推理性等復(fù)雜任務(wù)。
但大家發(fā)現(xiàn),如果將問(wèn)題分解成步驟,并向模型演示,可能會(huì)有所幫助,因此CoT(chain-of thought prompting)成為大家關(guān)注的方向,以解決復(fù)雜任務(wù)(例如算術(shù)、推理等)。
3. CoT(Chain of Thought)
簡(jiǎn)單來(lái)講,為了更好地解決復(fù)雜問(wèn)題,我們需要模型了解中間推導(dǎo)/計(jì)算的過(guò)程,因此思維鏈其實(shí)是多了中間的推導(dǎo)。但CoT對(duì)小模型作用不大,對(duì)復(fù)雜問(wèn)題的性能增益更大。(模型參數(shù)達(dá)到10B有效果,100B效果明顯)
1)Zero shot CoT
這種思維鏈非常的取巧,即不再給模型任何的示例,只是發(fā)出指令讓它自己“一步步想”。即利用:Let’s think step by step 以及 Therefore,the answer is 等提示得出答案。
例如下圖的情況,雖然模型回答錯(cuò)了;
當(dāng)然如果矯正這個(gè)問(wèn)題,我們可以再給出一些提示,繼續(xù)給出推導(dǎo)思路 (不屬于Zero Shot);
現(xiàn)在模型已回答正確,那么我們?cè)偬釂?wèn)一次,可以看到模型已經(jīng)學(xué)到這樣的推導(dǎo)邏輯。
2)Few shot CoT
是ICL(In-context learning)的一種特殊情況,將<Input,Output>擴(kuò)充為<input,CoT,output>
Few shot CoT是在進(jìn)行提示的時(shí)候,給出一個(gè)具體的推導(dǎo)示例,例如:
3)增強(qiáng)的CoT策略:Self- Consistency
這個(gè)名字看起來(lái)很復(fù)雜,翻譯也比較復(fù)雜,利用自洽性提高語(yǔ)言模型中的思維鏈推理效果。其實(shí)你可以很簡(jiǎn)單的理解,就是模型通過(guò)了多種思維得出了多個(gè)結(jié)果,最后投票看哪個(gè)結(jié)果占比最多(可能也有其他維度),最后輸出這個(gè)投票出來(lái)的結(jié)果。
例如剛剛的籃子數(shù)學(xué)題,豆包給了三種解法:
假設(shè)現(xiàn)在使用的是Self- Consistency,那么模型內(nèi)部投票發(fā)現(xiàn)有兩個(gè)結(jié)果的答案是4個(gè)水果,1個(gè)答案是5個(gè)水果,按照既定投票規(guī)則,最后輸出的答案是4,就可以在很大程度上可以提高模型的效果。
針對(duì)思維鏈,行業(yè)內(nèi)也整理了有效思維鏈的特點(diǎn):
- 具有邏輯性,即思維鏈的邏輯相互連接,形成了一個(gè)完整的思考過(guò)程
- 具有全面性:即全面細(xì)致地思考問(wèn)題,這里可以采用MECE法則(獨(dú)立且窮盡每一個(gè)關(guān)鍵步驟)
- 可行性:每個(gè)步驟都可行
- 可驗(yàn)證性:每個(gè)步驟都可驗(yàn)證
二、如何構(gòu)建Prompt
AIGC產(chǎn)品經(jīng)理(及人工智能訓(xùn)練師)構(gòu)建Prompt的能力是核心競(jìng)爭(zhēng)力之一,Prompt影響最終模型輸出,而使用者需要洞察當(dāng)下產(chǎn)品需求。框架化、結(jié)構(gòu)化組建Prompt可以更好地完成任務(wù)。
網(wǎng)上已經(jīng)有很多介紹如何Prompt的體系和模板,但萬(wàn)變不離其宗,再多維的框架也有基礎(chǔ)。針對(duì)文本類(lèi),我個(gè)人比較推薦QCIPSPE框架,大家可以根據(jù)不同的需求進(jìn)行修改。注意,要避免說(shuō)不做什么,直接說(shuō)要做什么即可,做直接、具體、精確的輸入。
- Q:Question type:?jiǎn)栴}類(lèi)型,例如建議、查詢(xún)、比較等
- C:Capacity and role :角色
- I:Insight:提供上下文
- P:Priorty::表明問(wèn)題中的優(yōu)先級(jí)
- S:Statement:需求澄清
- P:Personality:回答的風(fēng)格
- E:Experiment:多個(gè)答案或者比較
三、Prompt需要避免的問(wèn)題
- 過(guò)于精簡(jiǎn)的信息:如果BOT能根據(jù)缺失信息再觸發(fā)多輪問(wèn)詢(xún)是最好的,但如果BOT不支持,可能就會(huì)出現(xiàn)回答過(guò)于寬泛或者不準(zhǔn)確的問(wèn)題。如框架所示,附上背景描述或示例參考有助于模型更好的輸出。
- 過(guò)于修飾的詞藻:復(fù)雜的語(yǔ)義反而會(huì)擾亂模型輸出,Prompt簡(jiǎn)單、直接、完整,即可最高效的得到答復(fù)。
- 前后語(yǔ)義互斥:保證指令的準(zhǔn)確性,不要將沖突信息放在一起。這里特殊地,盡量要求模型做什么,不要說(shuō)不可以做什么。
對(duì)于生成類(lèi)對(duì)話(huà)產(chǎn)品來(lái)說(shuō),Prompt決定了最后的輸出。但是對(duì)于垂類(lèi)場(chǎng)景來(lái)說(shuō),Prompt是用戶(hù)對(duì)于BOT的指令,用戶(hù)使用門(mén)檻是否過(guò)高還需提供框架精簡(jiǎn)用戶(hù)輸入,是否每個(gè)場(chǎng)景都合適生成式引入也需垂類(lèi)產(chǎn)品考慮。
本文由 @JasmineWei 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理。未經(jīng)作者許可,禁止轉(zhuǎn)載。
題圖來(lái)自Unsplash,基于CC0協(xié)議。
該文觀點(diǎn)僅代表作者本人,人人都是產(chǎn)品經(jīng)理平臺(tái)僅提供信息存儲(chǔ)空間服務(wù)。
- 目前還沒(méi)評(píng)論,等你發(fā)揮!