設計提示的一般建議(General Tips for Designing Prompts)
在與大型語言模型(LLMs)互動時,提示(Prompt)的設計品質將直接影響生成結果的準確性與實用性。根據 Prompting Guide 所指出的實務技巧,有效的提示工程不僅是語句上的編排,更是一種策略性的思考方式。使用者應明確說明任務角色、指定格式,並透過範例、限制條件與逐步引導等技巧,來提升模型回應的精確性與一致性。
本篇目標
- 從簡單開始(Start Simple)
- 關於指令(The Instruction)
- 明確性(Specificity)
- 避免模糊不清(Avoid Impreciseness)
- 要做或不要做?(To do or not to do?)
從簡單開始(Start Simple)
在開始設計提示時,請記住:
這是一個需要多次實驗與迭代的過程,無法一步到位。
你可以從最簡單的提示開始,
逐步加入更多元素與上下文,來優化模型回應。
反覆調整提示是提示工程中不可或缺的步驟。
當你閱讀本指南時,會看到許多例子證明:
明確、簡潔與具體的提示通常能帶來更好的效果。
任務太大?拆解它!
如果你的任務很複雜,包含多個子任務,
你可以將大任務拆解成幾個簡單子任務,
再逐步整合,讓提示設計不會一開始就過於複雜。
關於指令(The Instruction)
你可以利用簡單的指令語句,設計出能完成多種任務的提示。
常見的指令包含:
Write(寫作)Classify(分類)Summarize(摘要)Translate(翻譯)Order(排序)
多方實驗才能找到最佳效果
請記得,你需要持續嘗試不同指令與關鍵字、上下文與輸入資料,
才能找到最適合你任務的提示方式。
通常來說,上下文越貼近任務需求、越具體,效果就越好。
我們會在後續章節說明更多關於「加入上下文」與「控制模型隨機性」的技巧。
結構建議
許多經驗法則建議:
- 將指令放在提示的最前面
- 使用明確的分隔線,例如:
Prompt
### Instruction ###
Translate the text below to Spanish:
Text: "hello!"
Output
¡Hola!
明確性(Specificity)
在設計提示時,請務必明確描述任務與指令,讓模型清楚知道你希望它執行的操作。
為什麼要明確?
- 提示越具體、越有描述性,模型的輸出結果通常就越精準。
- 當你有特定的輸出格式或風格需求時,具體描述尤其重要。
- 並沒有某些「神奇關鍵字」能讓模型表現更好,良好的格式與描述才是關鍵。
使用範例是最有效的方式之一
在提示中加入範例(few-shot)是一個非常有效的方法,
能幫助模型了解你希望產出的格式與風格,進而提高結果的一致性與可控性。
提示長度也是一項考量
設計提示時,也要考慮整體長度,因為所有大型語言模型都有 token 限制。
請避免加入過多無關緊要的細節,
過度冗長的提示反而可能降低準確性或超出模型處理範圍。
精簡但不空泛
請確保你提供的資訊是:
- 與任務直接相關的
- 有助於模型產出正確回應的
- 不含多餘贅述或模糊語意的
這部分需要透過實驗來反覆調整,我們強烈建議持續嘗試與迭代,
才能針對你的應用找到最適合的提示格式與細節層級。
範例:從一段文字中提取特定資訊
接下來,我們來看看一個簡單的提示,
其目的是從文字中提取指定資訊。
Prompt
Extract the name of places in the following text.
Desired format:
Place: <comma_separated_list_of_places>
Input: "Although these developments are encouraging to researchers, much is still a mystery. “We often have a black box between the brain and the effect we see in the periphery,” says Henrique Veiga-Fernandes, a neuroimmunologist at the Champalimaud Centre for the Unknown in Lisbon. “If we want to use it in the therapeutic context, we actually need to understand the mechanism.“"
Output
Place: Champalimaud Centre for the Unknown, Lisbon
避免模糊不清(Avoid Impreciseness)
在前面我們提到,要盡可能具體與格式良好,
但有時也容易陷入「過度聰明」設計提示的陷阱,導致描述反而變得模糊或不夠清楚。
建議做法:
與其繞圈或模糊地描述你想要的結果,
不如採取直接、具體的語言來下達任務指令。
這與人際溝通的道理相似:
越直接明白的訊息,越容易被正確理解與執行。
不夠明確的提示範例:
Explain the concept prompt engineering.
Keep the explanation short, only a few sentences, and don't be too descriptive.
這個提示的問題在於:
- 到底是幾句?(2?5?8?)
- 「不要太描述性」是什麼意思?風格上有指引嗎?
- 模型雖然可能產出不錯的回答,但這提示缺乏明確性與風格定位。
改進後的範例(更具體與有效):
Use 2-3 sentences to explain the concept of prompt engineering to a high school student.
這個提示就具備了良好特性:
- 明確指定輸出長度(2–3 句)
- 指定對象(高中生) → 可讓模型調整語言難度與用詞風格
- 任務描述清楚,風格與長度都具體
重點提醒:
當你在設計提示時,務必問自己:
「如果我把這句話說給人類聽,對方會完全明白我要什麼嗎?」
如果答案是否定的,那麼對 LLM 而言,它理解的可能更有限。
要做或不要做?(To do or not to do?)
在設計提示時,另一個常見的建議是:
避免告訴模型「不要做什麼」;應該明確說「要做什麼」。
這麼做的好處是能促使提示更具體明確,讓模型專注在能產出良好回應的細節上。
範例說明
以下是一個失敗的例子,說明當提示聚焦在「不要做什麼」時,模型可能仍然違規行為的原因。
Prompt(錯誤提示)
The following is an agent that recommends movies to a customer.
DO NOT ASK FOR INTERESTS. DO NOT ASK FOR PERSONAL INFORMATION.
Customer: Please recommend a movie based on my interests.
Agent:
Output(錯誤提示)
Sure, I can recommend a movie based on your interests.
What kind of movie would you like to watch? Do you prefer action, comedy, romance, or something else?
更好的提示設計(Better Prompt Design)
為了讓模型遵守不提問用戶偏好或個人資訊的規範,
你可以用更明確、正向的方式描述「該做什麼」。
Prompt
The following is an agent that recommends movies to a customer. The agent is responsible to recommend a movie from the top global trending movies. It should refrain from asking users for their preferences and avoid asking for personal information. If the agent doesn't have a movie to recommend, it should respond "Sorry, couldn't find a movie to recommend today.".
Customer: Please recommend a movie based on my interests.
Agent:
Output
Sorry, I don't have any information about your interests. However, here's a list of the top global trending movies right now: [list of movies]. I hope you find something you like!
為什麼這個提示更好?
- 明確說明「模型該做什麼」而非「不該做什麼」
- 指定資料來源(如全球熱門電影清單)
- 定義無資料時的回應格式(fallback response)
- 避免模型主動詢問使用者偏好,符合指令要求
References
上一篇:介紹 - 提示語組成要素
下一篇:介紹 - 提示語範例