用OpenAI API做prompt engineering提示工程的最佳方法

J
UniMarket
Published in
Apr 12, 2023

以下為OpenAI 官方文件提供的最佳提示技巧。

prompt engineering的工作原理

因為模型的訓練方法或使用的數據,有些prompt格式適合處理某些對話。以下列出了一些表現良好的prompt格式,您也可以試試其他格式,找到最適合的。

將指令放在提示的開頭,並使用###或”””將指令和上下文分開

效果較差 ❌:

將下面的文章總結為重要要點列表。{此處輸入文字}

效果較好 ✅:

將下面的文章總結為重要要點列表。文章:""" 
{此處輸入文字}
"""

實際測試結果:

盡可能具體描述和詳細地說明所需的上下文、結果、長度、格式、風格等

效果較差 ❌:

寫一首關於OpenAI的詩。

效果較好 ✅:

以{著名詩人}的風格寫一首關於OpenAI的鼓舞人心的短詩,重點介紹最近的DALL-E產品發布(DALL-E是一個文本到圖像的機器學習模型)

實際測試結果:

通過範例說明所需的輸出格式

效果較差 ❌:

取得下面文章中提到的名稱。取得以下4種名稱類型:公司名稱、人名、特定主題和總體主題。
文章:{文字}

效果較好 ✅:

取得下面文章中提到的重要名稱。首先取得所有公司名稱,然後取得所有人名,然後取得適合內容的特定主題,最後取得總體主題
格式:
公司名稱:<以逗號分隔的公司名稱列表>
人員名稱:-||-
特定主題:-||-
總體主題:-||-
文章:{文字}

在提示中指定特定的格式可以幫助模型更好地執行任務,同時也能更容易地從模型中解析出多個輸出。

實際測試結果:

從零次學習開始,然後是少次學習

✅ 零次學習

從下面的文章中提取關鍵字。文章:{文字}關鍵字:

✅ 少次學習 — 提供幾個示例

從下面相應的文章中取得關鍵字。文章1:Stripe提供API,網絡開發人員可以使用這些API將支付處理集成到他們的網站和移動應用程序中。
關鍵字1:Stripe、支付處理、API、Web 開發人員、網站、移動應用程序
##
文章2:OpenAI訓練了非常擅長理解和生成文本的尖端語言模型。我們的API提供對這些模型的訪問,可用於解決幾乎任何涉及處理語言的任務。
關鍵詞2:OpenAI,語言模型,文本處理,API。
##
文章3:{文字}
關鍵字3:

實際測試結果:

減少“含糊”和不精確的描述

效果較差 ❌:

這個產品的描述應該很短,只有幾句話,不要太多。

效果較好 ✅:

用3到5句話的段落描述這個產品。

實際測試結果:

與其只說明不要做什麼,不如說明應該做什麼

效果較差 ❌:

以下是客服和客戶之間的對話。不要詢問用戶名或密碼。不要重複對話。客戶:我無法登錄我的帳戶。
客服:

效果較好 ✅:

以下是客服和客戶之間的對話。客服將嘗試診斷問題並提出解決方案,同時避免詢問與個人身份(PII)相關的問題。不要詢問用戶名或密碼等個人身份資訊,而是將用戶引導到幫助文章www.samplewebsite.com/help/faq客戶:我無法登錄我的帳戶。
客服:

實際測試結果:

特定代碼生成 — — 使用“引導詞”將模型推向特定模式

效果較差 ❌:

# 編寫一個簡單的python函數
# 1.請用戶輸入一個英里數
# 2.將英里轉換為公里

效果較好 ✅:

# 編寫一個簡單的python函數
# 1.問用戶一個以英里為單位的數字
# 2.它將英里轉換為公里

import

在上面的代碼示例中,添加“import”可暗示模型應該開始使用Python編寫。(同樣,“SELECT”對於開始SQL語句也是一個好的提示。)

--

--

J
UniMarket

前端工程菜鳥的學習日記 請各位大大帶我飛 ಥ⌣ಥ