Contents ...
udn網路城邦
AI提示詞工程 Prompt Engineering-單元-09-自動化與程式提示
2026/10/13 07:14
瀏覽4
迴響0
推薦0
引用0
  • Automatic Prompt Engineering (APE,自動化提示詞工程):就像「請 AI 幫你寫提示詞並自動挑選出最好的版本」。手動撰寫與調整提示詞非常耗時,APE 就是讓大語言模型自動生成多種不同的提示詞說法變體,再透過客觀的分數指標進行評估打分,最後選出成效最佳的提示詞。
  • Code Prompting (程式提示詞):就像「讓 AI 擔任你的全能軟體工程師與 Code Reviewer」。大語言模型不僅能幫你撰寫自動化程式碼(Generating code),還能幫你解釋看不懂的複雜程式碼(Explaining code)、把程式碼從一種語言翻譯成另一種語言(Translating code),以及自動排查 Bug 並提供重構優化建議(Debugging & Reviewing code)。

🎯 核心重點

  1. Automatic Prompt Engineering (APE) 3 大步驟:
    • 步驟 1:生成候選變體(Generate candidates):撰寫一個基礎提示詞,讓 LLM 自動生成多個同義但句法不同的提示詞指令變體(Candidates)(註:就是候選之意,是指它將生成多個提示詞,讓你可以進行選擇)。
    • 步驟 2:定量評估打分(Evaluate candidates):利用特定評估指標(如 BLEU 或 ROUGE 分數)對生成的候選提示詞進行評分與測試。
    • 步驟 3:挑選與迭代(Select & Iterate):選擇評估分數最高的提示詞作為系統最終採用的 Prompt,或對其進行微調後再次評估。
  2. Code Prompting 的 4 大核心應用情境:
    • 撰寫程式碼 (Writing code):傳達需求與限制,讓 LLM 生成 Bash、Python 或其他語言的自動化腳本。
    • 解釋程式碼 (Explaining code):提供現成程式碼,讓 LLM 逐步解析每段程式碼的功能與原理,方便理解團隊遺留程式碼(Legacy code)。
    • 翻譯程式碼 (Translating code):將程式碼從特定語言(如 Bash)翻譯為另一種更適合構建應用程式的語言(如 Python)。
    • 除錯與評閱程式碼 (Debugging and reviewing code):將程式碼連同系統報錯訊息(Traceback)一併貼給 LLM,模型不僅能修復 Bug,還能自動列出潛在缺失(如未處理例外狀況、缺乏副檔名處理等)並提供最佳實踐重構版本。
  3. 程式碼提示的工程注意事項:
    • 必須先在測試環境驗證:LLM 本質是 Token 預測引擎,而非真正具備邏輯思考,因此生成的程式碼必須先在測試資料匣(Test folder)中驗證測試。
    • Python 格式需保持 Markdown 縮排:在 Vertex AI Studio 中提示 Python 程式碼時,必須開啟 Markdown 檢視模式,否則純文字格式會丟失 Python 極度依賴的行首縮排(Indenting),導致程式無法執行。

💡 實際例子

例子 1:APE 樂團周邊商品客服機器人訓練
  • 需求:我們想訓練一個販售樂團 T-Shirt 的客服機器人,需要蒐集客戶訂購時的各種口語說法。
  • 作法:
    1. 輸入提示詞:「我們有周邊 T-shirt 網店,請針對『買一件 Metallica T-shirt S 號』這句語義,產生 10 種不同的口語表達變體」。
    2. LLM 自動生成了 "I’d like to purchase a Metallica t-shirt in size small."、"Can I order a small-sized Metallica t-shirt?" 等 10 種變體。
    3. 利用 BLEU / ROUGE 等分數評估篩選出最高分的語句,作為最佳訓練提示詞。
例子 2:Code Prompting(除錯與程式評閱)
  • 問題:使用者執行 Python 重命名腳本時跳出錯誤 NameError: name 'toUpperCase' is not defined。
  • Prompt 作法:將錯誤訊息(Traceback)與完整程式碼一併發送給 LLM 要求除錯。
  • 模型輸出結果:
    1. 直擊 Bug:指出 Python 並沒有 toUpperCase() 函式,應改用字串內建的 .upper() 方法。
    2. 主動重構建議:模型進一步檢查發現程式碼還有其他缺陷——沒有保留原副檔名、未處理檔名空格、且缺乏 try...except 錯誤處理機制,並直接提供一份完整修復,並且更穩健的重構程式碼。

❌ 常見錯誤

  1. 認為 APE 不需要評估指標:APE 絕非只讓 LLM 隨機生成提示詞,如果沒有搭配量化指標(如 BLEU / ROUGE)或客觀評測集,就無法篩選出真正高質量的提示詞。
  2. 複製 Python 程式碼時未注意 Markdown 縮排:直接複製未經 Markdown 格式化的文字,會導致 Python 的 if、for 縮排跑版,進而引發 IndentationError。
  3. 未經測試即直接將 LLM 生成的腳本用於正式環境:忽略了 LLM 可能會產生語法正確,但是邏輯不符需求的代碼,未先在測試資料夾驗證即執行,可能造成檔案遭不當覆蓋或刪除。

📖 來源依據

內容依據《Prompt Engineering》教材:

  • Automatic Prompt Engineering (APE) 定義與 3 步驟:第 40–42 頁
  • Code Prompting 4 大情境 (Write, Explain, Translate, Debug):第 42–54 頁
  • Python Markdown 縮排注意事項:第 48 頁
  • 程式碼必須先測試驗證:第 43–44 頁

📝 3 題理解測驗

第 1 題(單選題) 關於 Automatic Prompt Engineering (APE,自動化提示詞工程) 的執行流程與優點,下列何者描述最為正確? (A) APE 是指由工程師手動編寫 100 種提示詞,再完全人工進行打分。 (B) APE 透過模型自動生成多個提示詞變體,並利用 BLEU 或 ROUGE 等指標進行評分與篩選,以自動獲得成效最佳的提示詞。 (C) APE 只能用於程式碼生成,無法用於一般的文字生成或客服機器人訓練。 (D) APE 會自動將模型的 Temperature 調整為 0,完全不需要進行評估打分。

第 2 題(單選題) 在 Vertex AI Studio 中進行 Python 程式碼提示(Code Prompting)時,教材特別提醒了哪一個格式上的注意事項? (A) 必須關閉所有 Markdown 按鈕,否則 Python 會無法執行。 (B) 必須點選 Markdown 按鈕,否則輸出的純文字會丟失 Python 正確運行所需的「行首縮排(Indenting)」。 (C) 必須將提示詞限制在 5 個 Token 以內。 (D) 必須使用 Java 語法來編寫 Python 提示詞。

第 3 題(應用簡答題) 假設你寫了一段 Python 檔案處理腳本,執行時跳出了 Traceback 錯誤訊息。 請依據本單元所學,說明你在撰寫除錯 Prompt 時,應該提供給 LLM 哪些關鍵資訊?LLM 除了指出錯誤行數外,還能為你提供哪些額外的程式碼評閱幫助?


測驗答案:(參考)
第1題:B。 APE 透過模型自動生成多個提示詞變體,並利用 BLEU 或 ROUGE 等指標進行評分與篩選,以自動獲得成效最佳的提示詞。
第2題:B 。必須點選 Markdown 按鈕,否則輸出的純文字會丟失 Python 正確運行所需的「行首縮排(Indenting)」。
第3題:

  • 將錯誤訊息(Traceback)與完整程式碼一併發送給 LLM 要求除錯。 應提供的關鍵資訊,包含完整程式碼 + 錯誤訊息(Traceback)。
  • 直接面對解決 Bug的訊息,並且提供主動重構程式碼的建議。LLM將協助額外的程式碼評閱,除了直接解決 Bug,LLM 還能進行主動重構(Refactoring),例如,加入例外處理(try...except)、邊界條件檢查、增強變數命名與語法規範等,讓程式碼更具備穩健度(Robustness)。

註1:
這「學習系列」的文章,是記錄自己與AI一起探索知識的過程,也是我將AI做為私人家教的一項實驗。對於如何藉由Ai輔助自我學習,請參考這篇:
https://blog.udn.com/tku_89056/192561353
https://goldenbird-willy.blogspot.com/2026/09/gemini-notebook-ai.html

註2:

學習教材:《Prompt Engineering》
本書探討了提示工程的核心概念、多種進階技巧、以及最佳實務(use cases)。內容涵蓋如何設定大型語言模型的輸出長度與取樣參數,並且介紹零樣本、少樣本、角色扮演、思維鏈、以及如何結合外部工具的推理與行動等實用策略。此外,本書也示範了如何利用人工智慧來編寫、解釋、翻譯和除錯程式碼。最後,本書提供了多項專業的建議,例如簡化提示設計、優先使用正面指令、利用如JSON的結構化格式、以及落實詳盡的版本記錄與迭代。
本書作者Lee Boonstra是一名人工智慧軟體工程師、技術主管和系統架構師,在谷歌全球首席技術官辦公室(OCTO)、應用創新工廠等擁有10年以上的資歷。
免費下載:https://www.kaggle.com/whitepaper-prompt-engineering


限會員,要發表迴響,請先登入