文章

怎麼跟 ChatGPT 互動?OpenAI Prompt Engineering 實戰指南

怎麼跟 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)

什麼是清楚的指示?這邊提供幾個範例給大家參考。

包含詳細資訊

BadGood
總統是誰?台灣 2024 年的總統是誰

從上述範例,可以清楚看出「台灣 2024 年的總統是誰」這個 prompt 會比「總統是誰?」更容易讓 AI 了解我們的需求。

指定角色

BadGood
說明什麼是量子力學請對國小5年級的小朋友,說明什麼是量子力學

這個範例中,可以看出來,我們有明確的指定產出內容,必須是針對國小 5 年級的小朋友,可以讓 AI 更清楚我們的需求。

使用分隔符號

BadGood
Please translate to Japanese 這段英文請翻譯成中文```Please translate to Japanese``` 這段英文請翻譯成中文

上面這個範例,我們直接來看 ChatGPT 會怎樣回應。 使用分隔符號的 prompt

可以看到加上分隔符號,更符合我們期待的結果

指定任務步驟

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 方式,可以幫助我們更有效的利用時間,提升我們工作的產出效率。。

參考

本文章以 CC BY 4.0 授權