提示工程技術

OpenAI 提供的 GPT-3、GPT-3.5、GPT-4 和 GPT-4o 模型是以提示為基礎。 使用提示型模型時,使用者要輸入文字提示來與模型進行互動,而模型會使用文字完成對文字提示進行回應。 此完成是模型的輸入文字接續。

雖然這些模型非常強大,但其行為也會對提示非常敏感。 這可讓提示建構成為開發的重要技能。

提示建構可能很困難。 在實務上,提示用來設定模型權數以完成所需的工作,但它比較是藝術而不是科學,通常需要體驗和直覺來製作成功的提示。 本文的目標是要協助您開始進行此學習流程。 其中會嘗試擷取適用於所有 GPT 模型的一般概念和模式。 不過,請務必了解每個模型的行為皆不同,因此學習內容可能無法同樣套用到所有模型。

基本概念

本節涵蓋 GPT 提示的基本概念和元素。

文字提示是使用者與 GPT 模型互動的方式。 如同所有生成式語言模型,GPT 模型會嘗試產生最可能接在前一個文字後面的下一組文字。 其有如我們說:「當我說 <prompt> 時,您心中第一個想到的是什麼?」下列範例將示範此行為。 提供著名內容的第一個字,模型就能夠精確地繼續完成這段文字。

提示 Completion
八十七年前 我們的先輩們在這塊陸地上建立了一個新國家,這個國家孕育於自由,並奉行人人生而平等的主張。 […]
「叫我以實瑪利。」 「幾年前,不管具體是多久以前,我的錢包裡幾乎沒有錢,岸上也沒有什麼特別讓我感興趣的事情,我想我應該去航行,看看世界上每一處海洋。」[...]

當您開發更複雜的提示時,記住此基本行為會很有幫助。 不論提供的提示為何,模型都會直接回應其判斷為最有可能的內容 (根據其訓練資料和訓練目標)。 如果您在提示中詢問問題,模型不會遵循個別的「Q&A」程式碼路徑,而是可能會回答問題,因為答案是輸入給定問題時最可能的回應類型。

提示元件

即使提示的不同部分之間並沒有區別,使用完成 API 仍有助於識別底層提示元件的學習和討論。 使用聊天完成 API 時,提示的不同區段會以具有相關聯角色的字典陣列形式傳送至 API,這些角色為:系統、使用者和助理。 本指南更著重於如何思考提示建構,而不是提供各個 API 專屬的規範性指導。

也請務必了解,雖然有其他有效的方法來剖析提示,但此分項的目標是提供相對簡單的方法來思考提示建構。 使用完成 API 時,所有元件都是選擇性的,但必須至少存在一個元件,而且大部分的提示都包括多個元件。 元件之間也有一些灰色區域。 下面呈現的順序大致對應每個元件的使用頻率,從最高到最低。

指示

指令可能是最常用的提示元件。 指示就是:模型要做什麼的指示。 雖然概念很簡單,但實際上可能十分複雜。 為說明這一點,下表以兩種不同形式來表示簡單的指示和較複雜的指示。

指示類型 提示 Completion
簡單指示 撰寫每週電子報的介紹。 歡迎閱讀每週電子報。 本週,我們特別著重於生產力。 我們將分享如何在生活的所有領域中提高生產力的提示和技巧。 希望您會喜歡並與您的朋友分享!
複雜指示 為名為 Contoso 的公司撰寫每週電子報的介紹。 其中應該提及我們上週的傑出全體會議,並感謝團隊過去幾個月的所有辛勞。 歡迎閱讀 Contoso 的每週電子報! 上週我們舉辦了一個傑出的全體會議,我想要感謝團隊在過去幾個月內付出的所有辛勞。 我們期待未來能更上一層樓,我確信,隨著團隊的努力和承諾,我們將達到更好的成就。 感謝您成為團隊的一部分,我期待未來的幾週和幾個月能與你們共事。 謝謝,[您的名字] 敬上。
複雜指示 撰寫每週電子報的介紹,包括下列各項:
- 我的公司名為 contoso
- 熱情的問候
- 感謝團隊數個月以來的辛勞
- 未來季度的正面展望
- 由 SLT 簽名
Contoso 團隊大家好! 我想花一點時間感謝你們過去幾個月以來的辛勞。 這幾個月大家都很辛苦,但你們合作無間並完成令人讚歎的工作。 我真的為你們感到驕傲。 對於下一季的展望,我覺的非常有信心。 我相信我們將達成更好的成就。 再次謝謝大家,資深領導團隊敬上。

主要內容

主要內容是指模型要處理或轉換的某類文字。 主要內容通常會與指示搭配使用。 簡單的範例就是語言翻譯。 在下列範例中,英文文字會被視為主要內容,而「翻譯為法文:」則是指示。

提示 Completion
您能告訴我前往博物館的路嗎?
翻譯成法文:
Pouvez-vous s'il vous plaît me dire comment aller au musée?

主要內容也可以更長。 在下列範例中,主要內容是有關時間複雜度的 Wikipedia 條目中的簡介區段,長度大約是 300 個字。 為方便顯示,我們已在資料表中縮減此內容。

提示 Completion
在電腦科學中,時間複雜度是計算型複雜度,用於描述執行演算法所需的電腦時間量。 時間複雜度的估計通常依據 [...]
以幾個句子摘要說明上述文字:
時間複雜度是演算法執行所需時間的量值。 其通常會以輸入大小的函式表示。 最常見的量值是最壞情況複雜度,也就是指定大小的輸入所需的最大時間量。
在電腦科學中,時間複雜度是計算型複雜度,用於描述執行演算法所需的電腦時間量。 時間複雜度的估計通常依據 [...]
TL;DR (因為太長而沒有讀下去)
演算法的時間複雜度是執行演算法所需的時間量。 時間複雜度通常是藉由計算演算法所執行的基本作業數目來預估,並假設每個基本作業需要固定的時間來執行。 時間複雜度通常會以輸入大小的函式表示。

GPT 模型也可以處理已結構化的主要內容。 在下列範例中,關於比利時啤酒的 TSV (在本文中以簡短形式顯示) 會作為提示一部分來傳遞至模型。 其能夠正確解譯內容,並回答有關資料的問題。

提示 Completion
Belgian Beer Brands
Beer name Beer style color ABV Brewery
"Chimay Gold: ""Doree""" trappist pale ale gold 4.80% Chimay Brewery (official trappist)
"Chimay Blue: ""Grande Reserve""" trappist dark ale dark 9.00%
[…]
參考上述表格,有多少種啤酒小於 6% ABV?
資料表中有 10 種啤酒小於 6% ABV。

範例

成功的提示通常依賴「一次」或「少樣本」學習的做法。 這是指包括模型預期行為的一或多個範例,通常是藉由包含輸入和輸出的組合。 此意義不在學習模型會持續變更,而是範例可讓模型更妥善地僅針對目前推斷給予預期回應。 沒有範例的提示用法有時稱為「零次」學習。 請注意,若使用聊天完成 API,樣本學習範例通常會以範例使用者/助理互動形式,新增至初始系統訊息之後的訊息陣列。

學習類型 提示 Completion
零次 標題:教練確信受傷事件不會阻礙勇士隊
主題:
教練確信受傷事件不會阻礙勇士隊的季賽。 球隊仍專注在他們的目標上,並持續努力達成目標。
樣本 標題:Twins' Correa 使用跳脫合約來測試自由球員制度
主題:棒球
標題:卡達世界盃設有醒酒區
主題:足球
標題:Yates:第 6 週的幻想足球情報
主題:橄欖球
標題:教練確信受傷事件不會阻礙勇士隊
主題:
籃球

上述範例說明樣本學習的效用。 如果沒有範例,模型似乎會猜測預期的行為,而範例會清楚告訴模型如何作業。 這也示範了模型的能力,其可以推斷想要的標籤類別,即使範例中沒有「籃球」標籤也一樣。

提示

暗示 (Cue) 會作為模型輸出的 "jumpstart",協助將模型導向預期的輸出。 這通常是作為模型建置基礎的前置詞。 在下列範例中,我們會示範引導故事包括重要元素的暗示。 暗示通常會與指示一起使用,但並非一定如此。 在下列範例中,模型將用來摘要說明冗長的公告電子郵件。 在其中一個案例中,暗示用來協助將焦點放在模型的輸出,而在另一個案例中,暗示用來建議特定輸出格式 (項目符號)。

在聊天完成 API 的內容中,指示會採用系統訊息的形式,而樣本範例會透過提供一系列的範例使用者/助理互動來表示,進而協助準備模型。

暗示數目 提示 Completion
0 績效考核是 Contoso 績效與發展方法的核心元件。 […]
摘要說明上述電子郵件訊息:
此電子郵件的目的是通知員工最近績效考核體驗有所變更,而績效考核是 Contoso 績效與發展方法的一部分。 這些變更包括改良的結構、升級的工具內使用者體驗,以及重點提示。 此外,員工現在還有選擇性的交談入門區段,可用來標記他們想要與其主管討論的主題。
1 績效考核是 Contoso 績效與發展方法的核心元件。 […]
摘要說明上述電子郵件訊息:
訊息的主要重點在於
Contoso 正在改善績效考核體驗,方法是更專注於核心優先項目、期望和影響。 此外,他們也會使用提示、資源和指導來升級工具內使用者體驗。 最後,他們會新增如何啟用全公司核心優先項目的指導。
2 績效考核是 Contoso 績效與發展方法的核心元件。 […]
摘要說明上述電子郵件訊息:
重點:
Contoso 將根據員工的意見反應,引進績效考核體驗的變更。
• 這些變更包括核心優先項目、期望和影響的新重點;升級的使用者體驗;和全公司核心優先項目的新指導。
• 績效考核是反映過去績效和學習,以及規劃未來優先項目和成長機會的時間。
• 員工和主管應該在績效考核會議之前撰寫評論。
• 每年至少應有兩個績效考核。
• 每次考核的投注時間應該維持一樣。

支援內容

支援內容是模型可用來以某種方式影響輸出的資訊。 其與主要內容不同,因為這不是工作的主要目標,但通常會與主要內容一起使用。 常見的範例包括內容相關的資訊,例如目前日期、使用者名稱、使用者喜好設定等等。 下列範例會使用支援內容來協助組織使用者的一組規劃的工作坊。 若沒有支援的 (重要主題),模型只會列出工作坊 (截斷內容以方便顯示),當收到重要主題的通知後,模型才能夠精確地將會議分組。

支援內容 提示 Completion
不含 工作坊清單:
標題描述
規劃工作坊啟動 請加入我們以開始舉辦工作坊! 聽我們的領導者談談未來一年的跨組優先事項和學習內容。 此活動的邀請已經傳送給每個 [...]
摘要說明上述工作坊,並依主題分組:
工作坊清單:
規劃工作坊啟動
- 規劃工作坊總結
- 核心會議
- 客戶導向的觀點
- 影響和主要焦點區域
- 最佳做法
- 加速應用程式採用 [...]
With 工作坊清單:
標題描述
規劃工作坊啟動 請加入我們以開始舉辦工作坊! 聽我們的領導者談談未來一年的跨組優先事項和學習內容。 此活動的邀請已經傳送給每個 [...]
我的重要主題:提示工程、搜尋、GPT 模型
摘要說明上述工作坊,並依我的重要主題分組:
1.提示工程:
- 新的提示工程提示
- 提示工程的藝術
2.搜尋:
- 內嵌向量搜尋簡介
3.GPT 模型:
- GPT-4 簡介
- GPT-35-Turbo 深入了解。

案例特定指引

雖然提示工程的原則可以跨許多不同的模型類型一般化,但某些模型需要特殊的提示結構。 針對 Azure OpenAI GPT 模型,目前有兩個不同的 API 可供提示工程使用:

  • Chat Completion API。
  • Completion API。

每個 API 都需要以不同的格式輸入資料,進而影響整體提示設計。 Chat Completion API 支援 GPT-35-Turbo 和 GPT-4 模型。 這些模型的設計目的是要以儲存在字典陣列內的特定類似聊天文字記錄 中格式化的輸入。

Completion API 支援較舊的 GPT-3 模型,而且具有更彈性的輸入需求,因為它會採用沒有特定格式規則的文字字串。

本節中的技術將教導您提高使用大型語言模型 (LLM) 所產生的響應精確度和基礎的策略。 不過,請務必記住,即使有效地使用提示工程,您仍然需要驗證模型產生的回應。 只是因為特別設計提示對於特定案例而言效果良好,不一定表示它會更廣泛地一般化至特定使用案例。 了解 LLM 的限制,就如同了解如何運用其優點一樣重要。

本指南不會深入探討 Chat Completion 訊息結構背後的機制。 如果您不熟悉以程式設計方式與 Chat Completions 模型互動,建議您先閱讀我們的 Chat Completion API 操作指南

注意

指南本節內容中的所有範例都針對基底 GPT-4 模型進行測試。 如果您要以其他語言閱讀本文的當地語系化版本,這些回應代表英文結果的當地語系化翻譯。 若要根據您用來提示模型的語言深入了解潛在限制,請參閱我們的負責任 AI 透明度資訊

小樣本學習

將語言模型調整為新工作的常見方式是使用小樣本學習。 在小樣本學習中,系統會提供一組訓練樣本作為提示的一部分,以提供模型的其他內容。

使用 Chat Completion API 時,使用者與助理之間的一系列訊息 (以新的提示格式撰寫) ,可作為小樣本學習的範例。 這些範例可用來定型模型,以特定方式回應、模擬特定行為,以及植入常見問題的解答。

系統訊息 小樣本範例
助理是一種智慧型聊天機器人,其設計目的是協助使用者回答其稅賦相關問題。
Instructions
- 僅回答與稅賦相關的問題。
- 如果您不確定答案,您可以說「我不知道」或「我不確定」,並建議使用者前往 IRS 網站以取得詳細資訊。
使用者 -「何時需要報稅?」
助理 -「在 2023 年,您必須在 4 月 18 日之前報稅。 日期晚於一般的 4 月 15 日期限,因為 2023 年 4 月 15 日是週六。 如需詳細資訊,請參閱 https://www.irs.gov/filing/individuals/when-to-file

使用者 -「如何檢查我的退款狀態?」
助理 - 「您可以瀏覽 https://www.irs.gov/refunds 來檢查稅務退款的狀態」

上表描述基本提示結構,但如需確切提示格式的詳細說明,您必須參考 Chat Completion 指南

非聊天案例

雖然 Chat Completion API 已最佳化以使用多回合交談,但也可用於非聊天案例。 例如,針對情感分析案例,您可以使用下列提示:

系統訊息 User 小幫手
您是助理,被設計來分析語音資料的情緒。 使用者將會貼上文字字串,而您將以說話者的回應評量回應。 評分範圍為 1-10 (10 分為最高)。 說明為何已提供此評等。 您好,感謝您致電 Contoso 藥局,我今天與您交談,我理解您的沮喪。Mary,您能告訴我您實際上試著在找什麼嗎?好的,當然很高興為您檢查一下。我在這裡看到您服用普通形式的立普妥,是嗎?好吧,所以我看到您的醫生在 2021 年停止開這些藥了。實際上,好吧,是的,我很樂意幫您檢查,因為有時系統會有差異,而且沒有回報,所以讓我看一下這裡,我看到您的醫生在 2012 年到 21 年給您開了這些藥,好吧,是的,根據醫生辦公室提供的最新記錄,您現在服用的是不同的藥物二甲雙胍。您想讓我們為您開一張 500 毫克的處方嗎?不客氣,Mary,如果我們今天還能為你做什麼,請告訴我們。 情緒評等:8
此文字中的說話者在解決客戶的問題時似乎有禮、樂於助人,而且很有耐心。 他們花點時間檢查資訊、提供清楚的解釋,並提供協助。 不過,評等不是 10,因為交談的某些部分仍有不確定的提示,這可能不會傳達完全信賴給客戶。

從清楚指示開始

提示中出現資訊的順序很重要。 這是因為 GPT 樣式模型是以特定方式建置,以定義其處理輸入的方式。 我們的研究建議,在分享其他內容資訊或範例之前,先告訴模型您想要在提示開始時執行的工作,有助於產生高品質的輸出。

注意

雖然仍建議遵循這項技術,但與舊版模型版本 (GPT-3 和先前的) 相反,我們的測試顯示無論是否使用這項技術,使用 ChatGPT 和 GPT-4 模型的模型回應都相同。 在下列範例的案例中,我們看到新增語句「數個來源 … 在提示的開頭或結尾處的火山爆發,不會在最終模型回應中造成任何變更。

系統訊息 User 小幫手
您是 AI 助理,可協助人員尋找資訊。 您的工作是確認下列內容片段集合中的特定引號是否支援「數個來源提及另一次大型火山爆發的機會」語句。
---
內容片段
[1] 專家說,西雅圖發生超級大地震的可能性為 14%
西雅圖 - 美國地質調查局估計,未來 50 年西雅圖發生 9 級地震的可能性為 14%。 「可惜的是,我們無法...

[2] 地震專家公佈了西雅圖「真正的大地震」的最新展望
華盛頓大學的一位地球物理學家表示:「我們認為,在未來 50 年內,約有 14% 的可能性會發生另一次約 9 級的地震...
---
語句「數個來源提及另一次大型火山爆發的機會」是否直接隱含或由內容片段陳述?
否,語句不會直接隱含或由內容片段陳述。 內容片段提及了「超級大地震」的機會,而「9 級地震」會在接下來 50 年發生在西雅圖,但沒有提及另一次大型火山爆發的機會。

在結尾重複指示

模型可能會容易受到近因偏差的影響,在此內容中表示提示結尾的資訊可能會對輸出產生更大的影響,而不是提示開頭的資訊。 因此,建議您在提示結尾時重複指示,並評估對所產生回應的影響。

對輸出進行質化

這是指在提示結尾包含幾個單字或片語,以取得遵循所需格式的模型回應。 例如,使用 這類 “Here’s a bulleted list of key points:\n- ” 提示可協助確定輸出格式為項目符號點清單。

系統訊息 User 小幫手
您是 AI 助理,可協助人員尋找資訊。 盡可能以最少的文字回答。 John Smith 已與 Lucy Smith 結婚。 他們有五個小孩,他擔任 Microsoft 的軟體工程師。 我應該執行哪些搜尋查詢來進行事實檢查? ## 其中一個可能的搜尋查詢是: 「John Smith 結婚 Lucy Smith 五位小孩軟體工程師 Microsoft」

在上述提示中,文字 有一個可能的搜尋查詢是: 質化模型以產生單一輸出。 如果沒有此提示,模型會產生數個搜尋查詢作為輸出。

新增清除語法

針對您的提示使用清楚的語法,包括標點符號、標題和區段標記,有助於傳達意圖,而且通常會讓輸出更容易剖析。

在下列範例中,分隔符號 (在這種情況下 ---) 已新增至不同資訊來源或步驟。 這可讓您使用 --- 作為停止條件來進行產生。 此外,區段標題或特殊變數會以大寫顯示,以區分它們。

系統訊息 User 小幫手
您是 AI 助理,可協助人員尋找資訊。 您將讀取段落,然後向搜尋引擎發出查詢,以便進行事實檢查。 也說明查詢。
---
段落
John Smith 已與 Lucy Smith 結婚。 他們有五個小孩,他擔任 Microsoft 的軟體工程師。 我應該執行哪些搜尋查詢來進行事實檢查?
---
查詢
1.「John Smith Microsoft」- 檢查 John Smith 是否確實在 Microsoft 任職。
2.「John Smith Lucy Smith」- 檢查 John Smith 是否已與 Lucy Smith 結婚。
3.「John Smith 小孩」- 檢查 John Smith 是否有五個小孩。

如果您不確定要使用的語法,請考慮使用 Markdown 或 XML。 模型已在 XML 和 Markdown 中定型大量網頁內容,可提供更好的結果。

將工作細分

大型語言模型 (LLM) 在工作細分為較小的步驟時,通常效能較佳。 例如,在稍早參考的搜尋查詢提示中,可以重新建構提示,以便先指示模型擷取相關事實,然後指示產生可用來驗證這些事實的搜尋查詢。

系統訊息 User 小幫手
您是 AI 助理,可協助人員尋找資訊。 您將讀取段落,然後向搜尋引擎發出查詢,以便進行事實檢查。
---
段落
John Smith 已與 Lucy Smith 結婚。 他們有五個小孩,他擔任 Microsoft 的軟體工程師。 我應該執行哪些搜尋查詢來進行事實檢查?
---
現在,您將擷取事實宣告,並發出查詢以進行事實檢查。 發出查詢時,請使用函式 SEARCH("query")

事實宣告
1.John Smith 已與 Lucy Smith 結婚
2. 他們有五個兒童
3. 他擔任 Microsoft 的軟體工程師

查詢
SEARCH("John Smith 結婚 Lucy Smith")
SEARCH("John Smith 家庭成員人數")
SEARCH("John Smith Microsoft 軟體工程師")

請注意,使用清楚的語法來區分區段並質化輸出。 在這個簡單的範例中,將工作從一個步驟細分為兩個步驟並不明顯,但在嘗試對具有許多事實宣告的較長文字執行此動作時,將工作細分可能會造成顯著的差異。

使用能供性

有時候,我們可以讓模型使用能供性 ,而不是依賴它自己的參數來取得資訊和答案。 例如,搜尋可能是一種能供性,可協助減輕產生答案的負擔,以及取得最新的資訊。

使用能供性的方法之一,就是在模型產生能供性呼叫之後停止產生,然後將結果貼回提示。 以下是執行上述 SEARCH 呼叫之後,後續呼叫的範例。 請注意,我們如何將搜尋結果貼到提示中,並取代先前的 SEARCH 呼叫。

系統訊息 User 小幫手
您是 AI 助理,可協助人員尋找資訊。 您將讀取段落、擷取事實宣告,然後使用搜尋引擎結果進行事實檢查
---
段落
John Smith 已與 Lucy Smith 結婚。 他們有五個小孩,他擔任 Microsoft 的軟體工程師。 我應該執行哪些搜尋查詢來進行事實檢查?
---
事實宣告
- John Smith 已與 Lucy Smith 結婚
- John 和 Lucy 有五個小孩
- John 擔任 Microsoft 的軟體工程師
---
以下是發出來研究上述宣告的各種搜尋查詢:
搜尋查詢
- John Smith 已與 Lucy Smith 結婚
- John Smith 小孩數目
- John Smith 軟體工程師 Microsoft
---
以下是搜尋結果的內容片段:
內容片段:
[1] … John Smith 的結婚日期是 2012 年 9 月 25 日 …
[2] … John Smith 由他妻子 Lucy 的陪同去參加派對
[3]John 由他的兩個女兒和三個兒子的陪同去看足球賽
[4] … 在 Microsoft 工作 10 年之後,Smith 已建立自己的新創公司 Tailspin Toys
[5] John M 是鎮上的工匠,他已與 Fiona 結婚。 他們有一個名為 Lucy 的女兒
---
根據內容片段,對上述每個事實宣告進行事實檢查:
- John Smith 已與 Lucy Smith 結婚:已確認。 內容片段 [1] 和 [2] 兩者都提及 John Smith 的妻子為 Lucy。

- John 和 Lucy 有五個小孩:已確認。 內容片段 [3] 提及 John 由兩個女兒和三個兒子陪同。

- John 擔任 Microsoft 的軟體工程師:部分確認。 內容片段 [4] 提及 John 在 Microsoft 工作 10 年的時間,但並未明確指出他目前在該處工作。 可能需要進一步研究,才能確認他目前的雇用狀態。

思維鏈提示

這是細分工作技術的變化。 在此方法中,系統會指示模型回應逐步執行,並呈現涉及的所有步驟,而不是將工作分割成較小的步驟。 這麼做可降低結果不準確的可能性,並讓評估模型回應更容易。

系統訊息 User 小幫手
您是 AI 助理,可協助人員尋找資訊。 在雪梨舉行的奧運上,誰是獲得最多榮譽 (獎牌數最多)的個人運動員? 在回應中採取逐步方法、引述來源並提供理由,然後再以下列格式分享最終答案:答案為: <name> 步驟 1:判斷雪梨奧運的年份。 雪梨奧運於 2000 年舉辦。

步驟 2:尋找在 2000 年雪梨奧運中贏得多個獎牌的個人運動員清單。

根據奧運的官方網站,在 2000 年雪梨奧運中,有數位個人運動員贏得多個獎牌。 一些值得注意的姓名包括:
• Ian Thorpe (澳洲) - 3 金、2 銀、0 銅
• Pieter van den Hoogenband (荷蘭) - 2 金、0 銀、2 銅
• Lenny Krayzelburg (美國) - 3 金、0 銀、0 銅
• Inge de Bruijn (荷蘭) - 3 金、1 銀、0 銅

步驟 3:判斷具有最多獎牌的運動員。 在檢閱在 2000 年雪梨奧運中贏得多個獎牌的個人運動員清單之後,我們發現最多獎牌的運動員是澳洲的 Ian Thorpe,總共贏得 5 個獎牌 (3 金和 2 銀)。

因此,答案為:Ian Thorpe。

指定輸出結構

使用提示來指定輸出的結構,可能會對結果的本質和品質產生重大影響。 有時候系統訊息輸入為「只撰寫真實事實」或「不要杜撰資訊」可能不是適當的風險降低措施。 相反地,要求模型回應也包含引文有助於減少不正確回應的普遍程度。

如果您指示模型在製作語句時引用來源資料,這些語句更可能有依據。 要求引文會使得模型每次產生回應時必須發出兩個錯誤:第一個錯誤是杜撰回應,而第二個錯誤是不良的引文。 請注意,引文越接近其支援的文字,模型預期引文所需的距離越短,這表示內嵌引文比內容結尾的引文更能降低誤用內容產生的風險。

同樣地,如果您要求模型從段落擷取事實語句,它可能會擷取複合語句,例如「X 正在執行 Y 和 Z」(這可能會較難驗證)。 您可以藉由指定輸出結構,例如 (entity1、relationship、entity2) ,來避免此問題。

下列範例顯示引文的使用方式,以及引導模型回應以符合已定義的結構。

系統訊息 User 小幫手
您是 AI 助理,可協助人員尋找資訊 列出客戶支援專員在下列交談中呈現的不同行為。
---
您好,感謝您致電 Contoso 藥局,我今天與您交談,我理解您的沮喪。Mary,您能告訴我您實際上試著在找什麼嗎?好的,當然很高興為您檢查一下。我在這裡看到您服用普通形式的立普妥,是嗎?好吧,所以我看到您的醫生在 2021 年停止開這些藥了。實際上,好吧,是的,我很樂意幫您檢查,因為有時系統會有差異,而且沒有回報,所以讓我看一下這裡,我看到您的醫生在 2012 年到 21 年給您開了這些藥,好吧,是的,根據醫生辦公室提供的最新記錄,您現在服用的是不同的藥物二甲雙胍。您想讓我們為您開一張 500 毫克的處方嗎?不客氣,Mary,如果我們今天還能為你做什麼,請告訴我們。
---
客戶支援專員的回應如何?
使用格式 BEHAVIOR("原因"),分類並列出其各種行為,以及引用分類背後的原因
1. 問候語 BEHAVIOR("專員會以問候語開始交談,並詢問來電者的姓名")
2. 同理心 BEHAVIOR("專員認可 Mary 的挫折,並嘗試瞭解她的疑慮")
3. 細心 BEHAVIOR("專員會聆聽客戶的問題,並詢問更多詳細資料")
4. 主動 BEHAVIOR("專員主動為客戶檢查問題")
5.資訊 BEHAVIOR("專員提供有關客戶處方歷史記錄的相關資訊")
6. 徹底 BEHAVIOR("專員檢查系統中任何可能的差距,並提供完整的回應")
7. 確認 BEHAVIOR("專員會向客戶確認目前的藥物")
8.解決方案導向 BEHAVIOR("專員主動為客戶提供新的處方")
9.有禮貌的 BEHAVIOR("專員感謝客戶,並視需要提供進一步的協助")
系統訊息 User 小幫手
您是 AI 助理,可協助人員尋找資訊。 根據文字中看到的模式,將下列新聞標題叢集到主題類別。 也提及如何定義這些類別背後的原因。
輸出格式:
{
"TOPIC_NAME": "",
"HEADLINES": [],
"REASONING": ""
}

輸入新聞標題:
1.「使用 AR + ML 從書籍到簡報只需 10 秒」
2.「1993 年 32 歲的 Yann LeCun 展示世界第一個用於文字識別的卷積網路示範」
3.「套用至動畫繪製的一階運動模型」
4.「Robinhood 和其他仲介實際上封鎖了 $GME、$NOK、$BB、$AMC 的購買; 允許銷售」
5.「United Airlines 股價盤前交易下跌逾 5%」
輸出:

{
"ARTIFICIAL_INTELLIGENCE": {
"HEADLINES": [
"使用 AR + ML 從書籍到簡報只需 10 秒",
"1993 年 32 歲的 Yann LeCun 展示世界第一個用於文字識別的卷積網路示範",
"套用至動畫繪製的一階運動模型"
],
"REASONING": "這些標題與人工智慧、機器學習及其各種領域中的應用程式相關。"
},
"FINANCIAL_MARKETS": {
"HEADLINES": [
"Robinhood 和其他仲介實際上封鎖了 $GME、$NOK、$BB、$AMC 的購買; 允許銷售",
"United Airlines 股價盤前交易下跌逾 5%",
"比特幣在一年前的今天接近 $20,000 美元"
],
"REASONING": "這些標題與金融市場、股票、加密貨幣和交易平台相關。"
}
}

溫度和 Top_p 參數

變更溫度參數會變更模型的輸出。 溫度參數可以在 0 到 2 之間設定。 較高的值 (例如 0.7) 會讓輸出更具隨機性,並產生更分歧的回應,而較低的值 (例如 0.2) 會讓輸出更聚焦且更具體。 使用較高的溫度可以產生虛構的故事。 若要產生法律文件,建議使用較低溫度。 Top_probability 是另一個參數,而且與溫度參數類似,因為它也會控制模型回應的隨機性,但會以不同的方式執行。 一般建議一次改變這兩個參數的其中一個,而不是兩個參數。

提供基礎內容

提供可靠答案的最有效方式之一是提供模型資料,以從 (基礎資料) 繪製其回應。 如果您的使用案例依賴最新的可靠資訊,而且並非單純的創意案例,強烈建議您提供基礎資料。 一般而言,若能讓來源資料更接近您想要的答案最終形式,模型需要執行的工作量就會越少,這表示發生錯誤的機會較少。 以下是一個範例,其中系統會提供一個最近的部落格,描述 Azure OpenAI 服務中 GPT-4 的推出,並要求提供一些早期客戶的名單。

系統訊息 User 小幫手
您是 AI 助理,可協助人員尋找資訊。 您將以獨佔方式從下列文字提供答案,並以 100 個字或更少字回應:
「在 Microsoft,我們不斷探索新方式來發揮創意、提高生產力和提升技能,讓更多人能夠受益於使用 AI。 這可讓客戶 …

  藉此減少模型產生有害回應的可能性。」1

以 100 個字或更少字回答。 盡可能使用項目符號清單。
Azure OpenAI 服務 GPT-4 模型的一些早期客戶是誰? 以下是 Azure OpenAI 服務 GPT-4 模型的一些早期客戶:
- Epic Healthcare:他們計畫使用 GPT-4 來協助醫生和護士花較少的時間進行資料輸入和調查。
- Coursera:他們使用 Azure OpenAI 服務搭配 GPT-4,在其平台上建立新的 AI 支援學習體驗。
- Coca-Cola:他們使用 Azure OpenAI 來建置知識中樞,並計畫利用 GPT-4 的多模式功能進行行銷、廣告、公共關係和客戶關係。
- 其他所有規模的公司都使用 Azure AI 來改善客戶體驗、摘要長格式內容、協助撰寫軟體,以及藉由預測正確的稅賦資料來降低風險。

1 來自 Azure OpenAI GPT-4 啟動部落格的文字。

最佳作法

  • 保持具體。 盡可能少進行解譯。 限制作業空間。
  • 具描述性。 使用類比。
  • 加倍強調。 有時候您可能需要自行重複模型。 提供主要內容前後的指示、使用指示和提示等等。
  • 順序很重要。 您對模型呈現資訊的順序可能會影響輸出。 不論您將指令置於內容之前 (請摘要以下...) 或之後 (請摘要上述...),會讓輸出產生不同的結果。 即使是小樣本範例的順序也很重要。 這稱為「近因偏差」。
  • 為模型提供得到結果的可能性。 如果模型無法完成指派的工作,有時提供替代路徑可能會很有幫助。 例如,在一段文字上詢問問題時,您可能會包含類似「如果答案不存在,則回應「找不到」之類的內容。」這可協助模型避免產生誤判回應。

空間效率

雖然輸入大小隨著每個新一代的 GPT 模型而增加,但仍會有比模型所能處理的資料更多的案例。 GPT 模型會將字組分成「語彙基元」。雖然常見的多音節單字通常是單一語彙基元,但較不常見的字組會被分成音節。 語彙基元有時可能違反直覺,如下列範例所示,其中示範不同日期格式的語彙基元界限。 在此案例中,拼出整個月份比完整數值日期更節省空間。 目前語彙基元支援的範圍是舊版 GPT-3 模型的 2,000 個語彙基元,到最新 GPT-4 模型 32k 版本的 32,768 個語彙基元。

文字字串的螢幕擷取畫面,其中以醒目顏色畫出語彙基元界限。

由於此空間有限,請務必儘可能有效率地加以使用。

  • 資料表 - 如上一節中的範例所示,GPT 模型可以輕鬆地了解表格式的格式化資料。 這種包括資料的方式,比在每個欄位前面加上名稱 (例如 JSON),可能更加可以節省空間。
  • 空白字元 - 連續空白字元會被視為個別的語彙基元,此方式很容易浪費空間。 另一方面,字組前面的空格通常會被視為與字組相同的語彙基元部分。 請小心使用空白字元。若使用空格即可,就不要使用標點符號。