Few Shot:最少的樣本,最大的可能

0 評論 2680 瀏覽 3 收藏 12 分鐘

在LLM提示工程中,鏈?zhǔn)酵评硎且环N方法,少樣本提示也是一種。如何能讓“少樣本”發(fā)揮出最大的價值,這篇文章提供了多種思路。

前兩周我們探討了LLM 提示工程中的一個關(guān)鍵方法:鏈?zhǔn)酵评恚–hain of Thought)在實際產(chǎn)品開發(fā)中的應(yīng)用和注意要點。這篇文章我們會分享少樣本提示(few shot)的概念和應(yīng)用。

一、概念:零樣本提示(Zero shot)與少樣本提示(Few shot)

想象一下,你有一位非常聰明的助手。

很多時候,你只需要告訴他你想要做什么,他就能立刻理解并正確無誤地替你辦完。比如,你告訴他“請幫我找最近3個月AIGC的最新研究發(fā)現(xiàn)”,他就能快速又貼心地給你想要的。但如果,你要他做的任務(wù)是“給客戶寫一封正式的邀請函”,且這類邀請函自帶獨特的排版格式、語言要求。你的助手縱然天賦異稟,也得知道邀請函怎么寫才行。那么,你會怎么做?

第一種方法,絮叨半小時,把規(guī)則一條條說清楚:“請給我寫一封客戶的邀請函,第一行必須是客戶抬頭,而且要頂格;第二行是……;日期的格式要這樣,結(jié)尾的格式要那樣……”。

第二種方法,簡單指示+參考:“這次的活動要請XX公司的張總參加,客戶名片、活動時間在這里。你來草擬正式的邀請函,具體的格式和語言風(fēng)格按照以前的邀請函來,這里有一些好的例子,你拿去參考。

如果助手夠聰明,也有具備寫作能力,第二種方法對你和助手來說,顯然都是輕松又高效的。

這兩種“提要求”的方法,恰恰就是prompt兩種不同的技術(shù):零樣本提示(Zero Shot)和少樣本提示(Few Shot)樣本。

  1. 零樣本提示(Zero Shot):是一種在沒有任何相關(guān)示例的情況下,直接對模型進行提問的方法。
  2. 少樣本提示(Few Shot):在提示中提供少量的示例,以幫助模型更好地理解任務(wù)的目標(biāo)和輸出要求。

如果你的提示直接明確,或者想獲得開放性的回答,零樣本提示(Zero Shot)足矣。但如果需要模型從事特定的模式或結(jié)構(gòu),就需要少樣本提示(Few Shot)了。

二、應(yīng)用:Few Shot的舉例方式

嚴(yán)格來說,F(xiàn)ew Shot重在“舉例”,對提示的形式幾乎沒有特別要求。常見的寫法有以下兩種:

1. 用“輸入-輸出”的示例結(jié)構(gòu),讓LLM理解你要的結(jié)果:

(Few Shot 部分)

情感分析任務(wù)。

示例1:

輸入:這個餐廳的服務(wù)太棒了,強烈推薦!

輸出:正面

示例 2:

輸入:我對我購買的耳機感到非常失望,音質(zhì)很差。

輸出:負(fù)面

(任務(wù)要求)

新任務(wù):

輸入:這部電影的演員表現(xiàn)非常出色,劇情緊湊,值得一看。

輸出:

LLM回答:

正面。

這類要求適合對輸出的格式有嚴(yán)格要求的內(nèi)容。

2. 給示例+語言描述輸出要求:

示例1:

長江悲已滯,萬里念將歸。

況屬高風(fēng)晚,山山黃葉飛。

示例2:

江曠春潮白,山長曉岫青。

他鄉(xiāng)臨睨極,花柳映邊亭。

示例3:

城闕輔三秦,風(fēng)煙望五津。

與君離別意,同是宦游人。

海內(nèi)存知己,天涯若比鄰。

無為在歧路,兒女共沾巾。

請模仿示例中的3首詩歌風(fēng)格,寫一首五言絕句。

LLM回答:

碧波漾秋意,孤舟載夢回。

遠(yuǎn)山銜落日,歸鳥入林催。

三、進階:如何用好Few Shot

Few shot既然是Prompt技術(shù)的一種,自然也和其他技術(shù)一樣,有放大優(yōu)勢的“妙招”和限制發(fā)揮的“昏招”。我們在這里,為你做了總結(jié):

1. 量不在多,有用就好

很多人也許會好奇“

樣本”的數(shù)量到底多少合適。一般來說,F(xiàn)ew shot通常指2到20個示例之間。在實踐中,使用3-shot、5-shot 或 10-shot 的情況較多。而超過20個示例通常不再被認(rèn)為是“few-shot”了。另外,已經(jīng)有大量研究證明few shot并不是越多越好,更多的示例并不能提升輸出的結(jié)果。因此,提供高質(zhì)量的示例才是更好的方法。

2. 如果有標(biāo)簽,“全面”比“貼對”更重要

用“輸入-輸出”方式所做的few shot示例集,往往會為輸出定義一個分類或者內(nèi)容,比如在上面的情感分析中“正面”、“負(fù)面”、“積極”和“消極”等。這樣的分類在few shot技術(shù)中被稱為“標(biāo)簽”。這類標(biāo)簽?zāi)軒椭P屠斫馐纠?,并且定義可能輸出的范疇。

有意思的是,有人做了對比研究:讓人類專家給示例集貼上正確的標(biāo)簽(后稱為“黃金標(biāo)簽”),和讓機器自己在標(biāo)簽范圍內(nèi)(比如消極、積極)隨機選擇,對示例集貼上標(biāo)簽(后稱為“隨機標(biāo)簽”)。研究后發(fā)現(xiàn),即使隨機標(biāo)簽會出錯,但“隨機標(biāo)簽”的做法并不影響最終的輸出。反而,這些標(biāo)簽給得夠不夠全面,決定了LLM的輸出范疇。如果標(biāo)簽范疇有明顯的缺漏,那會明顯影響輸出的準(zhǔn)確性。

所以,當(dāng)few shot示例集需要用標(biāo)簽的方式時,準(zhǔn)備全面且準(zhǔn)確的標(biāo)簽分類,比思考給每個示例貼上正確標(biāo)簽更重要。

3. 既“相似”又“多樣”

在選擇few shot上,最理想的示例集是“相似性”與“多樣性”兼顧。

相似性:

指的是few shot和輸出任務(wù)在主題、概念或情感上相似,這樣可以幫助模型更快地理解和適應(yīng)新任務(wù)。比如,你的輸出任務(wù)是讓LLM模型來分析人們對餐館/食物的點評是積極還是消極的。那么,示例應(yīng)該與點評相關(guān)。

相關(guān):

這家飯店真是太好吃了,我強烈推薦?。?biāo)簽:積極)

我非常喜歡這家飯店,食物非常出色。(標(biāo)簽:積極)

非相關(guān):

這部電影讓我很失望,劇情平淡無奇。(標(biāo)簽:消極)

消極:我對這部電影不太滿意,角色的發(fā)展不夠深入。(標(biāo)簽:消極)

多樣性:

指的是few shot之間,要在風(fēng)格、結(jié)構(gòu)或語義上有差異,這樣可以確保模型接觸到不同的語境,提高泛化能力。來對比一下“多樣”和“非多樣”之間的差別。

非多樣的示例集:

正面:這家餐廳的食物非常好吃。

正面:我非常喜歡這家餐廳的服務(wù)。

正面:餐廳的環(huán)境很棒。

負(fù)面:我不太喜歡這家餐廳的食物。

負(fù)面:這家餐廳的服務(wù)不太好。

負(fù)面:餐廳的環(huán)境讓我感到不舒服。

多樣性的示例集:

正面:這家餐廳的食物讓我印象深刻,每一道菜都烹飪得恰到好處。

正面:雖然價格不菲,但這家餐廳的服務(wù)和氛圍絕對值得。

正面:餐廳的裝潢很有特色,讓人用餐時心情愉悅。

負(fù)面:我對這家餐廳的體驗感到失望,期待的菜肴并沒有達(dá)到預(yù)期。

負(fù)面:昨晚的餐廳之旅并不理想,服務(wù)生似乎很忙,忽略了我們的需求。

負(fù)面:餐廳的布局有些擁擠,影響了我們的用餐體驗。

可以看到,非多樣的示例中,示范示例在語義上過于相似,都是直接表達(dá)對食物、服務(wù)和環(huán)境的正面或負(fù)面評價。而多樣性示例,在內(nèi)容上更加豐富(食物、裝潢、價格),語言風(fēng)格的表達(dá)也有不同,這可以幫助模型學(xué)習(xí)到更廣泛的語言模式和情感表達(dá),提高性能。

4. 實驗、實驗,還是實驗

在實踐過程中,你可能會發(fā)現(xiàn)在不同的任務(wù)中,相似性和多樣性的重要性不同,有些任務(wù)中,強調(diào)多樣性的示例集表現(xiàn)更好,有些任務(wù)則恰恰相反。已經(jīng)有研究證明了這一點,在《IN-CONTEXT LEARNING WITH ITERATIVE DEMON- STRATION SELECTION》中研究者就發(fā)現(xiàn),在他們的訓(xùn)練集的研究中,常識問答的任務(wù)中多樣性維度優(yōu)于相似性維度,而在新聞報道類的任務(wù)中相似性維度優(yōu)于多樣性維度。

因此,即使是有了相似性和多樣性的策略,在真實實踐中,也需要我們不斷“調(diào)試”,找到最合適任務(wù)的雙維度“配比”。

5. 最后的最后:選擇合適的模型

如果以上方法都不奏效,那么,你得看看現(xiàn)在的模型到底合適不合適了。

模型在預(yù)訓(xùn)練階段接觸到的輸入數(shù)據(jù)會有一定的特征,比如詞匯的使用頻率、句子的結(jié)構(gòu)、主題等等。在Few Shot的應(yīng)用中,模型是需要根據(jù)給定的示例集來理解特定任務(wù),并據(jù)此對新的輸入做出預(yù)測。如果示例集中的數(shù)據(jù)與模型在預(yù)訓(xùn)練階段接觸到的數(shù)據(jù)特相匹配,那么模型更有可能準(zhǔn)確地理解和執(zhí)行任務(wù)。這是因為模型能夠利用其在預(yù)訓(xùn)練階段學(xué)到的知識,來推斷和生成與示例集一致的輸出。

比如:如果一個模型在預(yù)訓(xùn)練階段主要接觸到的是科技領(lǐng)域的文本,那么它在處理科技相關(guān)的上下文學(xué)習(xí)任務(wù)時可能會表現(xiàn)得更好,因為它對這類文本的輸入分布已經(jīng)有了很好的理解。相反,性能可能會下降。因此,到最后你真的無計可施了,emmm,也許問題并不在few shot詞身上。

本文由 @AI 實踐干貨 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理。未經(jīng)作者許可,禁止轉(zhuǎn)載

題圖來自 Unsplash,基于CC0協(xié)議

該文觀點僅代表作者本人,人人都是產(chǎn)品經(jīng)理平臺僅提供信息存儲空間服務(wù)

更多精彩內(nèi)容,請關(guān)注人人都是產(chǎn)品經(jīng)理微信公眾號或下載App
評論
評論請登錄
  1. 目前還沒評論,等你發(fā)揮!
专题
72294人已学习13篇文章
产品经理天天跟“需求”打交道,产品经理的核心价值就是处理“需求”的能力。
专题
53205人已学习15篇文章
无论是个人运营体系还是公司运营体系的构建,你都能在这里找到。
专题
15173人已学习12篇文章
用户体验五要素包括战略层、范围层、框架层、结构层、表现层五个方面,本专题的文章分享了用户体验五要素的看法。
专题
88173人已学习12篇文章
世间万物皆有套路,面试更是如此,多拿几个靠谱offer。
专题
40131人已学习22篇文章
不想当CEO的产品经理不是好运营
专题
17115人已学习14篇文章
RFM模型是与用户价值相关的常见模型之一。本专题的文章分享了什么是RFM模型?如何应用RFM模型?