概述
提示詞(Prompt)的質量將直接影響模型生成結果的質量,所以精心設計一個讓大模型能夠理解并有效回復的提示詞是至關重要的。本文內容自論文中獲取:https://arxiv.org/pdf/2312.16171 介紹了5類共計26條提示詞書寫原則。
書寫原則
類別 | 原則 | 備注 |
---|
快速結構和清晰度 | - 在提示中融入目標受眾。比如:做出解釋讓5歲的小朋友能夠理解
- 使用肯定指令,如“做”,避免負面語言,如“不要”。
- 使用引導詞,例如寫“一步一步思考。”
- 使用輸出預熱器,即通過以預期響應的開頭結束提示來結束您的提示。
- 使用分隔符。用于區分不同的部分
- 格式化提示時,請從“###Instruction###”開始,然后根據需要添加“###Example###”或“###Question###”。隨后,呈現內容。使用一個或多個換行符將說明、示例、問題、上下文和輸入數據分開。
| 筆者個人實踐體感,當模型存在幻覺高頻生成不合預期的固定內容時,使用明確的不要生成xxxx提示詞來避免內容生成還是十分有效的 |
具體性和信息性 | - 提示詞中提供示例供模型參考(使用少量提示)
- 當您需要澄清或更深入地了解某個主題、想法或任何信息時,請使用以下提示:
- 解釋[插入特定主題]用簡單的術語。
- 像我一樣解釋給我,就像我只有 11 歲。
- 向我解釋像初學者一樣[領域]。
- “用簡單英語寫[文章/文本/段落],就像你向 5 歲的孩子解釋一樣。”
- 在您的提示中加入以下短語:“確保你的答案是無偏見的,并且不依賴于刻板印象。”
- 要編寫與提供的樣本相似的任何文本,請包括具體的指示:
- “使用所提供的段落[/標題/文本/文章/答案]中的相同語言。”
- 當您想要使用特定單詞、短語或句子啟動或繼續文本時,請使用提供的提示結構:
- 我為您提供開頭[歌詞/故事/段落/文章…]:[插入歌詞/詞語/句子]。按照提供的文字完成它。保持流暢一致。
- 清楚地陳述模型的要求,以便模型遵循這些要求生成內容,形式為關鍵字、規定、提示或指導。
- 為了詢問特定的主題或想法并測試您的理解程度,您可以使用以下短語 [16] :
- “教我[定理/主題/規則名稱]并在結尾包含一個測試,在我回答后告訴我我的答案是否正確,而無需事先提供答案。”
- 要編寫詳細的文章/文本/段落/文章或任何類型的文本:
- “為我詳細撰寫關于[主題]的[文章/文本/段落],并添加所有必要的信息。”
| 筆者個人實踐體感,提示詞中提供輸入輸出的例子,對輸出結果的準確率有較大影響 |
用戶交互和參與 | - 允許模型通過問您問題獲取精確的細節和需求,直到他有足夠的信息來提供所需的輸出。
- 要編寫詳細的文章/文本/段落/文章或任何類型的文本:
- “為我詳細撰寫關于[主題]的[文章/文本/段落],并添加所有必要的信息。”
| |
內容和語言風格 | - 糾正/更改特定文本而不改變其樣式:“嘗試修改用戶發送的每個段落。你應該只改進用戶的語法和詞匯,并確保聽起來自然。你應該保持原始的寫作風格,確保正式的段落仍然是正式的。”
- 使用給模型定義明確目標的話術,比如:“你的任務是”和“你必須。”
- 給模型以懲治類型的壓力話術,比如:“你會受到懲罰。”
- 分配角色給語言模型。比如:你是一個客服、是一個數學家。。。
- 在提示中使用短語“回答自然語言形式的問題”。不需要對 LLM 有禮貌,因此沒有必要添加諸如“請”,“如果你介意的話”,“謝謝”,“我想”,等短語,直接進入正題。
- 在一個提示內重復一個特定的單詞或短語多次。
- 添加激勵性的提示比如:"I’m going to tip $xxx for a better solution!” 為了獲取更好的方案我給你xx美元小費
| 對模型的提示詞無需敬詞,都是廢話 |
復雜的任務和編碼提示 | - 將復雜任務分解成一系列更簡單的提示,在互動對話中進行。
- 當你有一個復雜的編碼提示可能分布在不同的文件中時:
- “從現在開始,每當您生成跨多個文件的代碼時,都會生成一個可以運行的[編程語言]腳本,自動創建指定的文件或將現有文件更改為插入生成的代碼。[你的問題]。”
- 結合鏈式思維 (Cot) 和少數提示。
| 交互式的分步生成,一個個子問題拆解最終得到的結果更為準確。也可以將思考的節點作為提示詞提供給模型構成思維鏈 |