怎麼跟 ChatGPT 互動?OpenAI Prompt Engineering 實戰指南
什麼是 Prompt Engineering
Prompt Engineering 是一門設計與優化生成式 AI 輸入指令的技術與藝術。簡單來說,prompt 就是我們給 AI 提供的「指令」或「問題」,它決定了 AI 的輸出內容與品質。無論是讓 AI 回答問題、撰寫故事、生成程式碼,還是進行數據分析,這些操作的核心都在於如何設計一個清晰、有效的 prompt。
你可以把 prompt 想像成與 AI 溝通的橋樑。如果指令模糊或不具體,AI 可能給出不準確或不相關的結果;但如果 prompt 設計得當,AI 則能夠快速提供準確的回應,甚至解決複雜的問題。
例如,當我們用模糊的 prompt:「幫我寫點東西」向 AI 提問,回應可能毫無條理。但換成具體的 prompt:「幫我寫一篇 200 字的文章,主題是如何進行有效學習,並包含三個實用建議」,輸出會更貼近我們的期待。
因此,Prompt Engineering 是生成式 AI 的核心技能,掌握這門技術能幫助我們最大化地發揮 AI 的潛力,無論是在學術、商業還是個人創作中。
OpenAI 建議的 Prompt Engineering 六大策略
策略一:寫下清楚的指示(Write Clear Instructions)
什麼是清楚的指示?這邊提供幾個範例給大家參考。
包含詳細資訊
Bad | Good |
---|---|
總統是誰? | 台灣 2024 年的總統是誰 |
從上述範例,可以清楚看出「台灣 2024 年的總統是誰」這個 prompt 會比「總統是誰?」更容易讓 AI 了解我們的需求。
指定角色
Bad | Good |
---|---|
說明什麼是量子力學 | 請對國小5年級的小朋友,說明什麼是量子力學 |
這個範例中,可以看出來,我們有明確的指定產出內容,必須是針對國小 5 年級的小朋友,可以讓 AI 更清楚我們的需求。
使用分隔符號
Bad | Good |
---|---|
Please translate to Japanese 這段英文請翻譯成中文 | ```Please translate to Japanese``` 這段英文請翻譯成中文 |
可以看到加上分隔符號,更符合我們期待的結果
指定任務步驟
1
2
步驟一:分析上述提供的文章,取得摘要
步驟二:將摘要翻譯成中文
有清楚的步驟拆解,會讓 AI 產出結果比較符合期待,降低錯誤率。
提供範例
其實就是常聽到的 Few-shot,提供範例讓 AI 可以更好的理解我們的需求。
1
2
3
4
5
6
7
8
9
請幫我將語句進行分類,分類成`正向`與`負向`
範例
- "這部電影真的很好看" -> 正向
- "這部電影真的很爛" -> 負向
要進行分類的語句
"""
...
"""
限制輸出長度
可以要求 AI 依據需求限制輸出長度。
例如字數限制
1
請寫出一篇關於環境保護的文章,字數限制在 200 字以內
例如段落數量
1
請寫出一篇關於環境保護的文章,整篇文章有 3 個段落
策略二:提供參考文字(Provide Reference Text)
寫下清楚指示後,如果是有限縮在某個範圍內的回答,就可以採用這個策略,來避免 AI 回答不相關的內容。
提供參考文字部分,主要有兩種
- 參考文字回答
- 引用參考文字回答
都是為了精準回答內容,讓 AI 只能回答我們指定的範圍內,只是差異在引用會基於參考文字內容,而有些延伸的答案。
策略三:複雜任務拆解成簡單任務(Split Complex Tasks into Simpler Subtasks)
在這個策略,主要就是降低任務的複雜度,讓 AI 可以降低產出結果的錯誤率。
將使用者問題進行分類匹配
先提供分類的選項,再依據使用者問題,進行分類匹配。
以常見的電商的客服系統來設計簡單的分類
1
2
3
4
5
以下分類選項有
- 產品問題
- 付款問題
- 運送問題
- 退貨問題
接著讓使用者問題根據上述分類,進行匹配,再參考分類細部內容來進行回答。
對於很長的對話應用,要先總結先前對話的內容
這是用在對話式的應用,可以先總結先前對話的內容,再進行回答。
分段總結再進行總結論
例如要總結書籍,可以先依照章節進行分章總結,最後再依據這些結論,進行最後的總結。
策略四:讓 AI 有思考時間(Give the Model Time to ‘Think’)
而當任務變得複雜時,讓 AI 有更多時間思考,能幫助它產出更深思熟慮的結果。
- 讓 AI 列出解決方法
- 使用內心獨白或持續的詢問來隱藏推理過程
- 問 AI 是否有遺漏過程
策略五:使用外部工具(Use External Tools)
- 透過 RAG 搜尋
- 透過程式計算
- 呼叫特定方法
策略六:有系統的持續測試(Test Changes Systematically)
為了持續優化 AI 回答的內容,我們需要有個評估方式,來判別 AI 這次回答的結果的分數。
OpenAI 提供了 OpenAI Evals 工具,可以讓我們進行評估。
總結
現階段在 Prompt Engineering,為了追求 AI 回覆的成效,從這 OpenAI 六大策略可以看出,基本的 prompt 優化,到更進階的分類、引用、拆解、思考、外部工具、持續測試,都是為了讓 AI 回覆的內容更符合我們的需求。 而掌握了 Prompt Engineering 方式,可以幫助我們更有效的利用時間,提升我們工作的產出效率。。