JOVANA
Explore Library Glossary Getting Started Three Levels Fields How it works Mission
Join the mission
All guides

你的第一個提示:有意識地提問

提示究竟是什麼、為什麼清楚的指令勝過模糊的指令,以及如何在沒有任何範例的情況下得到有用的回答。

提示就是你交給模型的那段文字

當你使用大型語言模型(large language model)時,你輸入的一切就是提示(prompt)——模型在回覆之前先讀到的輸入。提示工程就是把這段文字寫好的技藝。這裡沒有隱藏的控制面板:文字本身就是控制鈕。一個模型在某種寫法下看似聰明、換個寫法卻一問三不知,通常是因為它看到了兩個不同的提示,而不是有兩種心情。

在模型回应之前,你递给它的提示文本会先被切分成词元(token),映射为 id,再转换成模型真正读取的嵌入向量。

流程图:文本被切分为词元,每个词元映射为整数 id,再转换为嵌入向量。

在底層,模型永遠只做一件事——根據目前為止的所有內容,預測下一個詞元(next-token prediction,下一個詞元預測)。你的提示就是在鋪設這段「接龍」。所以提示真正的問題是:什麼樣的脈絡,能讓最有用的接續成為最有可能出現的接續?

P(x_t \mid x_1,\dots,x_{t-1}) = \operatorname{softmax}\!\left(W\,h_{t-1}\right)

模型所做的全部计算:在你目前提示的全部内容条件下,为每个可能的下一个词元给出一个概率——你的提示决定了这段续写。

零樣本:不給範例就直接問

最簡單的提示只給一句指令、完全不給範例。這就是零樣本提示(zero-shot prompting)——你倚賴模型在訓練時已經學到的東西,去完成一個你從未明確示範過的任務。現代經過指令微調的模型,在日常任務上的零樣本表現出奇地好:幫我摘要這段、翻譯那段、把這則評論分類。

Classify the sentiment of this review as positive, negative, or neutral.
Respond with only one word.

Review: "The battery lasts forever, but the screen scratches easily."
一個零樣本分類提示:任務清楚、輸出格式清楚、沒有範例。

注意這個提示已經有兩個做得好的地方:它列出了允許的標籤,也限制了輸出(「只用一個字」)。當任務常見、而且你把「正確答案長什麼樣」講得一清二楚時,零樣本的效果最好。

把話講清楚就是整場比賽

指令清晰度(instruction clarity)對結果的幫助,勝過任何花俏的技巧。模型讀不到你的心思,只能讀你的文字。模糊的要求等於邀請模型去猜你的本意——它會猜得很合理,卻不一定猜得對。

  1. 把任務寫成明確的指令,而不是暗示。「把這段改寫成淺白的中文」勝過「這太複雜了」。
  2. 說明讀者是誰、答案該多長。「給初學者看的三句話」一口氣消除了十幾個猜測。
  3. 指定輸出的形狀——清單、JSON、單一標籤、表格——這樣你就不必再手動重排格式。
  4. 如果光用文字仍嫌含糊,就補上一個你想要的形式的範例。(下一篇會更深入談範例。)

角色與結構:系統文字與使用者文字

對話模型會把提示拆成不同角色。系統(system)訊息設定持久的行為——語氣、人設、硬性規則——而使用者(user)訊息承載具體的請求。把長期有效的指示放進系統提示(system prompt),能讓它們在整場對話中保持穩定,而不必每一輪都重講一次。

在單一訊息內部,結構同樣重要。善用分隔符與格式(delimiters and formatting)——標題、三引號、類似 XML 的標籤——把你的指令和模型該處理的資料分開。這能避免模型把「該遵守的文字」和「該處理的文字」混為一談。

System: You are a careful editor. Fix grammar only; never change meaning.

User:
Instruction: Correct the grammar of the text between the triple quotes.
\"\"\"
Me and him goes to the market every Sundays.
\"\"\"
角色加上分隔符:規則放在系統訊息裡;資料則在使用者訊息中用標記圍起來。

為什麼同一個意思、寫兩次、結果卻可能不同

很早你就會注意到,兩個你認為等價的提示,可能產生不同的答案。這就是提示敏感度(prompt sensitivity):措辭、順序或格式上的小改動,都可能改變輸出。這不是一個你罵兩句就能消失的臭蟲——它本來就源自 next-token prediction 的運作方式。務實的對策是:把你的提示當成一個需要測試與打磨的東西,而不是寫一次就永遠信任的東西。

点击一个词,看看模型在关注什么——正因为输出取决于这些逐词的注意力权重,措辞或顺序的微小改动就可能改变答案。

交互式自注意力:选择一个词元会高亮它所依赖的其他词元。