久久ER99热精品一区二区-久久精品99国产精品日本-久久精品免费一区二区三区-久久综合九色综合欧美狠狠

博客專欄

EEPW首頁 > 博客 > 關于Prompt Engineering你該了解啥?OpenAI應用研究負責人幫你梳理了(1)

關于Prompt Engineering你該了解啥?OpenAI應用研究負責人幫你梳理了(1)

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

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


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



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


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












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:


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

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

 

關于樣本排序的小技巧

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

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

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




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.


以及安全的內容


... in language that is safe for work.


情境指令學習 [Ye et al. 2023] 將 few-shot 學習與指令 prompt 相結合。它在 prompt 中包含多個跨不同任務的演示示例,每個演示都由指令、任務輸入和輸出組成。請注意,他們的實驗僅針對分類任務,指令 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 的多個輸出進行采樣,然后從這些候選中選擇最好的一個。選擇最佳候選的標準因任務而異。一般的解決方案是選擇多數票。對于易于驗證的任務,例如帶有單元測試的編程問題,可以簡單地運行解釋器并通過單元測試驗證正確性。思維鏈 (CoT)思維鏈 (CoT) prompt (Wei et al. 2022) 生成一系列短句來逐步描述推理邏輯,稱為推理鏈,最終得出最終答案。CoT 的好處對于復雜的推理任務更為明顯,同時使用大型模型(例如,參數超過 50B)。簡單的任務從 CoT 的 prompt 中獲益甚微。CoT prompt 的類型CoT prompt 的兩種主要類型:few-shot CoT:通過一些演示來給模型 prompt,每個演示都包含人類編寫(或模型生成)的高質量推理鏈。(所有數學推理例子均來自 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.


小技巧和擴展

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

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

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

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

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

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

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

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

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


圖片

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


*博客內容為網友個人發布,僅代表博主個人觀點,如有侵權請聯系工作人員刪除。



關鍵詞: AI

相關推薦

技術專區

關閉