一、Prompt(提示詞)
Prompt(提示詞)是給AI模型交互文本片段,用于指導模型生成符合預期輸出結果,提示詞的目的是為模型提供一個上下文的任務,以便模型能夠更準確地理解用戶的意圖,并生成相關的回應。
二、Prompt(提示詞核心)
-
具體性:
- 差:“講一下歷史”
- 好:“用300字簡要概括第二次世界大戰的主要起因,列出5個關鍵因素”
-
示例和格式:
-
差:“說說節假日分別有哪些?”
-
好:"說說2025年中國節假日有哪些?以表格形式展示(包括序號、開始日期、結束日期、節假名稱、周幾范圍,總天數)
例如:
序號| 開始日期 | 結束日期| 節假名稱| 周幾范圍 | 總天數
1 | 2025-04-04|2025-04-07|清明節|周四~周日|3天"
-
-
避免不精確:
-
差:“有5個用戶,分別是A\B\C\D\E; 現在進行角色扮演,請猜出那個是水果。”
-
好:"有5個用戶,分別是A\B\C\D\E; 現在進行角色扮演,根據5個用戶每一輪對話進行排除,
? 其中分別代表A:蘋果; B-西瓜; C-橘子;D-冬瓜;E-葡萄。
? 請模擬至少4輪對話進行依次排除,猜出誰非正確水果。"
-
-
做還是不做:
- 差:“現在由一組數依次是1~100。”
- 好:“現在由一組數依次是1~100。分別求基數和,偶數和,基數積,偶數積,說出具體分析步驟,結果以表格形式展示。”
-
結構化表達:
- 差:“現在有2個用戶分別是A和B,他具有很多屬性; 年齡age, 性別sex, 身高height,體重weigth,角色role等,A用戶年齡18,性別男,身高168cm,體重65kg,角色學生,B用戶年齡38,性別男,身高178cm,體重75kg,角色教師”
- 好:“現在有2個用戶分別是A和B,他具有很多屬性; 年齡age, 性別sex, 身高height,體重weigth,角色role等,A用戶年齡18,性別男,身高168cm,體重65kg,角色學生,B用戶年齡38,性別男,身高178cm,體重75kg,角色教師。請根據以上描述返回JSON數據結構,無需展示分析步驟,直接要結果。”
-
上下文支持:
- 差:“寫首詩”
- 好:“以秋天黃昏為背景,寫一首8行的現代詩,表達時光流逝的感傷”
三、Prompt(提示詞場景)
-
通用技巧
提示詞是與大模型溝通語言,在提問最好盡量滿足以下場景,讓大模型更好理解你的意圖。
- 具體性。
- 示例和格式。
- 避免不精確。
- 做還是不做?
-
Zero-Short(零樣本)
零樣本提示不提供示例,直接向模型提出問題或任務。適用于模型已熟悉的任務或問題明確的場景。這對于一些簡單的、明確的問題,非常高效。但對于一些復雜的問題,效果就不好了。- 可分析情感、歸類總結、結構化輸出、步驟實施等等。
-
Few-Short(少量樣本)
? 少樣本提示可以作為一種技術,以啟用上下文學習,我們在提示中提供演示以引導模型實現更好的性能。
少樣本提示通過提供示例,讓模型更清楚任務要求。適用于復雜或自定義任務。
- 可語言翻譯、綜合計算、邏輯推理等等。
-
COT(Chain-of-Thought, 思維鏈)
? 思維鏈是一種鏈式思維,他不僅僅限于單步縱向思維,而是實現更復雜的推理能力,解決復雜問題。
- Zero-Short-COT(零樣本COT)。
- Few-Short-COT(少量樣本COT)。
標準的prompt 思維鏈prompt Q:羅杰有5個網球。他又買了2罐網球。每個罐子有3個網球。他現在有多少個網球? Q:羅杰有5個網球。他又買了2罐網球。每個罐子有3個網球。他現在有多少個網球? A:答案是11個 A:羅杰一開始有5個球。2罐3個網球,等于6個網球。5 + 6 = 11。答案是11。 Q:自助餐廳有23個蘋果。如果他們用20做午餐,又買了6個,他們有多少個蘋果? Q:自助餐廳有23個蘋果。如果他們用20做午餐,又買了6個,他們有多少個蘋果? A:答案是27個 A:自助餐廳最初有23個蘋果。他們使用20個做午飯。23 - 20 = 3。他們又買了6個蘋果,得到3+ 6= 9。答案是9個。 -
COT-SC(Chain-of-Thought Self-Consistency, 思維鏈自一致性)
大模型通過思維鏈方式得到結果有所偏離(產生幻覺),需多次論證后才能保證自一致性,自一致性性(自洽性)是指模型在生成文本時,能夠保持內部邏輯的一致性,避免自相矛盾或與上下文不符的回答。
-
TOT(Tree-of-thought, 思維樹)
? 對于需要探索或預判戰略的復雜任務來說,傳統或簡單的提示技巧是不夠的。思維樹基于思維鏈提示進行了總結,引導語言模型探索把思維作為中間步驟來解決通用問題。
- 分層次思考。
- 多路徑探索。
- 動態調整。
四、Prompt Engineering(提示工程)
提示工程(Prompt Engineering) 也可以被稱為「指令工程」,提示工程的核心思想是,通過精心設計的提示Prompt,可以顯著提高模型的性能和輸出質量。它是與AI交互的核心技能之一,尤其在自然語言處理NLP領域至關重要。
- 貌似簡單,但其實意義非凡。(提問的智慧)
- Prompt 是 AGI 時代的「編程語言」
- 提示工程師是 AGI 時代的「程序員」
如果要學好提示工程,那么其實就是要知道如何對咱們的Prompt進行調優,與大模型進行更好的交互。
- 提示工程(Prompt Engineering):
直接使用預訓練的模型,并通過設計巧妙的提示(prompt)來引導模型生成所需的輸出。 - RAG(Retrieval Augmented Generation, RAG):
模型通過引入外部知識來增強其生成能力。這可能是通過檢索相關文本、知識圖譜或其他數據源來實現的。 - 微調(Fine-tuning):
已經預訓練好的模型會在特定領域的數據上進行優化也就是通過領域特定的數據來精煉預訓練模型,以提高其在該領域的性能。 - 預訓練(Pre-training):
金字塔的頂部是“預訓練”階段,這通常意味著從頭開始訓練一個機器學習模型。這一階段使用大量的數據進行訓練,以建立一個基本的、能夠處理多種任務的模型。
五、提示工程基于那些組成。
? Prompt Engineering工程是什么? 一切在提示之前的內容
這張概念圖以直觀的方式揭示了提示工程(Prompt Engineering)的核心要素及其運作流程。圖中清晰地展示了在給定提示之前,涉及的一系列關鍵步驟和組件,這些共同構成了提示工程的整體框架。
首先,圖的左側列出了幾個重要的組成部分:
-
數據庫和其他信息存儲(Databases & Other InfoStores)
這是信息的源頭,包含了各種相關的數據庫和知識庫,它們為AI模型生成輸出或輸入提供了豐富的素材。
-
工作流程(Workflows)
輸入工作流程描述了如何將人類的想法和意圖轉化為機器可理解的指令。這可能涉及多個步驟,如數據預處理、特征提取、提示設計等。在Prompt中扮演著指導者的角色,它用簡單的語句清晰地規劃出大模型處理任務的整體流程。這個流程通常包括歡迎用戶、獲取用戶輸入、處理用戶輸入、輸出結果、結束對話等關鍵步驟。通過這樣的流程設計,我們可以確保大模型在與用戶的交互過程中,能夠按照預定的邏輯和順序進行工作,從而提高交互的效率和準確性。Workflow的設計還可以根據具體的應用場景和需求進行定制和優化。例如,在某些復雜的場景中,我們可能需要添加更多的處理步驟或條件判斷來確保大模型能夠正確地理解和處理用戶的輸入。而在一些簡單的場景中,我們則可以簡化Workflow的設計,以提高交互的速度和便捷性。
-
提示庫(Prompt Libraries)
AI提示庫是存儲各種經過驗證和優化的提示的集合。這些提示可以被重復使用或稍作修改以適應不同的任務或需求。
-
提示詞設計指南(Prompt Recipe)
提示配方是指創建有效提示的一系列步驟或指南。它可能包括選擇適當的語言風格、確定提示的結構、添加必要的上下文信息等。
-
角色(Role)
提示角色指的是在提示中扮演的特定角色或身份。例如,提示可能要求AI模型以專家的身份回答問題,或以某種特定的風格(如正式、幽默等)進行寫作。
-
任務指令(Task Instructions)
任務指令是明確告訴AI模型需要執行的具體任務。這些指令應該清晰、具體,以便AI模型能夠準確理解并執行。
-
上下文(Context)
上下文是指與提示相關的信息或背景知識。提供足夠的上下文可以幫助AI模型更好地理解提示,并生成更相關、更準確的輸出。
-
-
生成性提示(Prompting)
在生成式AI的應用中,可以通過設計巧妙的提示詞,讓模型生成符合特定場景、風格或主題的文本。 通過調整提示的內容和結構,可以實現對模型輸出的精細控制,從而滿足不同的應用場景和需求。