AI時代系列(2) 機器學習三部曲: 🔹 第二部:《深度學習 —— 神經網路的革命》
66/100 第七週:📌 語言模型與生成式 AI(BERT、GPT)🗣🔍
66.Prompt Engineering 與 In-Context Learning 🪄 給出提示,引出智慧!
________________________________________
🎯 單元導讀:
在大型語言模型(如 GPT-3、GPT-4)中,有時你只需要「給一個好提示(Prompt)」,模型就能自動完成翻譯、寫詩、解題等任務,不必再經過完整微調。這正是Prompt Engineering 和 In-Context Learning(上下文學習) 的魔法。
本課將說明這兩種強大技巧的原理、差異與設計方法,教你如何「對模型說話」,讓它立即變聰明、理解你的意圖!
________________________________________
🧠 一、什麼是 Prompt Engineering?
➤ 定義:
Prompt Engineering 是一種設計輸入提示(Prompt)的技巧,用以引導大型語言模型產生理想輸出,不改動模型參數,僅靠輸入控制行為。
📘 類比:
模型是一位萬能助理,Prompt 就是你給他的「指令 + 範例」。
________________________________________
🔁 二、什麼是 In-Context Learning(上下文學習)?
➤ 定義:
模型在看到「範例 + 問題」組合後,直接從上下文中學會任務模式,在無需微調參數的情況下執行新任務。
📘 例子(情緒分類):
Input:
Tweet: I love this movie! → Sentiment: Positive
Tweet: This is terrible. → Sentiment: Negative
Tweet: What a great day! → Sentiment:
✅ 模型會自動產出 Positive,即「在上下文中學會模式」。
________________________________________
🧾 三、Prompt 類型總覽
(1). Zero-shot(零樣本學習)
不提供任何範例,直接使用自然語言描述任務並提問。
例子:Translate "hello" to French → Bonjour
(2). One-shot(單樣本學習)
提供一個範例讓模型參考,再讓它處理新問題。
例子:先輸入一題中英對照的翻譯,接著再請模型翻譯另一句。
(3). Few-shot(少樣本學習)
提供多個範例(通常 3~5 個)來建立上下文風格,讓模型更準確地模仿任務邏輯。
例子:展示幾組問答後,再問新的問題。
(4). Chain-of-Thought(思路鏈引導)
在 prompt 中加入「推理步驟」的格式,引導模型逐步思考,特別適用於數學、邏輯等複雜任務。
例子:「第一步… 第二步… 最後得到答案:○○○」
(5). Instruction Prompt(任務指令提示)
用清晰自然語言指示模型應執行的任務,讓它知道要做什麼。
例子:「請將下列文字翻譯為英文。……」
________________________________________
🎯 四、Prompt 設計技巧
在設計 Prompt 時,掌握幾個關鍵技巧能大幅提升模型回應的準確性與品質。首先,要明確描述任務內容,避免使用模糊或含糊不清的語句,直接說出「你希望模型做什麼」才是關鍵。
其次,可透過語句控制回應風格與語氣,例如加上「請用小學生能懂的方式解釋」或「請用正式語氣說明」,引導模型產生符合語境的回答。
在 few-shot 設計中,選擇具代表性的範例尤其重要,能幫助模型抓住任務邏輯與語用模式。為了讓模型更清楚理解結構,也建議加入格式標記如冒號、換行或標籤,明確區分輸入與輸出內容。此外,透過多輪互動提示(如回饋與再生成),可以讓模型在回應後根據需求自行優化與調整,達到更精煉的最終結果。這些技巧結合使用,能有效提升 Prompt 的控制力與應用靈活度。
________________________________________
🧪 五、Prompt Engineering vs 微調(Fine-tuning)
在應用大型語言模型時,Prompt Engineering 與 微調(Fine-tuning) 是兩種常見的方法,各有優缺點。Prompt Engineering 幾乎不需要額外成本,只需撰寫良好的指令即可快速切換任務,彈性高、適合大模型應用(如 GPT-3、GPT-4),但回應品質容易受到提示設計影響,穩定性相對較低。
而微調則需準備大量資料並使用 GPU 訓練,成本高、彈性低,通常針對單一任務優化模型參數,但在效果上較穩定、準確性高。總體而言,Prompt Engineering 適合快速測試與廣泛應用,微調則適用於資源充足、需長期部署的專用任務場景。
________________________________________
📊 六、應用實例
任務 Prompt 設計範例
翻譯 Translate the following sentence to Spanish: ...
情感分析 Text: "This phone is great!" → Sentiment: Positive
對話生成 You are a helpful assistant. Q: ... A: ...
資料抽取(NER) Extract all person names from this sentence: ...
小學數學解題 Let’s think step by step: 3 + 5 × 2 = ?
________________________________________
📚 七、小結與學習啟示:
✅ Prompt Engineering 是與大型語言模型互動的核心能力
✅ In-Context Learning 讓模型「看到範例就會學」,不再需要訓練
✅ 結合提示設計、Chain-of-Thought、格式規劃,可極大提升模型表現
✅ 是 ChatGPT、Copilot、Bard 等系統背後的實戰武器
________________________________________
💬 問題挑戰與思考:
💡 1. 你認為 Prompt Engineering 最難的地方在哪?如何測試提示效果?
最難的地方在於:
• 如何用「自然語言」清楚且具約束力地描述任務,讓模型準確理解並執行。
• 設計出的提示可能在不同上下文、不同模型設定下出現不穩定的結果。
測試方式:
• 多組輸入樣本進行 A/B 測試,觀察輸出是否準確、語氣一致。
• 調整提示語氣、格式、順序,逐步優化。
• 可加入**「反饋迴圈」**,讓使用者或模型自己評估並修正回應。
________________________________________
💡 2. 如果你是設計 AI 考題助手,會選擇微調還是 Prompt?為什麼?
• 若需快速部署、彈性高、跨領域(國文、英文、數學)支援,會選擇Prompt Engineering,因為:
o 不需重新訓練模型,成本低。
o 可快速調整題型或語氣風格。
• 若明確聚焦於單一考試體系(如國中會考英文題型),可考慮微調,讓模型熟悉固定格式與語言規則,提升穩定性與正確率。
✅ 理想方案:
先用 Prompt 打樣與測試,穩定後再進行小規模微調以提升精度。
________________________________________
💡 3. 如何讓 ChatGPT 更準確地執行某個特定任務?你會怎麼設計提示?
設計提示的關鍵技巧包括:
• 明確指出任務目標:「請將以下資料轉為 Excel 表格格式」
• 加入角色設定:「你是一位專業國文老師,請分析下列古文句義」
• 提供範例(Few-shot):先示範幾組輸入與輸出,讓模型模仿格式與邏輯
• 使用格式標記與分段:如「問題:……」、「請輸出:……」
• 加入約束條件:「請用 100 字以內作答」、「請用條列式回答」
✅ 小技巧:引導模型先「思考步驟」再回答(Chain-of-Thought),可提升任務的邏輯性與正確率。