1、什么是提示詞?
提示詞(Prompt)是用戶發送給大語言模型的問題、指令或請求,用來明確地告訴模型用戶想要解決的問題或完成的任務,是大語言模型理解用戶需求并據此生成相關、準確回答或內容的基礎。對于大語言模型來說,提示詞就是用戶輸入給大語言模型的文本信息。
下面我們來看一個對大模型提問的示例:
> 請結合《哪吒之魔童降世》整個系列評價最近剛剛上映的電影《哪吒之魔童鬧海》
--------------------------------------------------------------------------------------------
《哪吒之魔童鬧海》作為《哪吒之魔童降世》的續集,延續了前作的高熱度與票房神話,但其敘事內核、技術表現和文化表達均展現出新的突破與爭議。結合系列整體來看,這兩部作品共同構建了一個兼具現代性與傳統神話重述的“哪吒宇宙”,同時也在主題、風格和市場定位上形成鮮明對比。以下從多個維度展開分析:
1. 敘事與主題的演變:從個體抗爭到群體覺醒
《魔童降世》的核心:聚焦哪吒的“自我救贖”,通過“我命由我不由天”的吶喊,探討個體如何突破偏見與宿命。影片以親情為紐帶,將傳統哪吒故事中父子對抗的悲劇改寫為家庭共同對抗天命,強調“愛”對成長的救贖作用148。
《魔童鬧海》的拓展:續集將矛盾從個體命運轉向更宏大的權力結構。哪吒不僅要對抗“魔丸”身份,還需挑戰仙族權威(如無量仙翁),甚至聯合被壓迫的妖族與龍族,形成群體反抗。影片通過“若天地不容,我便扭轉乾坤”的豪情,試圖展現年輕人對舊秩序的顛覆4711。但部分觀眾認為,這種反抗因缺乏前作嚴密的因果邏輯,顯得較為浮于表面
我們看到大模型對我們的提問做出了詳細的回答,如何向大模型提問以獲得更好的回答是有技巧而不是隨意向大模型提問的,接下來學習這些提示詞技巧。
2、提示詞技巧
常用的有:直接提問、增加示例、分配角色、限定輸出風格和格式(撰寫論文、文章等),拆解復雜任務(數學計算等),使用分隔符號區分單元。
2.1 直接提問
直接提問方式,也稱為零樣本提示(Zero-Shot Prompting),即不給大語言模型提供案例,完全依靠 LLM 理解和處理能力完成任務。前文給的提示詞例子,都屬于直接提問。目前大部分開源和商用的大語言模型已經經過了大量的預訓練和指令調試,能夠很好的理解并響應用戶的直接提問。適用于目標明確、問題簡單、答案確定且唯一等場景。
直接提問時,可遵循以下原則:
● 簡潔:盡量用最簡短的方式表達問題。過于冗長的問題可能包含多余的信息,導致模型理解錯誤或答非所問。
● 具體:避免抽象的問題,確保問題是具體的,不含糊。
● 詳細上下文:如果問題涉及特定上下文或背景信息,要提供足夠的詳情以幫助模型理解,即使是直接提問也不例外。
● 避免歧義:如果一個詞或短語可能有多重含義,要么明確其含義,要么重新表述以消除歧義。
● 邏輯清晰:問題應邏輯連貫,避免出現邏輯上的混淆或矛盾,這樣才能促使模型提供有意義的回答。
為大語言模型提供如下不同的提示詞,得到的答案質量會有明顯差距。??
不好的提示詞 | 好的提示詞 |
提示詞: 蘋果好看嗎? | 提示詞: 這批紅色的蘋果水果外觀怎么樣,新鮮嗎 |
輸出: 不好意思,我不清楚你所指的“蘋果”具體指的是什么, 水果還是電子設備。 | 輸出: 新鮮。 |
然而,大語言模型給出的答案有時候也不是固定的,直接提問效果在很大程度上取決于所使用的模型的理解能力和泛化能力,它無法很好地處理復雜、模糊或多義性的問題,當需要較深入的背景知識或分析時,可能無法準確了解用戶的真正意圖。我們可以嘗試在提示詞中增加示例樣本、分配角色、提示寫作風格/輸出格式或構建思維鏈和思維樹拆解復雜任務等方式解決。
2.2?增加示例
在提示詞中提供少量(通常幾個或幾十個)示例,也稱為少樣本提示(Few-Shot?Prompting),以幫助模型更好地理解任務要求和期望輸出。比如:
-
讓?LLM?跟隨我們所要求的規范、格式、概念、文法、語氣進行輸出。
-
提供進一步推理的參考,比如讓大模型學會數學運算或按照示例方式進行邏輯推理。
以下示例中,我們分別在提示詞中增加示例和不增加示例,就會得到以下不
未增加示例 | 增加示例 |
提示詞: 任務:請根據以下電影評論,判斷其情感評價(正面、負面或中性)。 待分類評論:這部電影音樂動人,但劇情略顯平淡。 | 提示詞: 要求:請根據以下電影評論,判斷其情感評價(正面、負面或中性)。 示例1:這部電影劇情引人入勝,但特效炸裂。情感評價:正面 示例2:雖然這部電影劇情單調,但特效卻非常炸裂。情感評價:負面+正面 示例3:這部電影不好不壞。情感評價:中性 待分類評論:這部電影音樂動人,但劇情略顯平淡。 |
輸出: 情感評價:中性 | 輸出: 情感評價:正面+負面 解釋:評論中提到“音樂動人”屬于正面評價,表明了對電影音樂部分的喜愛和贊賞。然而,緊接著的“但劇情略顯平淡”則為負面評價,表達了對電影劇情的不滿或失望。因此,整體評價是正面和負面情感的混合。 |
在英文縮寫比較多的專業技術文檔翻譯場景,我們可以盡可能地為?LLM?提供一些縮寫的翻譯示例,然后再讓?LLM?完成后續的翻譯工作:
值得一提的是,這種方式比較適合翻譯量不大,且示例的數量可窮舉的場景,可以輕量、快速地完成翻譯工作。但是當需要成千上萬的專業術語詞條示例輔助翻譯的場景,這種方式就不夠了,也不夠方便,我們可以讓大語言模型接入專業的術語庫,來增強大語言模型的能力,也即檢索增強生成(Retrieval-Augmented?Generation),簡稱RAG。
示例的質量和數量會直接影響回答的結果,增加示例時可參考以下技巧:
-
精選代表性樣本:選擇具有代表性的示例,覆蓋任務的各種情況,同時避免使用可能引起模型混淆的極端或邊緣案例,確保模型能從有限的數據中學習到任務的核心特征。
-
保證示例的多樣性:盡可能覆蓋任務的各種角度和情境,確保模型能從有限的數據中學習到任務的核心特征。
-
使用相似的格式和結構:在所有示例中使用相似的提示格式和結構,使模型能夠清晰識別輸入與輸出的關系。
-
讓大語言模型生成示例:實踐時,我們還可以先讓?LLM?按照提示生成一些示例,再進行篩選或人工調整,以提高示例質量和針對性。
2.3?分配角色
我們賦予模型一個具體的角色或身份,如“作為經驗豐富的經濟師”,來引導模型在特定角色視角下生成回答。
分配角色適用以下場景:
-
需要專業知識或特定視角的問題解答。例如,模擬老師、醫生、律師等回答相關領域的問題。
-
模擬特定人物或角色的語言風格。例如,模仿某個著名人物(如歷史人物或文學角色)語言風格的文本時。
-
進行角色扮演游戲或創作。在創意寫作或角色扮演游戲中扮演指定的角色,與使用者進行互動。
-
在特定行業內進行決策模擬。例如,模擬一個管理咨詢師來分析商業案例或提供商業建議。
下面的例子中,讓大語言模型分別扮演酒店評論家和小學生,來執行“酒店評價”的任務,從而得到不同風格的答案。
未增加角色 | 加A角色 | 增加B角色 |
提示詞: 請對剛入住的酒店進行評價。 | 提示詞: 你是一名酒店評論家,請對剛入住的酒店進行評價。 | 提示詞: 你是一名剛上小學的學生,請對訓練營入住的酒店進行評價。 |
輸出: 剛入住的這家酒店給我留下了深刻的印象,整體體驗非常滿意。 | 輸出: 我對剛入住的這家酒店進行了全方位的考察與體驗,現就其各項服務與設施作出如下評價: 位置與周邊環境:該酒店位于城市中心地帶... 建筑與設計:酒店建筑風格獨特,融合了... 服務質量:酒店員工專業素養極高,從接待到... 餐飲設施:酒店內設有多家風格各異的餐廳... 休閑與健身設施:酒店配備完善的休閑與健身... 環保與社會責任:酒店在運營過程中展現出... 綜上所述,這家酒店憑借其優越的地理位置、獨具匠心的設計、卓越的服務質量、豐富的餐飲選擇、完善的休閑設施以及對環保與社會責任的積極踐行,為賓客打造了一處兼具舒適性、便利性與文化內涵的高品質下榻之 | 輸出: 嗨,我是剛上小學的小朋友,參加了這個訓練營,現在我要來分享一下我住的酒店怎么樣! 房間超酷!:哇哦,我的房間就像一個小城堡!... 好吃的食物:酒店的飯菜超級好吃!... 好玩的地方:酒店里有個大大的游戲室... 友好的叔叔阿姨:酒店的叔叔阿姨們都對我很好... 安全又干凈:酒店到處都很干凈,地板亮晶晶的... 總的來說,我非常喜歡這個訓練營入住的酒店,它像一個充滿樂趣的大樂園,讓我在學習之余還能盡情玩耍,享受到家一般的溫馨和舒適。如果下次還有訓練營,我一定還想再來這里住! |
分配角色引導模型生成符合特定情境和對話邏輯的內容,可遵循以下技巧:
-
明確角色身份與特性
-
確定角色的基本屬性,如年齡、性別、職業、性格、技能、價值觀等。
-
賦予角色相關領域的專業知識或特殊背景,如專家、學者、歷史人物、虛構角色等。
-
-
設定角色目標與動機
-
為角色設定對話的目標,如尋求信息、說服他人、解決問題、分享觀點等。
-
揭示角色的內在動機,如個人利益、道德信念、情感需求等,有助于塑造角色的真實性和深度。
-
-
設定角色語言風格:
-
根據角色性格、教育水平、文化背景等設定其語言習慣、用詞選擇、句式結構、口頭禪等。
-
規定角色在對話中的情緒狀態,如冷靜理智、激動憤怒、悲傷失落、幽默風趣等,影響其表達方式。
-
-
設定角色規則約束:規定角色在對話中的行為約束,如不得人身攻擊、保持禮貌尊重、遵守討論主題等。
-
動態調整角色設定:
-
隨著對話深入,適時調整角色設定以適應新的情境和話題,如角色態度轉變、關系演變、目標更新等。
-
向模型反饋角色表現,如偏離設定、缺乏個性、對話僵化等,及時修正角色設定并引導模型調整。
-
2.4?限定輸出風格/格式
大語言模型尤其善于撰寫論文、文章等內容,不過如果我們僅僅簡單地告訴大語言模型一些寬泛的提示,比如:
提示詞:寫一篇關于橋的文章
輸出:橋是一種用來跨越障礙的大型構造物,一般會指架設在江河湖海上,使車輛行人等能順利通行的構筑物。橋梁主要由橋跨結構、墩臺、基礎三大部分組成,橋跨結構也稱上部結構包括承重結構及橋面系,墩臺也叫下部結構包括橋墩、橋臺等,基礎主要是指樁基礎。
大語言模型有可能會生成枯燥、平淡、空洞的內容,這些內容往往與我們期望的結果有較大的出入。
我們可以在提示詞中增加“風格”的限定,比如當我們明確需要大語言模型幫我們寫一篇幽默的簡短小說,就可以嘗試將上面的提示詞改寫為如下形式:
提示詞:寫一篇關于橋的短篇小說,要求敘事風格詼諧幽默
輸出:【橋的另類日記】
在這個名為“平凡鎮”的小鎮上,有一座并不怎么平凡的橋,名叫“哈欠橋”。別誤會,它并不愛打哈欠,只是建成之日,鎮長在揭幕儀式上打了個大大的哈欠,從此這名字就像粘了強力膠,甩都甩不掉。
哈欠橋自述:“我今年102歲了,按照橋的年齡來說,正值壯年。每天看著小鎮的人來人往,我就跟個八卦中心似的,什么秘密都逃不過我的‘橋眼’。”......
為了更好的限定“風格”,準確引導模型寫出符合需求的內容,下面我們介紹一些推薦的技巧:
-
明確指出所需的內容類型:如“論文/散文/詩歌/新聞報道/劇本/日記”等。
-
用形容詞限定風格:如“嚴謹客觀”、“感性抒情”、“幽默詼諧”、“莊重典雅”等。
-
列舉風格(代表人物/作品)示例:如“仿照魯迅先生的筆觸描述社會現象”或“以J.K.羅琳的敘述風格撰寫一段奇幻冒險故事”。
-
設定語境與情感色彩:為模型設定故事背景、情感基調或角色視角,影響其語言表達和修辭選擇,從而形成特定風格。如“以一名二戰老兵的視角,深情回憶戰場經歷”。
-
規定語言與句式特點:要求使用特定詞匯、短語、成語、俚語、古語等,或強調長句、短句、排比、反問、比喻等修辭手法的運用,以契合特定風格。
2.5?拆解復雜任務
我們把一個復雜的任務,拆解成多個稍微簡單的任務,常用于數學計算,讓大語言模型分步來思考問題,稱為思維鏈(Chain-of-Thought?Prompting,?CoT)提示,這種方式可讓大語言模型像人類一樣逐步解釋或進行推理,從而極大地提升?LLM?的能力。與前面介紹的標準提示不同,該方法不僅尋求答案,還要求模型解釋其得出答案的步驟。
下圖展示了標準提示與思維鏈提示的對比。
標準提示 | 思維鏈提示 |
提示詞: 小明有20個蘋果,吃了兩個,又買了5個,小明現在一共有多少蘋果? | 提示詞: 小明有20個蘋果,吃了兩個,又買了5個,小明現在一共有多少蘋果,通過思維鏈CoT的方式來分析 |
輸出: 27 | 輸出: 小明現在一共有23個蘋果。 ? **思維鏈分析(CoT)**: ? 2. **消耗行為**: ? 3. **增量行為**: ? 4. **邏輯驗證**: ? **結論**:通過分步推導與雙向驗證,小明當前共有 23?個蘋果。 ? |
使用標準提示只給出了答案,而且答案明顯是錯誤的。而思維鏈提示會展開推理過程,通常通過思維鏈提示的方式會產生更為準確和可校驗的結果。
上面思維鏈提示中沒有給?LLM?提供問題解析示例,所以也可以稱為零樣本思維鏈(Zero-shot?CoT),相對應地在增加了示例后就變成了少樣本思維鏈(Few-shot?Cot)。
零樣本思維鏈?Zero-shot?CoT | 少樣本思維鏈?Few-shot?CoT |
提示詞: 小寶有三盒糖果,每盒糖果有10顆糖,小寶一共有多少顆糖果? 答案:給出逐步思考過程 | 提示詞: 問題:小寶有三盒糖果,每盒糖果有10顆糖,小寶一共有多少顆糖果? 答案:小寶有三盒糖果,每盒糖果有10顆,那么他一共有的糖果數量就是:?3盒?×?10顆/盒?=?30顆,小寶一共有30顆糖果。 問題:小明有20個蘋果,吃了2個蘋果,又買了5個蘋果,小明一共有多少顆蘋果? 答案:給出逐步思考過程 |
輸出: 小寶有三盒糖果,每盒糖果有10顆,那么他一共有的糖果數量就是:?3盒?×?10顆/盒?=?30顆 答案:小寶一共有30顆糖果。 | 輸出: 小明原本有20個蘋果,吃了2個,所以剩下: 20個?-?2個?=?18個 接著他又買了5個蘋果,那么他現在總共有: 18個?+?5個?=?23個 答案:小明一共有23個蘋果。 |
有時?LLM?通過零樣本思維鏈可能會得到錯誤的答案,可以通過增加示例的方式,即少樣本思維鏈,幫助?LLM?理解相關任務并正確執行,如下面的例子中,明顯在使用零樣本思維鏈來分析問題后還是獲得了錯誤的答案:
除了思維鏈,啟發?LLM?進行“思考”的實用方法還有提示鏈(Prompt?Chaining)。提示鏈通過多輪對話,引導?LLM?“思考”?方向,讓?LLM?從簡單任務開始,沿著設計好的“思考”方向逐步完成一個復雜推理。
提示鏈雖然相對思維鏈來說構建模式更加復雜,但模型表現更好,準確率更高。它非常適合邏輯復雜但能按照固定模式拆解的困難任務。
我們繼續通過一道數學題來實現提示鏈(Prompt?Chaining)引導:
又到了周日,小明像以往一樣去爺爺奶奶家玩,小明于早上八點整步行出發,已知小明每分鐘行走50米,走了12分鐘后,小明的父親發現小明忘記帶作業了,于是便騎車去追小明,已知小明的爸爸每分鐘騎行200米,等到追上小明后,爸爸決定騎車帶上小明,已知小明坐自行車的路程是走路路程的5倍,請問,小明和他爸爸幾點到爺爺家的呢?(小明8點36分到爺爺家)
第一輪輸入(數學題?+?第一個簡單問題):
#背景#
又到了周日,小明像以往一樣去爺爺奶奶家玩,小明于早上八點整步行出發,已知小明每分鐘行走50米,
走了12分鐘后,小明的父親發現小明忘記帶作業了,于是便騎車去追小明,已知小明的爸爸每分鐘騎行200米,
等到追上小明后,爸爸決定騎車帶上小明,已知小明坐自行車的路程是走路路程的5倍,#目的#
計算小明什么時候被他爸爸追上,追上時走了多遠?
Output?1(LLM?對第一個簡單問題的回答):
首先,我們計算小明在被父親追上之前走了多遠。
小明的速度是每分鐘50米,他已經走了12分鐘,因此他已經走過的距離是:
50?米/分鐘 × 12?分鐘 = 600?米
接下來,我們計算父親開始追趕小明時兩者的相對速度。父親的騎行速度是每分鐘200米,而小明繼續以每分鐘50米的速度步行。因此,父親相對于小明的速度是:
200?米/分鐘 ? 50?米/分鐘 = 150 米/分鐘
為了追上小明,父親需要覆蓋小明最初12分鐘所行走的600米距離。以150米/分鐘的相對速度,父親追上小明所需的時間是:
600?米 / 150?米/分鐘 = 4?分鐘
這意味著父親在開始追趕后的4分鐘追上了小明,從父親開始追趕算起,總共用了12分鐘(小明已經走了的時間)+ 4分鐘(父親追趕的時間)= 16分鐘。
現在,我們要計算小明被追上時共走了多遠。小明在最初的12分鐘內走了600米,從父親開始追趕的4分鐘里,小明又走了:
50?米/分鐘 × 4?分鐘 = 200?米
所以,小明被追上時總共走了:
600?米 + 200?米 = 800?米
綜上所述,小明在早上8點16分被他爸爸追上,此時他已經走了800米。
第二輪輸入(第二個問題,問題逐漸深入):
#目的#
計算小明還要坐多遠自行車才能到爺爺家?
Output?2(LLM?對第二個問題的回答):
根據題目,小明坐自行車的路程是他走路路程的5倍。小明被追上時已經走了800米,那么他坐自行車的路程將是:
800?米 × 5 = 4000?米
第三輪輸入(最后的復雜問題):
#目的#
小明什么時候到爺爺家?
Output?3(通過前面多個問題的引導得到了正確的結果):
要計算小明什么時候到爺爺家,我們需先確定小明坐上自行車后的行進時間。
小明坐自行車的總路程是4000米,他父親的騎行速度是每分鐘200米。因此,小明坐自行車所需的時間是:
4000? 米 / 200 ?米/分鐘 = 20 ?分鐘
小明從出發到被追上已經過去了16分鐘(即8:00出發,8:16被追上),加上坐自行車的20分鐘,總共用時為:
16?分鐘 + 20?分鐘 = 36?分鐘
所以,小明在早上8點出發后,將在36分鐘后到達爺爺家,即:
8:00?AM + 36 ?分鐘 = 8:36 ?AM
因此,小明將在上午8點36分到達爺爺家。
引導大模型“思考”的方法還有很多種,比如:思維樹(Tree?of?Thoughts,?ToT)、Boosting?of?Thoughts?等。我們不在這里一一展開。
2.6?使用分隔符號區分單元
我們在構建復雜的提示詞時,采用特定的分隔符來界定不同內容單元是極為關鍵的,這一做法顯著增強了?大模型對提示詞正確解析的能力。隨著任務復雜度的增加,合理利用分隔符越能提升大模型的表現能力。
分隔符的選擇應著眼于那些在自然語言文本中罕見的、獨特的字符組合,例如:###、===、>>>等。這些特殊符號序列并無固定規則,關鍵在于其辨識度高,確保模型能夠明確區分這些符號是作為內容區域的界限標識,而非文本中的普通標點或語法組成部分。
未使用分隔符 | 使用分隔符 | |
Prompt | 請簡短總結以下影評。 曾經意氣風發的張志強在生活的重壓下,中年“失速”偏離了原本的生活軌跡,一時意氣用事的決定,讓他瞬間從家人的“小驕傲”變成了社會的“邊角料”。然而,他未曾料到,這僅是他中年人生道路上的起點。接連不斷的變故如疾風驟雨般襲來,迫使他不得不重新面對自我。當生活的重擔真正壓肩,他選擇成為一名快遞員,從新的起點重新出發,穿梭于都市大街小巷的高志壘在路上結識了一眾志同道合的伙伴。在共度的時光里他深切的體會到了人間的冷暖真情,逐漸在這條充滿磨礪的“逆行道”中找回曾經丟失的勇氣與信念,重新定義人生新的方向 | 請簡短總結以下影評。 ### 曾經意氣風發的張志強在生活的重壓下,中年“失速”偏離了原本的生活軌跡,一時意氣用事的決定,讓他瞬間從家人的“小驕傲”變成了社會的“邊角料”。 ### 然而,他未曾料到,這僅是他中年人生道路上的起點。接連不斷的變故如疾風驟雨般襲來,迫使他不得不重新面對自我。 當生活的重擔真正壓肩,他選擇成為一名快遞員,從新的起點重新出發,穿梭于都市大街小巷的高志壘在路上結識了一眾志同道合的伙伴。 ### 在共度的時光里他深切的體會到了人間的冷暖真情,逐漸在這條充滿磨礪的“逆行道”中找回曾經丟失的勇氣與信念,重新定義人生新的方向。 ### |
輸出 | 電影講述了一個中年危機故事,主角張志強因生活壓力偏離正常生活軌道,經歷一系列挑戰后,他成為一名快遞員,在新朋友的幫助下重拾勇氣與信念,找到了生活的新方向。影片展現了逆境中的成長與自我救贖。 | 主人公張志強中年遭遇生活困境,一次沖動的決定使他的社會地位驟降。 隨后,面對重重挑戰,他擔任快遞員重新起步,在此過程中與同行建立深厚情誼,并在磨難中找回勇氣和信念。 最終,在艱難和挑戰中,為自己的人生找到了新的意義和方向。 |
你可以在輸出中發現明顯差別,在使用了分隔符的輸出中,大模型不僅理解了三段話的邏輯關系,還正確識別了分隔符,并根據分隔符的段落生成了三段強相關的總結。