產品必讀|AI對話(二):Prompt不只是一句話

0 評論 6390 瀏覽 17 收藏 9 分鐘

很大程度上,Prompt的結構與內容會對最后模型的輸出能力產生極大影響,所以,我們需要做好Prompt的設計。這篇文章里,作者就對Prompt如何構建等問題做了分享,一起來看。

Prompt是什么?簡單理解,用戶輸入給AI模型的一串指令或提示詞(Prompt)讓模型完成指定任務。前文提到,訓練模型的【Pre-train,Prompt,Predict】這個范式,用特定語言的模板(prompt)挖掘預訓練模型(Pre-train)的本身能力,因此可以降低語義差異。(其他訓練范式請見上個系列)

理所當然的,輸入的不同直接決定了輸出的質量。Prompt 的結構與內容對最后模型的輸出能力有極大影響,要想更好地得到輸出,對Prompt的設計必不可少。

一、Prompt有哪些分類

1. Zero-shot

零樣本提示,即直接給指令,不舉例引導。其實這是最為能證明模型推理能力的情況,也是我們最理想的任務形式,我們讓機器人做什么事,它就能直接做了。

例如:在機器沒有專門針對進行股市描述分析訓練,輸出一份股市走勢報告。

我們常發現這樣的情況模型輸出的效果不是很好,因此針對這樣的情況,還會進一步補充更多的提示信息過渡。

2. Few-Shot

即提供給模型幾個示例,實現上下文學習(ICL – In Context Learning),引導模型更好地輸出任務。其中只提供了一個示例的是One-shot。

例如下圖(與豆包對話),在這個Case中給出了兩個示例,最后的輸出也可以看到依賴了相關輸入。

但Few shot仍然具有局限性,特別是對于推理性等復雜任務。

但大家發現,如果將問題分解成步驟,并向模型演示,可能會有所幫助,因此CoT(chain-of thought prompting)成為大家關注的方向,以解決復雜任務(例如算術、推理等)。

3. CoT(Chain of Thought)

簡單來講,為了更好地解決復雜問題,我們需要模型了解中間推導/計算的過程,因此思維鏈其實是多了中間的推導。但CoT對小模型作用不大,對復雜問題的性能增益更大。(模型參數達到10B有效果,100B效果明顯)

1)Zero shot CoT

這種思維鏈非常的取巧,即不再給模型任何的示例,只是發出指令讓它自己“一步步想”。即利用:Let’s think step by step 以及 Therefore,the answer is 等提示得出答案。

例如下圖的情況,雖然模型回答錯了;

當然如果矯正這個問題,我們可以再給出一些提示,繼續給出推導思路 (不屬于Zero Shot);

現在模型已回答正確,那么我們再提問一次,可以看到模型已經學到這樣的推導邏輯。

2)Few shot CoT

是ICL(In-context learning)的一種特殊情況,將<Input,Output>擴充為<input,CoT,output>

Few shot CoT是在進行提示的時候,給出一個具體的推導示例,例如:

3)增強的CoT策略:Self- Consistency

這個名字看起來很復雜,翻譯也比較復雜,利用自洽性提高語言模型中的思維鏈推理效果。其實你可以很簡單的理解,就是模型通過了多種思維得出了多個結果,最后投票看哪個結果占比最多(可能也有其他維度),最后輸出這個投票出來的結果。

例如剛剛的籃子數學題,豆包給了三種解法:

假設現在使用的是Self- Consistency,那么模型內部投票發現有兩個結果的答案是4個水果,1個答案是5個水果,按照既定投票規則,最后輸出的答案是4,就可以在很大程度上可以提高模型的效果。

針對思維鏈,行業內也整理了有效思維鏈的特點:

  1. 具有邏輯性,即思維鏈的邏輯相互連接,形成了一個完整的思考過程
  2. 具有全面性:即全面細致地思考問題,這里可以采用MECE法則(獨立且窮盡每一個關鍵步驟)
  3. 可行性:每個步驟都可行
  4. 可驗證性:每個步驟都可驗證

二、如何構建Prompt

AIGC產品經理(及人工智能訓練師)構建Prompt的能力是核心競爭力之一,Prompt影響最終模型輸出,而使用者需要洞察當下產品需求??蚣芑?、結構化組建Prompt可以更好地完成任務。

網上已經有很多介紹如何Prompt的體系和模板,但萬變不離其宗,再多維的框架也有基礎。針對文本類,我個人比較推薦QCIPSPE框架,大家可以根據不同的需求進行修改。注意,要避免說不做什么,直接說要做什么即可,做直接、具體、精確的輸入。

  • Q:Question type:問題類型,例如建議、查詢、比較等
  • C:Capacity and role :角色
  • I:Insight:提供上下文
  • P:Priorty::表明問題中的優先級
  • S:Statement:需求澄清
  • P:Personality:回答的風格
  • E:Experiment:多個答案或者比較

三、Prompt需要避免的問題

  • 過于精簡的信息:如果BOT能根據缺失信息再觸發多輪問詢是最好的,但如果BOT不支持,可能就會出現回答過于寬泛或者不準確的問題。如框架所示,附上背景描述或示例參考有助于模型更好的輸出。
  • 過于修飾的詞藻:復雜的語義反而會擾亂模型輸出,Prompt簡單、直接、完整,即可最高效的得到答復。
  • 前后語義互斥:保證指令的準確性,不要將沖突信息放在一起。這里特殊地,盡量要求模型做什么,不要說不可以做什么。

對于生成類對話產品來說,Prompt決定了最后的輸出。但是對于垂類場景來說,Prompt是用戶對于BOT的指令,用戶使用門檻是否過高還需提供框架精簡用戶輸入,是否每個場景都合適生成式引入也需垂類產品考慮。

本文由 @JasmineWei 原創發布于人人都是產品經理。未經作者許可,禁止轉載。

題圖來自Unsplash,基于CC0協議。

該文觀點僅代表作者本人,人人都是產品經理平臺僅提供信息存儲空間服務。

更多精彩內容,請關注人人都是產品經理微信公眾號或下載App
評論
評論請登錄
  1. 目前還沒評論,等你發揮!