博客專欄

        EEPW首頁 > 博客 > 關(guān)于Prompt Engineering你該了解啥?OpenAI應(yīng)用研究負責(zé)人幫你梳理了(1)

        關(guān)于Prompt Engineering你該了解啥?OpenAI應(yīng)用研究負責(zé)人幫你梳理了(1)

        發(fā)布人:機器之心 時間:2023-04-23 來源:工程師 發(fā)布文章

        隨著 ChatGPT、GPT-4 等模型的興起,人們對如何創(chuàng)建提示以獲得想要的輸出越來越感興趣。研究者對特定提示的響應(yīng)可能很難預(yù)測,并且會因模型的不同而不同。本文來自 OpenAI 的翁麗蓮(Lilian Weng) 撰文介紹了關(guān)于提示的一些內(nèi)容,包括基礎(chǔ)提示、指令提示等內(nèi)容。


        Prompt 工程,也稱為 In-Context Prompt,是指在不更新模型權(quán)重的情況下如何與 LLM 交流以引導(dǎo)其行為來獲得所需結(jié)果的方法。這是一門經(jīng)驗科學(xué),Prompt 工程方法的效果在模型之間可能會有很大差異,因此需要大量的實驗和啟發(fā)式方法。本文來自 OpenAI 的 Lilian Weng (翁麗蓮) 介紹了一些關(guān)于提示工程的知識。翁麗蓮為 OpenAI 人工智能應(yīng)用研究的負責(zé)人,2018 年加入 OpenAI,在 GPT-4 項目中主要參與預(yù)訓(xùn)練、強化學(xué)習(xí) & 對齊、模型安全等方面的工作。圖片主要內(nèi)容包含以下章節(jié),下面我們看看本文主要內(nèi)容。圖片基礎(chǔ) PromptZero-shot 和 few-shot 學(xué)習(xí)是 prompt 模型的兩種最基本的方法,許多關(guān)于 LLM 論文都有涉及,并常用于評估 LLM 的性能。Zero-Shot 學(xué)習(xí)Zero-Shot 學(xué)習(xí)是簡單地將任務(wù)文本輸入模型并要求其返回結(jié)果。(所有情感分析示例均來自 SST-2)



        Text: i'll bet the video game is a lot more fun than the film.Sentiment:


        Few-shot 學(xué)習(xí)Few-shot 學(xué)習(xí)提供了一組關(guān)于目標任務(wù)的高質(zhì)量的演示,每個演示都包含目標任務(wù)的輸入和期望的輸出。當(dāng)模型首先看到好的例子時,它可以更好地理解人類的意圖和對所需答案的標準。因此,與 zero-shot 學(xué)習(xí)相比,few-shot 學(xué)習(xí)通常會導(dǎo)致更好的性能。然而,這樣的代價是消耗更多的 token,并且當(dāng)輸入和輸出文本很長時,可能會達到上下文長度限制。












        Text: (lawrence bounces) all over the stage, dancing, running, sweating, mopping his face and generally displaying the wacky talent that brought him fame in the first place.Sentiment: positive
        Text: despite all evidence to the contrary, this clunker has somehow managed to pose as an actual feature movie, the kind that charges full admission and gets hyped on tv and purports to amuse small children and ostensible adults.Sentiment: negative
        Text: for the first time in years, de niro digs deep emotionally, perhaps because he's been stirred by the powerful work of his co-stars.Sentiment: positive
        Text: i'll bet the video game is a lot more fun than the film.Sentiment:


        許多研究探討了如何構(gòu)建上下文示例以最大限度地提高性能,并觀察到 prompt 格式、訓(xùn)練示例和示例順序的選擇可能導(dǎo)致截然不同的性能,從接近隨機猜測到接近 SOTA。Zhao 等人的研究調(diào)查了 few-shot 分類情況,并提出幾個導(dǎo)致高方差的原因(他們在實驗中使用 GPT-3):(1)如果標簽在示例之間的分布不平衡,會導(dǎo)致 Majority label 偏差;(2) Receny 偏差是指模型可能在最后重復(fù)標簽的趨勢;(3) Common token 偏差表明 LLM 傾向于生成常見的 token 而不是罕見的 token。為了克服這類偏差,他們提出了一種方法來校準模型輸出的標簽概率,使得當(dāng)輸入字符串為 N/A 時,標簽的概率輸出變?yōu)榫鶆蚍植肌?/span>樣本選擇小技巧

        • 在 embedding 空間中使用 k-NN 聚類選擇與測試示例在語義上相似的示例 (Liu et al., 2021);
        • 為了選擇多樣化且具有代表性的示例集,[Su et al. (2022)] 提出使用基于圖的方法:(1) 首先,構(gòu)造一個有向圖 G=(V,E) 基于嵌入(例如通過 SBERT 或其他嵌入模型)樣本之間的余弦相似度,其中每個節(jié)點指向其 k 個最鄰近節(jié)點;(2) 從一組選定樣本 L=? 和一組剩余樣本 U 開始。每個樣本 u∈U 的 score 表示為:圖片,如果選擇了 v 的許多鄰近節(jié)點,則 s (v) 很低,因此評分鼓勵選擇不同的樣本;
        • [Rubin et al. (2022)] 提出通過特定于一個訓(xùn)練數(shù)據(jù)集的對比學(xué)習(xí)來訓(xùn)練 embedding,以進行上下文學(xué)習(xí)樣本選擇。給定每個訓(xùn)練對 (x,y),一個示例 e_i(格式化的輸入 - 輸出對)的質(zhì)量可以通過 LM 分配的條件概率來衡量:圖片可以將其他具有 top-k 和 bottom-k 分數(shù)的示例識別為每個訓(xùn)練對的正負候選集,并將其用于對比學(xué)習(xí);
        • 一些研究人員嘗試使用 Q-Learning 來進行樣本選擇 (Zhang et al. 2022);
        • 受基于不確定性的主動學(xué)習(xí)的啟發(fā),[Diao et al. (2023)] 建議在多次抽樣試驗中識別熵較大的例子。然后注釋這些示例以用于 few-shot prompt。

         

        關(guān)于樣本排序的小技巧

        • 建議保持樣本選擇的多樣性、與測試樣本相關(guān)并以隨機順序排列,以避免 Majority Label bias 和 Recency bias;

        • 加模大小或包含更多訓(xùn)練樣本并不能減少不同上下文樣本排列的方差。同一順序可能適用于一個模型,但對另一個模型效果不佳。當(dāng)驗證集有限時,考慮選擇順序,使得模型不會產(chǎn)生極不平衡的預(yù)測或?qū)ζ漕A(yù)測過于自信 (Lu et al. 2022)。

        指令 prompt在 prompt 中使用 few-shot 示例的目的是向模型解釋我們的意圖,換句話說,以演示的形式向模型描述任務(wù)指令。然而,few-shot 樣本在標記使用方面可能很昂貴,并且由于上下文長度有限,它會限制輸入長度。那么,為什么不直接給出指令呢?Instructed LM 模型(例如 InstructGPT、自然指令)通過高質(zhì)量的元組(任務(wù)指令,輸入,正確輸出)來微調(diào)預(yù)訓(xùn)練模型,以使 LM 更好地理解用戶意圖并遵循指令。RLHF(來自人類反饋的強化學(xué)習(xí))是一種常用的方法。指令跟隨式微調(diào)的好處在于,它使模型更加符合人類意圖,大大降低通信成本。與指令模型交互時,應(yīng)該詳細描述任務(wù)要求,盡量具體和精確,避免說 “不要做某事”,而是具體說明要做什么。




        Please label the sentiment towards the movie of the given movie review. The sentiment label should be "positive" or "negative". Text: i'll bet the video game is a lot more fun than the film. Sentiment:


        向指定群體解釋是另一種聰明的指示方式,例如為孩子們制作教育資料


        Describe what is quantum physics to a 6-year-old.


        以及安全的內(nèi)容


        ... in language that is safe for work.


        情境指令學(xué)習(xí) [Ye et al. 2023] 將 few-shot 學(xué)習(xí)與指令 prompt 相結(jié)合。它在 prompt 中包含多個跨不同任務(wù)的演示示例,每個演示都由指令、任務(wù)輸入和輸出組成。請注意,他們的實驗僅針對分類任務(wù),指令 prompt 包含所有標簽選項。














        Definition: Determine the speaker of the dialogue, "agent" or "customer".Input: I have successfully booked your tickets.Ouput: agent

        Definition: Determine which category the question asks for, "Quantity" or "Location".Input: What's the oldest building in US?Ouput: Location

        Definition: Classify the sentiment of the given movie review, "positive" or "negative".Input: i'll bet the video game is a lot more fun than the film.Output:


        自洽采樣自洽采樣 [Wang et al. 2022a] 是對 temperature > 0 的多個輸出進行采樣,然后從這些候選中選擇最好的一個。選擇最佳候選的標準因任務(wù)而異。一般的解決方案是選擇多數(shù)票。對于易于驗證的任務(wù),例如帶有單元測試的編程問題,可以簡單地運行解釋器并通過單元測試驗證正確性。思維鏈 (CoT)思維鏈 (CoT) prompt (Wei et al. 2022) 生成一系列短句來逐步描述推理邏輯,稱為推理鏈,最終得出最終答案。CoT 的好處對于復(fù)雜的推理任務(wù)更為明顯,同時使用大型模型(例如,參數(shù)超過 50B)。簡單的任務(wù)從 CoT 的 prompt 中獲益甚微。CoT prompt 的類型CoT prompt 的兩種主要類型:few-shot CoT:通過一些演示來給模型 prompt,每個演示都包含人類編寫(或模型生成)的高質(zhì)量推理鏈。(所有數(shù)學(xué)推理例子均來自 GSM8k)














        Question: Tom and Elizabeth have a competition to climb a hill. Elizabeth takes 30 minutes to climb the hill. Tom takes four times as long as Elizabeth does to climb the hill. How many hours does it take Tom to climb up the hill?Answer: It takes Tom 30*4 = <<30*4=120>>120 minutes to climb the hill.It takes Tom 120/60 = <<120/60=2>>2 hours to climb the hill.So the answer is 2.===Question: Jack is a soccer player. He needs to buy two pairs of socks and a pair of soccer shoes. Each pair of socks cost $9.50, and the shoes cost $92. Jack has $40. How much more money does Jack need?Answer: The total cost of two pairs of socks is $9.50 x 2 = $<<9.5*2=19>>19.The total cost of the socks and the shoes is $19 + $92 = $<<19+92=111>>111.Jack need $111 - $40 = $<<111-40=71>>71 more.So the answer is 71.===Question: Marty has 100 centimeters of ribbon that he must cut into 4 equal parts. Each of the cut parts must be divided into 5 equal parts. How long will each final cut be?Answer:


        Zero-shot CoT:使用像「讓我們一步一步來思考」這樣的自然語言語句來明確鼓勵模型首先生成推理鏈,然后 prompt「因此答案是」來生成答案 (Kojima et al. 2022)。或者類似的陳述「讓我們一步一步地解決這個問題,以確保我們有正確的答案」(Zhou et al. 2022)。



        Question: Marty has 100 centimeters of ribbon that he must cut into 4 equal parts. Each of the cut parts must be divided into 5 equal parts. How long will each final cut be?Answer: Let's think step by step.


        小技巧和擴展

        • 自洽采樣可以通過抽取多個不同的答案然后進行多數(shù)表決來提高推理的準確性。(Wang et al. 2022a);

        • 集成學(xué)習(xí)的另一種方法是改變樣本順序或使用模型生成的基本原理來代替人工編寫的基本原理,以在多個樣本試驗中引入隨機性。然后聚合模型根據(jù)多數(shù)投票的結(jié)果獲得最終答案。(Wang et al. 2022b);

        • 如果訓(xùn)練樣例只與真實答案相關(guān)聯(lián),但沒有基本推理,可以遵循 STaR(Self-Taught Reasoner;Zelikman et al. 2022)方法:(1)讓 LLM 生成推理鏈,只保留那些導(dǎo)致正確答案的鏈;(2) 然后用生成的基本推理微調(diào)模型并重復(fù)該過程直到收斂。需要注意的是,較高的 temperature 更有可能產(chǎn)生錯誤的基本原理和正確的答案。如果訓(xùn)練樣本沒有真實答案,可以考慮使用多數(shù)票作為 “正確” 答案;

        • Prompt 具有更高推理復(fù)雜性的演示可以實現(xiàn)更好的性能,其中復(fù)雜性由鏈中推理步驟的數(shù)量來衡量。分隔推理步驟時,換行符 \n 比 “步驟 i”、句號或分號等要好 (Fu et al. 2023);

        • Complexity-based 的一致性是通過僅在前 k 個復(fù)雜鏈中進行多數(shù)投票表決,選出 k 個中明確表現(xiàn)較好的復(fù)雜鏈 (Fu et al. 2023);

        • [Shum et al. (2023) ] 發(fā)現(xiàn)在他們的實驗中,僅使用復(fù)雜示例的 CoT 提示可以提高復(fù)雜問題的準確性,但在簡單問題中表現(xiàn)不佳 (GSM8k 上的表現(xiàn)就是明顯的證據(jù));

        • 將 Q: 更改為 Question: 發(fā)現(xiàn)很有幫助 (Fu et al. 2023);

        • [Ye & Durrett (2022) ] 發(fā)現(xiàn),對于涉及文本推理的 NLP 任務(wù)(即 QA 和 NLI),在 prompt 中包含解釋的好處有用處但是不大,并且效果因模型而異。他們觀察到解釋更可能是非事實的而不是不一致的(即解釋是否需要預(yù)測)。非事實的解釋很可能導(dǎo)致錯誤的預(yù)測;

        • [Self-Ask (Press et al. 2022) ] 是一種反復(fù) prompt 模型提出后續(xù)問題以迭代構(gòu)建思維過程的方法。可以通過搜索引擎結(jié)果回答后續(xù)問題。同樣,IRCoT [Interleaving Retrieval CoT;Trivedi et al. 2022] 和 ReAct [Reason + Act;Yao et al. 2023] 將迭代 CoT 提示與維基百科 API 查詢相結(jié)合,以搜索相關(guān)實體和內(nèi)容,然后將其添加回語境中。


        圖片

        圖 1. Self-Ask 如何與外部搜索查詢一起使用(圖源:Press et al. 2022)。


        *博客內(nèi)容為網(wǎng)友個人發(fā)布,僅代表博主個人觀點,如有侵權(quán)請聯(lián)系工作人員刪除。



        關(guān)鍵詞: AI

        相關(guān)推薦

        技術(shù)專區(qū)

        關(guān)閉
        主站蜘蛛池模板: 黄浦区| 常山县| 昭平县| 金塔县| 奇台县| 龙岩市| 富顺县| 泽普县| 鞍山市| 台东县| 蚌埠市| 霍邱县| 禹州市| 崇信县| 凉城县| 交口县| 稷山县| 左权县| 苗栗市| 尼玛县| 南召县| 天祝| 遵义县| 天全县| 临沂市| 于田县| 德昌县| 左云县| 博罗县| 大同县| 新泰市| 布拖县| 河津市| 嵊州市| 安西县| 敦煌市| 本溪| 山阳县| 和林格尔县| 义马市| 武夷山市|