主題: 學習筆記

什麼是 Prompt Engineering?從一句問題到能檢查的任務

Frontend Masters《Practical Prompt Engineering》入門筆記:從 LLM 的生成方式理解提示工程,用 JavaScript closure 範例整理任務、背景、輸出要求與驗證。

最近開始上 Frontend Masters 的《Practical Prompt Engineering》。第一份筆記先處理一個問題:當我們說自己在做 prompt engineering,究竟在調整什麼?

Prompt Engineering(提示工程)是設計、測試與調整模型輸入的過程,目的是讓大型語言模型更穩定地完成特定任務。 提示可以包含指令、背景資料、參考範例,以及對輸出內容與格式的要求。Hugging Face 的入門說明也把明確交代任務與預期結果,列為提示設計的基本做法。

這篇先停在定義與一個自編的前端學習情境。課程的 LLM 基礎觀念會用原始論文與官方文件補充;文中的提示對照尚未執行模型測試,也沒有量測哪個版本比較準確。

先把任務與可驗收條件列清楚,提示才有明確方向。 · 來源:GIPHY

Prompt 包含哪些資訊?

平常在聊天介面輸入的問題,就是一種 prompt。當任務更具體時,輸入也可能包含一段要整理的文件、一份程式碼,或一個想要模仿的輸出範例。

例如「幫我解釋 closure」已經交代主題,卻沒有交代讀者懂多少 JavaScript、需要什麼範例,以及回答應該深入到哪裡。模型仍然可以作答,只是它採取的說明方式,可能和我需要的不同。

我會先把提示裡的資訊分成幾個實際問題:要做什麼?有哪些必要背景?結果要怎麼呈現?這些資訊需要多少,就寫多少;短問題也可能已經足夠,不必每次都套用完整模板。

為什麼改變提示會影響回答?

課程用「預測下一個 token」介紹 LLM。對常見的自回歸文字模型來說,模型會根據目前可用的輸入與已生成內容,計算下一個 token 的機率,再依解碼策略接續生成。Token 是模型處理文字的單位,不一定對應一個完整單字。Transformer 原論文第 3 節說明了逐步生成並使用先前輸出的方式;Hugging Face 的生成策略文件則區分了直接選取最高機率 token 與抽樣等做法。

放回提示設計:當我補上「讀者剛學會函式」或「請提供一個計數器範例」,這些內容會成為模型生成時可用的條件。因此,回答有機會更貼近讀者與用途;這仍需要實際檢查,不能只憑提示看起來完整就判定有效。

課程提到的 2017 年論文〈Attention Is All You Need〉,提出以注意力機制為核心的 Transformer 架構,改善平行處理能力與長距離關聯的學習。注意力機制在這篇論文之前就已存在;這裡先保留它與語言模型發展的關係,不展開架構細節。原始論文

用 closure 範例,把需要的回答寫清楚

最初的提示可以很短:

請解釋 JavaScript 的 closure。

如果我的目標是讓剛學會函式的人,看懂一個保留狀態的例子,可以改成:

請用台灣繁體中文,向剛學會 JavaScript 函式的人解釋 closure。

請依照以下順序回答:
1. 先用兩句話說明核心概念,必要術語請一併解釋。
2. 提供一個純 JavaScript 的計數器範例。
3. 示範連續呼叫計數器三次,列出預期輸出。
4. 說明外層函式結束後,內層函式為什麼仍能存取 count。

範例請能直接在瀏覽器 Console 執行。

第二個版本把原本留給模型決定的幾件事寫了出來:

提示裡的資訊 這個例子的選擇 方便檢查什麼?
任務 解釋 closure 回答有沒有處理指定概念
讀者背景 剛學會 JavaScript 函式 是否解釋了新出現的術語
語言 台灣繁體中文 用語與閱讀需求是否相符
範例要求 純 JavaScript 計數器、連續呼叫三次 程式與輸出能否對照
執行環境 瀏覽器 Console 是否引入不必要的框架或工具

這個對照能直接看出的差別,是第二個版本有更多可檢查的要求。它是否讓某個模型回答得更好,仍需要把兩個版本拿去測試。這份筆記沒有放入假想的模型回答,也不把提示本身當成實驗結果。

寫完提示後,逐項確認輸出是否符合要求。 · 來源:GIPHY

「工程」包含測試與修正

寫好第一版提示後,還需要知道怎麼判斷回答。以這個 closure 情境來說,我會先留下三項完成條件:程式能直接執行、三次輸出與程式一致,以及解釋能交代內層函式保留對外層綁定的存取。

接著才有辦法進行一輪有根據的修改:

  1. 保存提示版本、模型名稱、可取得的版本資訊與生成設定,方便比較。
  2. 取得回答,逐項對照完成條件;程式碼要實際執行。
  3. 記下具體缺口,例如範例可跑,但沒有解釋 count 的作用域。
  4. 根據缺口調整提示,再用原案例與相近的新案例檢查。

這份檢查方式是針對本文例子設計的,尚未實際執行。它呼應 Anthropic 的提示工程概覽:開始調整提示前,先建立成功條件、檢查方式與一份初稿。

如果之後比較兩個版本,也要留意輸出的變動。同一個提示在採用抽樣時,可能產生不同回答;一次成功只能說明那次結果符合要求。這也是保存多次結果與測試案例的用途。生成策略說明

清楚的提示仍有能力與資訊限制

提示能交代需求,模型能否完成,還受到能力與可用資料的影響。要求它「務必正確」,沒有提供可以核對的證據;請它解釋某個剛更新的 API,也不能讓它自動取得新版文件。

遇到近期資訊,我會附上相關文件,或使用能取得外部資料的搜尋工具,再核對回答是否受到來源支持。Google 的搜尋 grounding 文件說明了利用搜尋取得知識截止日之後資訊的方式。截止日前的內容也仍然可能有錯,日期本身不是正確性的保證。

因此,開始這個練習時,我會先寫下任務與完成條件,再決定提示要補哪些資訊。等到有實際回答,就用那些條件找出缺口。這樣留下的每次修改,才有理由可追蹤,也方便之後重做。

下一篇接著整理 Temperature 與 Top P,從機率分布理解提示內容之外的採樣設定。

參考資料與範圍

資料於 2026-10-15 查閱。Closure 提示與檢查條件為自編例子;本文沒有模型實測、準確率比較或個人熟練度評量。