怎樣才能寫好提示詞?
四個實用方法:講清楚任務、補充背景、要求檢查,再把大任務拆小。
「把 LLM 當成一個剛入職、還不熟悉工作的助理。你要先把任務講清楚,再請它交功課。」
為甚麼要學寫提示詞?
大型語言模型(LLM)可以寫作、整理資料、分類內容,也能協助處理不少需要推理的工作。但如果指令太含糊,答案通常也會跟著含糊。
我沒有能力從頭訓練自己的 LLM,所以更實際的做法,是持續了解不同模型的特性,並學習怎樣把工作交代清楚。
之前放假時,我看了台大李宏毅老師的課堂錄影,重新整理了一些提示詞寫作方法。以下是我覺得最通用的四個技巧。
技巧一:把指令講清楚
「Let’s think about it step by step」這類句子曾經被稱為神奇咒語,因為它們有時能提醒模型多花一點力氣處理問題。但它們不是魔法,效果會因模型和任務而異。
比較可靠的做法,是直接說明你希望模型完成甚麼。你可以請它列出假設、比較選項,或在交答案前檢查指定內容。
技巧二:提供需要的背景
把 LLM 當成一個剛加入團隊、還不了解專案的助理。交代目標、限制、讀者、輸入格式,以及怎樣才算是一個好答案。
如果格式很重要,也可以提供一兩個例子。不過例子太長或本身不清楚,反而可能令模型學錯,所以最好只放最有代表性的例子。
技巧三:要求它做一次檢查
模型很容易寫出看似合理、其實有錯的內容。遇到準確性重要的任務,可以加一個獨立的檢查步驟。
例如,請它列出沒有來源支持的說法,逐項對照提供的資料,或者完成一張檢查清單。這不是絕對保證,但至少能讓錯誤比較容易被發現。
技巧四:把大任務拆小
複雜工作通常不適合塞進一個超長提示詞。你可以把它拆成搜尋、整理、分析、撰寫和校對幾個步驟,為每一步準備一個清楚的 prompt。
這種做法很像設計 data science pipeline。每個階段都比較容易理解、測試和替換,出問題時也比較容易知道是哪一段出了錯。
一個實用的提示詞框架
處理中型任務時,我通常會交代以下幾件事:
- 目標: 希望模型產出甚麼?
- 背景: 模型需要知道哪些資料?
- 限制: 有哪些規則必須遵守?
- 格式: 最後答案要怎樣呈現?
- 檢查: 完成前要核對甚麼?
如果答案仍然不穩定,可以再把任務拆細,或者補上一個簡短例子。重點不在於背誦某句咒語,而是讓工作內容變得具體。
小結
以上方法不只適用於專業工程師。即使只是透過聊天平台使用 LLM,也可以先補充背景、講清楚輸出格式、檢查重要結果,再把大型任務拆成幾個小步驟。
Retrieval-Augmented Generation(RAG)和 multi-agent system 是更進階的做法,會在之後的文章再整理。
延伸閱讀
這篇筆記參考了台大李宏毅老師的《生成式 AI 導論 2024》: