AI 應用

邱鈺傑

2024-12-23

Prompt Engineering 是什麼?提示工程指南:6 大關鍵原則!

Prompt Engineering 是什麼?提示工程指南:6 大關鍵原則!
Prompt Engineering是什麼?本文將分享Prompt Engineering基本原則、3種常見Prompt Engineering技術,以及Prompt Engineering範例分享,最後整理Prompt Engineering教學資源給你!

Prompt Engineering 為什麼重要?3 分鐘搞懂提示工程!

相信大家都有遇過 AI 工具(例如 ChatGPT)答非所問、偏離重點,甚至無中生有回答的情況吧?其實,這並不完全是 AI 的問題,反而有可能是我們提問的方式影響了它回答的品質!

這就是為什麼 Prompt Engineering(提示工程) 如此重要~以下帶你用最簡單的方式認識什麼是 Prompt Engineering,以及它為什麼重要?

(一)Prompt Engineering 是什麼?一次看懂 Prompt Engineering 介紹

如果有人說他在 Google 查東西卻得不到他想要的結果,那可能是因為他用的關鍵字不夠精確,或是提問的方式不夠清楚。這個情況同樣可以套用在 AI 應用中,因此 Prompt Engineering (提示工程)誕生了。

Prompt Engineering 中文稱作「提示工程」,簡單來說 Prompt Engineering 意思是通過設計、改良,生成更精確的提問方式,讓 AI 更懂你的需求。

Prompt Engineering 就像是與 AI 對話的藝術。

儘管生成式 AI 能回答各種問題或滿足不同需求,但如果它無法理解使用者給的指令,就無法產出我們所需要的內容。

不好的 ChatGPT 指令示範: 「幫我寫一篇文章」

為什麼這是一個不好的指令呢?

  • 缺乏上下文:沒有提供文章的主題、目標受眾或用途,ChatGPT 無法了解你的需求。
  • 指令太廣泛:ChatGPT 不知道你需要的文章長度、格式或文字風格。

不明確的指令容易導致 AI 生成一個很普通、廣泛性的回答,與你的需求不符,反而需要不斷修改。因此,Prompt Engineering 至關重要!提示工程不僅是給 AI 下達指令,而是透過設計和調整提示詞,讓 AI 模型能產生更準確、更相關的答案。這個過程涉及清晰的溝通,還需要反覆試驗 trial and error,以達到最佳效果!

📍 Prompt Engineering 為什麼重要?

  • 提高可控性

幫助開發者更有效地掌控使用者與 AI 的互動,為大型語言模型提供相關上下文,確保輸出的準確性與一致性,並引導 AI 生成更符合需求且具創意性的回覆。

  • 提高精準度

通過明確指令,幫助 AI 理解複雜的上下文和任務要求,減少 AI 自行推測的空間,讓輸出的結果更有針對性,避免無中生有或答非所問的情況,進而提高回答的正確性和可靠性。

  • 改善使用者體驗

避免反覆試錯、修改或不必要的溝通,讓使用者可以更有效率的使用 AI 工具,節省時間並提升整體體驗。

(二)Prompt Engineering AI 應用:各種 NLP 領域

提示工程(Prompt Engineering)已廣泛應用於人工智慧的不同領域,特別是在自然語言處理(NLP)領域有其顯著的應用價值。

以 Prompt Engineering NLP 領域為例,透過提示工程,我們能夠進一步提升 LLM 在 NLU(自然語言理解)及 NLG(自然語言生成)方面的能力與效果,例如透過精心設計的提示,使客戶服務聊天機器人能生成個性化且與上下文高度相關的回應,有效提升用戶體驗與滿意度。

又以我們熟悉的 ChatGPT 為例,使用者可以透過提示工程,提升 ChatGPT 的輸出品質,取得更準確且高水準的回答!

Prompt Engineering 基本原則|6 大重點需要注意!

OpenAI Prompt Engineering 手冊中詳細介紹了提示工程的 6 大原則,讓你的模型更聽話,以下帶你來看看是哪 6 大重點:

提示工程 6 大原則

(一)寫出清晰的指令

就像人跟人溝通一樣,如果話不說清楚,其他人是無法理解你在想什麼的!AI 模型不是你肚子裡的蛔蟲,沒辦法通靈知道你的想法。把話說清楚,告訴模型你想要什麼、不想要什麼,減少模型猜測你想要什麼的次數,能獲得理想回答的可能性就越高!

要怎麼寫出清楚的指令呢?以下提供 6 個實用技巧:

  1. 把話說清楚、提供上下文

AI 在沒有足夠上下文的情況下,可能會出現模糊、過於廣泛或是偏離重點的回答。撰寫提示時,建議詳細描述你需要解決的問題與需求。簡單來說就是把話說清楚,不要給太模糊的指令。

模糊的指令清楚的指令
怎麼在 Excel 中加總數字?我要怎麼在 Excel 中加總一行台幣金額?我希望能自動化為整個表格的所有行加總,並將結果顯示在名為「Total」的欄位中。
誰是總統?誰是 2024 年的美國總統?美國總統選舉多久一次?
總結會議筆記首先用一段文字總結會議結果,其次將各發言者的重點用列點的方式整理出來,最後列出各發言者建議的下一步計畫。
  1. 讓模型扮演某個角色

指定模型扮演特定角色有助於產生更專業且具針對性的回應。例如,你可以叫模型扮演一個喜歡講笑話的脫口秀演員,並叫模型在回答問題時都要給予有趣的評論或笑話。

  1. 使用特殊符號區隔指令段落

當提示內容較為複雜時,可以使用特殊符號,像是「---」、「"""」或是 XML,來區分不同的指令部分,有助於 AI 更清楚地理解各部分的功能。

  1. 指定完成任務的步驟

如果任務比較複雜,建議把任務拆解成具體的步驟,讓模型逐步完成。例如:請按照步驟完成任務。步驟一 ➤ 請將文字濃縮成 500 字總結,步驟二 ➤ 將步驟一的文字翻譯成日文。

  1. 提供回答範例(經典的少樣本提示)

提供範例是引導模型生成類似輸出的有效方法之一,也就是經典的少樣本提示(few-shot prompt)。先提供數個回答範例,再讓模型依照你給的範例生成結果。

  1. 指定回答的長度與格式

雖然 AI 模型可能無法精確控制字數,但是你可以大致控制文章的段落數或長度。例如:請撰寫一篇 3 個段落的文章,每段 100 字左右,介紹 AI 在教育領域的應用。

(二)提供參考文本

AI 模型在被詢問一些冷門的主題、或是需要引用來源的時候,很容易編造假的答案或來源(俗稱:一本正經講幹話)。提供參考文本或檔案可以降低模型亂回答的狀況,就像「開書考」通常可以讓學生考試考得更好一樣。

  • 方法 1:指定模型使用參考文本回答

就像提供知識庫一樣,我們可以直接提供模型參考內容,讓它利用提供的資訊來組成答案。

  • 方法 2:指定模型「引用」參考文本

直接要求模型在回答中「引用」你附上的參考文本,提高正確性與可驗證性。

(三)拆解複雜任務

複雜的任務往往比簡單任務有更高的錯誤率,並且更難以準確執行。因此,將複雜任務拆解為一個個獨立的小任務,能有效減少錯誤,提高精確度。

例如,在軟體工程中,將一個複雜的系統分解為一組模組化組件,能提高系統的可管理性和維護性。

要怎麼拆解任務呢?3 個策略分享給你:

  • 分類用戶意圖:將用戶的需求轉化為具體的行動,能夠避免 AI 模型陷入不必要的細節或誤解問題的核心。

  • 摘要與過濾:因為用戶與 AI 沒辦法持續在長時間的對話中,AI 模型可以根據先前的對話內容進行總結,過濾不必要的訊息,保持對話的高效性和重點。

  • 分段與總結:對於需要處理的長文檔,分段總結有助於逐步理解整體內容,並避免一開始就處理過多資訊。

(四)給模型時間思考

給模型思考時間就是我們常說的 Think Step by Step,也是思維鏈(Chain of Thought,CoT,下面會再介紹)的思考方式。就像人類在回答複雜的數學問題時,需要時間去思考和計算才能獲得準確答案,AI 模型也能透過逐步思考來更精確地達到正確的答案。

就跟人一樣,如果你直接要求模型立即提供答案,尤其是面對複雜問題的時候,模型往往會犯下更多推理錯誤。但若我們叫模型在得出結論之前,先詳細解釋其推理過程,它反而能夠更穩定地推導出正確的結果,從而減少錯誤。

(五)使用外部工具

AI 模型並不是萬能的,尤其在面對數學問題或時事問題時,更容易出錯,因此經常需要第三方工具的協助。對於一些特定的任務,利用外部工具來補充模型的不足,能夠實現更穩定和準確的結果,並最終提高效率。

將一些複雜或高效需求的任務交給專門的第三方工具來執行,讓 AI 模型可以集中處理最適合的部分,從而達到最佳效果。

當第三方工具可以穩定提供 AI 模型正確結果,模型就只需要把蒐集到的答案組裝起來就好了!

外部工具大致上可以分成 3 類:

  • 嵌入式的檢索知識庫(例如 RAG: 利用嵌入的檢索技術,將用戶的問題與資料庫中的文檔進行匹配,從中提取最相關的內容並提供給語言模型。

  • 使用其他程式碼:因為 AI 模型的數學運算還不夠強大,因此 OpenAI 建議,如果遇到需要計算的任務,可以讓模型寫一段計算的 Python 程式碼去處理。

  • 提供特定功能: 除了進行基本的數據檢索或計算,你也可以提供特定的功能給 AI 模型,例如專門的 API、外部服務或數據庫查詢系統。

(六)系統性的測試評估

為了判斷 Prompt 的變更是否能有效提升模型的效能(或是讓模型變得更差),開發者需要進行系統性的測試。

開發者需要設計一套全面的評估測試(或稱為 eval),涵蓋各種不同的情境和例子,並且能夠客觀量化模型在不同任務下的表現,幫助識別提示的調整是否真正提升了模型的準確性或效率,而不僅僅是針對特定情境的偶然性改進。

參考來源:OpenAI 官方文件《Prompt engineering

Prompt Engineering 技術|3 種常見的應用技術

(一)提示連結(Prompt Chaining)

提示連結(Prompt Chaining)經常被運用在自然語言處理(NLP),透過將多個提示串聯起來,創建出更具動態性和上下文感知能力的模型。

提示連結的運作方式是將一個提示的輸出作為下一個提示的前情提要,形成一系列連續的提示。這樣的串聯使聊天機器人能夠靈活適應未經預設的情況,同時保持對話的連貫性。

例如,在設計客服聊天機器人時,透過提示連結技術,機器人可以根據使用者的回應動態調整後續問題,提供更個性化且相關的服務。

(二)思維鏈(Chain of Thought)

Prompt Engineering 的 CoT(思維鏈)是一種提示技術,目的是提升模型在處理複雜推理任務時的能力。

CoT 會透過提供詳細推理過程的範例,鼓勵模型在回答時展示其思考步驟。這種方法讓模型能夠模仿人類的思考過程,逐步解決問題,從而提高對問題的理解和回答的準確性。

例如,當模型面對需要多步驟計算的數學問題時,傳統的指令可能只是要求模型直接給出答案,但這很容易導致錯誤。而採用 CoT 技術,則可以引導模型逐步展開推理過程,詳細描述每一步的計算,最終得出正確答案。這種方法不僅提高了模型的準確性,還增強了結果的可解釋性。

(三)思維樹(Tree of Thought)

Tree of Thought Prompting 與思維鏈一樣,都是為了提升模型的推理能力。不過思維樹(ToT) 則進一步擴展了 CoT 的線性思維概念,透過構建樹狀結構,讓模型在不同的思維路徑上進行探索和評估。

這種方法模擬人類在面對複雜問題時的多重思考方式,透過探索不同的推理分支,模型可以評估各種可能的解決方案,最終選擇最優的答案。

例如,在進行 24 點算數遊戲時(玩家可以使用 4 個指定數字及加、減、乘、除運算,得出結果需要為 24),ToT 會讓模型探索不同的計算步驟組合,最終找到達成目標的最佳路徑。

簡單比較思維鏈(CoT)和思維樹(ToT):

  • 思維鏈(CoT) ➤ 適用於需要清晰、線性思維或逐步推理的任務。
  • 思維樹(ToT) ➤ 適合需要策略性探索或存在多種解決方案的複雜問題。

Prompt Engineering 範例分享!教你訓練更精準的 ChatGPT 指令

ChatGPT 應該是最廣為人知,也是許多人日常生活中最常使用的 AI 工具之一吧!接下來,讓我根據 OpenAI 的文章,和你分享一些 Prompt Engineering 實際範例,幫助你訓練更精準、更有效的 ChatGPT!

(一)Prompt Engineering 應用:ChatGPT 指令範例

這邊簡單複習一下 OpenAI 的 6 大 Prompt Engineering 基本原則:寫出清晰的指令、提供參考文本、拆解複雜任務、給模型時間去思考、使用外部工具、系統性測試評估。

以下再跟你分享 3 種 OpenAI 建議的 Prompt 寫法:

📍 與其只說明「不要做什麼」,不如說明「該做什麼」

❌ 效果較差以下是一位客服與用戶的對話,請不要詢問用戶名或密碼、不要重複對話
用戶:我無法登入我的帳戶
客服:
✅ 效果較好以下是一位客服與用戶的對話,客服將嘗試診斷問題並提出解決方案,並避免詢問任何涉及個人識別信息(PII)的問題,而是將用戶引導至幫助文章 www.samplewebsite.com/help/faq,而非要求用戶提供帳號或密碼。
用戶:我無法登入我的帳戶
客服:

ChatGPT 實測

📍 將指令放在提示的開頭,並使用 ### 或 ””” 來分隔指示與內容

❌ 效果較差將下面的文字總結成重點項目清單。
文本文本文本文本
✅ 效果較好將下面的文字總結成重點項目清單。
文字:""" 文本文本文本文本 """

📍 減少「模糊」和不夠精確的描述

❌ 效果較差用幾句話描述這個產品,不用太多但也不要太少
✅ 效果較好用 3 到 5 句話描述這個產品

Prompt Engineering 教學整理|課程、學習資源

最後,老樣子跟你分享一些線上的 Prompt Engineering 課程跟學習資源,幫助你更了解 Prompt Engineering!

📘 課程名稱:《ChatGPT Prompt Engineering

這堂課是 DeepLearning.AI 的課程。DeepLearning.AI 是由深度學習大師吳恩達所成立,推出許多涵蓋 AI 相關的各種課程,包含專項課程、證書課程等。

  • 針對開發者設計,介紹如何利用 ChatGPT 進行高效的提示工程。
  • 內容深入探討語言模型如何理解和回應提示,並提供實用的提示技巧。
  • 包含範例與實際練習,幫助學員掌握如何調整和改進提示。
  • 平台有提供部分免費學習時數。

📘 課程名稱提示工程指南

本堂課是由 Learn Prompting 設計,他們是專門提供 AI 相關課程的平台,受到包含 OpenAI、Google、微軟等企業的信任,已經有超過百萬人上過課程,可以說是許多人的 Prompt Engineering Guide!

  • 涵蓋提示工程的基礎知識,適合新手學習如何編寫有效提示。
  • 提供多種實際應用範例,幫助學員理解如何在不同情境下使用提示工程技術。
  • 深入介紹如何設計清晰、精確的提示,以提升 AI 的回應質量和準確性。
  • 完全免費!

以上就是 Prompt Engineering 的介紹,如果您想要了解更多 Solwen AI 資訊,或者想要免費諮詢 AI 導入評估,都可以透過下方藍色按鈕與 Solwen AI 團隊聯繫!

邱鈺傑

邱鈺傑

AI 工程師

曾任職於意藍資訊,擅長 RAG 技術應用及 AI Agent 應用開發,擁有豐富的數據分析和商業分析經驗,具備多個 AI 專案的實戰經歷,包含假訊息分類、AI 文案生成等實用應用,並在大型會議與教育訓練中擔任講師。熱衷自學 AI 技術,並擅長將複雜概念轉換為清晰易懂的語言傳達。

cta image

想收到更多 Solwen 彙整的國內外 AI 產業快訊嗎?

編輯精選

最新文章

solwen.ai logo

訂閱 Solwen 電子報,定期獲取 AI 產業快報

hello@solwen.ai

02-77305901

台北市基隆路二段51號11樓-2

Copyright © 2024 薩爾文科技股份有限公司 All rights reserved.

隱私權政策