亚洲av无码成h人动漫无遮挡,特级欧美aaaaaaa免费观看,丝袜制服av熟女♀,亚洲avav天堂av在线网阿v,少妇人妻真实偷人精品视频

OPENAI推出的CHATGPT提示詞工程指南!

AI應用信息2年前 (2023)更新 管理員
339 0

本指南分享了從 GPT-4 等大型語言模型(有時稱為 GPT 模型)獲得更好結(jié)果的策略和策略。有時可以組合使用此處描述的方法以獲得更好的效果。我們鼓勵嘗試找到最適合您的方法。

此處演示的一些示例目前僅適用于我們最強大的模型gpt-4。一般來說,如果您發(fā)現(xiàn)某個模型在某項任務上失敗,并且有一個功能更強大的模型可用,那么通常值得使用功能更強大的模型再次嘗試。

您還可以探索示例提示,展示我們的模型的功能:

提示示例
探索提示示例以了解 GPT 模型的功能

獲得更好結(jié)果的六項策略

寫下清晰的指示

這些模型無法讀懂你的想法。如果輸出太長,請要求簡短答復。如果輸出太簡單,請要求專家級別的寫作。如果您不喜歡這種格式,請演示您希望看到的格式。模型猜測你想要什么的次數(shù)越少,你得到它的可能性就越大。

策略:

提供參考文字

語言模型可以自信地發(fā)明假答案,特別是當被問及深奧的主題或引文和 URL 時。就像一張筆記可以幫助學生在考試中取得更好的成績一樣,為這些模型提供參考文本可以幫助減少作答次數(shù)。

策略:

將復雜的任務拆分為更簡單的子任務

正如軟件工程中將復雜系統(tǒng)分解為一組模塊化組件是良好實踐一樣,提交給語言模型的任務也是如此。復雜的任務往往比簡單的任務具有更高的錯誤率。此外,復雜的任務通??梢员恢匦露x為更簡單任務的工作流程,其中早期任務的輸出用于構(gòu)造后續(xù)任務的輸入。

策略:

給模型時間“思考”

如果要求將 17 乘以 28,您可能不會立即知道,但隨著時間的推移仍然可以算出來。同樣,模型在嘗試立即回答而不是花時間找出答案時會犯更多推理錯誤。尋求“思想鏈”在答案可以幫助模型更可靠地推理出正確答案之前。

策略:

使用外部工具

通過向模型提供其他工具的輸出來彌補模型的弱點。例如,文本檢索系統(tǒng)(有時稱為 RAG 或檢索增強生成)可以告訴模型相關文檔。像 OpenAI 的代碼解釋器這樣的代碼執(zhí)行引擎可以幫助模型進行數(shù)學計算并運行代碼。如果一項任務可以通過工具而不是語言模型更可靠或更有效地完成,那么可以卸載它以充分利用兩者。

策略:

系統(tǒng)地測試變更

如果您可以衡量性能,那么提高性能就會更容易。在某些情況下,對提示的修改將在一些孤立的示例上實現(xiàn)更好的性能,但會導致在一組更具代表性的示例上整體性能變差。因此,為了確保更改對性能有凈積極作用,可能有必要定義全面的測試套件(也稱為“評估”)。

戰(zhàn)術:

策略

上面列出的每個策略都可以用特定的策略來實例化。這些策略旨在提供嘗試的想法。它們絕不是完全全面的,您應該隨意嘗試此處未列出的創(chuàng)意。

策略:寫下清晰的說明

策略:在查詢中包含詳細信息以獲得更相關的答案

為了獲得高度相關的響應,請確保請求提供任何重要的詳細信息或上下文。否則,你將讓模型來猜測你的意思。

更差更好的
如何在 Excel 中添加數(shù)字?如何在 Excel 中添加一行美元金額?我想對整張行自動執(zhí)行此操作,所有總計都在右側(cè)名為“總計”的列中結(jié)束。
誰是總統(tǒng)?誰是 2021 年墨西哥總統(tǒng)?選舉頻率如何?
編寫代碼來計算斐波那契數(shù)列。編寫一個 TypeScript 函數(shù)來高效計算斐波那契數(shù)列。自由地注釋代碼以解釋每部分的作用以及為什么這樣編寫。
總結(jié)會議記錄。用一個段落總結(jié)會議記錄。然后寫下演講者的 Markdown 列表以及他們的每個要點。最后,列出發(fā)言人建議的后續(xù)步驟或行動項目(如果有)。

策略:要求模特采用角色

系統(tǒng)消息可用于指定模型在其回復中使用的角色。

系統(tǒng)
當我請求幫助寫一些東西時,你會回復一份文檔,其中每個段落至少包含一個笑話或有趣的評論。
用戶
給我的鋼螺栓供應商寫一封感謝信,感謝他們在短時間內(nèi)準時交貨。這使我們能夠交付一份重要的訂單。

在游樂場開放

策略:使用分隔符清楚地指示輸入的不同部分

三引號、XML 標簽、節(jié)標題等分隔符可以幫助劃分要區(qū)別對待的文本節(jié)。

用戶
用俳句總結(jié)由三引號分隔的文本。 “”“在此插入文本”“”

在游樂場開放

系統(tǒng)
您將獲得兩篇關于同一主題的文章(用 XML 標簽分隔)。首先總結(jié)每篇文章的論點。然后指出哪一個提出了更好的論點并解釋原因。
用戶
<文章>在此插入第一篇文章; <文章>在此插入第二篇文章;

在游樂場開放

系統(tǒng)
您將獲得論文摘要和建議的標題。論文標題應該讓讀者清楚地了解論文的主題,但也應該引人注目。如果標題不符合這些標準,請?zhí)岢?5 個替代方案。
用戶
摘要:在此插入摘要 標題:在此插入標題

在游樂場開放

對于諸如此類的簡單任務,使用分隔符可能不會對輸出質(zhì)量產(chǎn)生影響。然而,任務越復雜,消除任務細節(jié)的歧義就越重要。不要讓模型準確地理解你對他們的要求。

策略:指定完成任務所需的步驟

有些任務最好指定為一系列步驟。明確地寫出這些步驟可以使模型更容易遵循它們。

系統(tǒng)
使用以下分步說明來響應用戶輸入。 第 1 步 – 用戶將為您提供三引號中的文本。用一個句子總結(jié)這篇文章,并加上前綴“摘要:”。 步驟 2 – 將步驟 1 中的摘要翻譯成西班牙語,并添加前綴“翻譯:”。
用戶
“”“在此插入文本”“”

在游樂場開放

策略:提供例子

提供適用于所有示例的一般說明通常比通過示例演示任務的所有排列更有效,但在某些情況下提供示例可能更容易。例如,如果您打算讓模型復制響應用戶查詢的特定風格,而這種風格很難明確描述。這被稱為“幾次射擊”。提示。

系統(tǒng)
以一致的風格回答。
用戶
教我耐心。
助手
河流沖刷出最深的山谷,發(fā)源于溫和的泉水;最偉大的交響樂源自一個音符;最復雜的掛毯都是從一根單獨的線開始的。
用戶
教我有關海洋的知識。

在游樂場開放

策略:指定所需的輸出長度

您可以要求模型生成給定目標長度的輸出。目標輸出長度可以根據(jù)單詞、句子、段落、要點等的計數(shù)來指定。但請注意,指示模型生成特定數(shù)量的單詞并不能高精度工作。該模型可以更可靠地生成具有特定數(shù)量的段落或要點的輸出。

用戶
用大約 50 個單詞概括由三引號分隔的文本。 “”“在此插入文本”“”

在游樂場開放

用戶
總結(jié)兩段中用三引號分隔的文本。 “”“在此插入文本”“”

在游樂場開放

用戶
將由三引號分隔的文本總結(jié)為 3 個要點。 “”“在此插入文本”“”

在游樂場開放

策略:提供參考文本

策略:指導模型使用參考文本回答

如果我們可以為模型提供與當前查詢相關的可信信息,那么我們可以指示模型使用提供的信息來組成其答案。

系統(tǒng)
使用提供的由三重引號引起來的文章來回答問題。如果在文章中找不到答案,請寫“我找不到答案”。
用戶
<插入文章,每篇文章都用三引號分隔> 問題:<在此插入問題>

在游樂場開放

鑒于所有模型的上下文窗口都有限,我們需要某種方法來動態(tài)查找與所提出的問題相關的信息。?嵌入可用于實現(xiàn)高效的知識檢索。請參閱策略“使用基于嵌入的搜索實現(xiàn)高效的知識檢索”,了解有關如何實現(xiàn)此策略的更多詳細信息。

策略:指示模型通過引用參考文本來回答

如果輸入已補充相關知識,則可以直接要求模型通過引用所提供文檔中的段落來為其答案添加引用。請注意,輸出中的引用可以通過所提供文檔中的字符串匹配以編程方式進行驗證。

系統(tǒng)
您將獲得一份由三重引號和一個問題分隔的文檔。您的任務是僅使用提供的文檔回答問題,并引用用于回答問題的文檔段落。如果文檔不包含回答該問題所需的信息,則只需寫:“信息不足”。如果提供了問題的答案,則必須附有引文注釋。使用以下格式引用相關段落({“引用”:…})。
用戶
“”“”<在此處插入文檔>“”“” 問題:<在此插入問題>

在游樂場開放

策略:將復雜的任務拆分為更簡單的子任務

策略:使用意圖分類來識別與用戶查詢最相關的指令

對于需要大量獨立指令集來處理不同情況的任務,首先對查詢類型進行分類并使用該分類來確定需要哪些指令可能會很有幫助。這可以通過定義與處理給定類別中的任務相關的固定類別和硬編碼指令來實現(xiàn)。該過程還可以遞歸地應用以將任務分解為一系列階段。這種方法的優(yōu)點是每個查詢僅包含執(zhí)行任務下一階段所需的指令,與使用單個查詢執(zhí)行整個任務相比,這可以降低錯誤率。這還可以降低成本,因為較大的提示運行成本更高(查看定價信息)。

例如,假設對于客戶服務應用程序,查詢可以有效地分類如下:

系統(tǒng)
我們將向您提供客戶服務查詢。將每個查詢分為主要類別和次要類別。提供 json 格式的輸出,其中包含以下鍵:主要和次要。 主要類別:計費、技術支持、帳戶管理或一般查詢。 計費二級類別: – 取消訂閱或升級 – 添加付款方式 – 收費說明 – 對收費提出爭議 技術支持二級分類: – 故障排除 – 設備兼容性 – 軟件更新 賬戶管理二級分類: – 重設密碼 – 更新個人信息 – 關閉賬戶 – 賬戶安全 一般查詢二級類別: – 產(chǎn)品信息 – 價錢 – 反饋 – 與人類交談
用戶
我需要讓我的互聯(lián)網(wǎng)重新工作。

在游樂場開放

根據(jù)客戶查詢的分類,可以向模型提供一組更具體的指令,以供其處理后續(xù)步驟。例如,假設客戶需要“故障排除”方面的幫助。

系統(tǒng)
您將收到需要在技術支持環(huán)境中進行故障排除的客戶服務查詢。通過以下方式幫助用戶: – 請他們檢查所有進出路由器的電纜是否已連接。請注意,隨著時間的推移,電纜松動是很常見的。 – 如果所有電纜均已連接并且問題仍然存在,請詢問他們正在使用哪種路由器型號 – 現(xiàn)在您將建議他們?nèi)绾沃匦聠釉O備: — 如果型號是 MTD-327J,建議他們按下紅色按鈕并按住 5 秒鐘,然后等待 5 分鐘后再測試連接。 — 如果型號是 MTD-327S,建議他們拔下并重新插入,然后等待 5 分鐘再測試連接。 – 如果客戶的問題在重新啟動設備并等待 5 分鐘后仍然存在,請通過輸出 {“IT support requested”} 將其連接到 IT 支持。 – 如果用戶開始詢問與此主題無關??的問題,請確認他們是否想結(jié)束當前有關故障排除的聊天,并根據(jù)以下方案對他們的請求進行分類: <在此插入上面的一級/二級分類方案>
用戶
我需要讓我的互聯(lián)網(wǎng)重新工作。

在游樂場開放

請注意,模型已被指示發(fā)出特殊字符串來指示對話狀態(tài)何時發(fā)生變化。這使我們能夠?qū)⑽覀兊南到y(tǒng)變成一個狀態(tài)機,其中狀態(tài)決定注入哪些指令。通過跟蹤狀態(tài)、哪些指令與該狀態(tài)相關,以及可選地允許從該狀態(tài)進行哪些狀態(tài)轉(zhuǎn)換,我們可以為用戶體驗設置護欄,而使用不太結(jié)構(gòu)化的方法很難實現(xiàn)這一點。

策略:對于需要很長對話的對話應用,總結(jié)或過濾之前的對話

由于模型具有固定的上下文長度,因此用戶和助手之間的對話(其中整個對話都包含在上下文窗口中)無法無限期地繼續(xù)。

解決此問題有多種解決方法,其中之一是總結(jié)對話中的先前回合。一旦輸入的大小達到預定的閾值長度,這可能會觸發(fā)總結(jié)部分對話的查詢,并且先前對話的摘要可以作為系統(tǒng)消息的一部分包括在內(nèi)?;蛘?,可以在整個對話過程中在后臺異步總結(jié)之前的對話。

另一種解決方案是動態(tài)選擇與當前查詢最相關的對話的先前部分。請參閱策略“使用基于嵌入的搜索實現(xiàn)高效的知識檢索”。

策略:分段總結(jié)長文檔并遞歸構(gòu)建完整摘要

由于模型具有固定的上下文長度,因此它們不能用于總結(jié)長于上下文長度減去單個查詢中生成的摘要長度的文本。

要總結(jié)一個很長的文檔(例如一本書),我們可以使用一系列查詢來總結(jié)文檔的每個部分。章節(jié)摘要可以連接和總結(jié),生成摘要的摘要。這個過程可以遞歸地進行,直到總結(jié)整個文檔。如果有必要使用前面部分的信息來理解后面的部分,那么另一個有用的技巧是在書中任何給定點之前包含文本的運行摘要,同時總結(jié)該點的內(nèi)容。 OpenAI 在之前的研究中已經(jīng)使用 GPT-3 的變體研究了這種書籍總結(jié)過程的有效性。

策略:給模型時間“思考”

策略:指示模型在急于得出結(jié)論之前找出自己的解決方案

有時,當我們明確指示模型在得出結(jié)論之前從第一原理進行推理時,我們會得到更好的結(jié)果。假設我們想要一個模型來評估學生對數(shù)學問題的解決方案。解決這個問題最明顯的方法是簡單地詢問模型學生的解決方案是否正確。

系統(tǒng)
確定學生的解決方案是否正確。
用戶
問題陳述:我正在建造一個太陽能發(fā)電裝置,我需要幫助解決財務問題。 – 土地成本 100 美元/平方英尺 – 我可以以 250 美元/平方英尺的價格購買太陽能電池板 – 我協(xié)商了一份維護合同,每年將花費我 10 萬美元,每平方英尺額外花費 10 美元 第一年運營的總成本是多少,與平方英尺數(shù)的函數(shù)關系。 學生的解決方案:設 x 為裝置的尺寸(以平方英尺為單位)。 1.土地成本:100x 2.太陽能電池板成本:250x 3.維護成本:100,000 + 100x 總成本:100x + 250x + 100,000 + 100x = 450x + 100,000
助手
該學生的解決方案是正確的。

在游樂場開放

但這位同學的解法其實并不正確!我們可以通過提示模型首先生成自己的解決方案來讓模型成功注意到這一點。

系統(tǒng)
首先制定自己的問題解決方案。然后將您的解決方案與學生的解決方案進行比較,并評估學生的解決方案是否正確。在您自己完成問題之前,不要確定學生的解決方案是否正確。
用戶
問題陳述:我正在建造一個太陽能發(fā)電裝置,我需要幫助解決財務問題。 – 土地成本 100 美元/平方英尺 – 我可以以 250 美元/平方英尺的價格購買太陽能電池板 – 我協(xié)商了一份維護合同,每年將花費我 10 萬美元,每平方英尺額外花費 10 美元 第一年運營的總成本是多少,與平方英尺數(shù)的函數(shù)關系。 學生的解決方案:設 x 為裝置的尺寸(以平方英尺為單位)。 1.土地成本:100x 2.太陽能電池板成本:250x 3.維護成本:100,000 + 100x 總成本:100x + 250x + 100,000 + 100x = 450x + 100,000
助手
設 x 為安裝尺寸(以平方英尺為單位)。 1.土地成本:100x 2.太陽能電池板成本:250x 3.維護成本:100,000 + 10x 總成本:100x + 250x + 100,000 + 10x = 360x + 100,000 該學生的解決方案是錯誤的。他們在維護成本計算中犯了一個錯誤,使用了 100x 而不是 10x。第一年運營的正確總成本是 360x + 100,000。

在游樂場開放

策略:使用內(nèi)心獨白或一系列查詢來隱藏模型的推理過程

前面的策略表明,模型有時在回答特定問題之前詳細推理問題很重要。對于某些應用程序,模型用于得出最終答案的推理過程不適合與用戶共享。例如,在輔導應用程序中,我們可能希望鼓勵學生得出自己的答案,但模型關于學生解決方案的推理過程可能會向?qū)W生揭示答案。

內(nèi)心獨白是一種可以用來緩解這種情況的策略。內(nèi)心獨白的想法是指示模型將原本對用戶隱藏的部分輸出放入結(jié)構(gòu)化格式中,以便于解析它們。然后,在向用戶呈現(xiàn)輸出之前,將解析輸出并且僅使部分輸出可見。

系統(tǒng)
請按照以下步驟回答用戶的疑問。 步驟 1 – 首先找出你自己的問題解決方案。不要依賴學生的解決方案,因為它可能是不正確的。將此步驟的所有工作用三引號 (“””) 括起來。 第 2 步 – 將您的解決方案與學生的解決方案進行比較,并評估學生的解決方案是否正確。將此步驟的所有工作用三引號 (“””) 括起來。 第 3 步 – 如果學生犯了錯誤,請確定在不泄露答案的情況下可以給學生什么提示。將此步驟的所有工作用三引號 (“””) 括起來。 步驟 4 – 如果學生犯了錯誤,請向?qū)W生提供上一步的提示(在三重引號之外)。而不是寫“步驟 4 – …”寫“提示:”。
用戶
問題陳述:<插入問題陳述> 學生解決方案:<插入學生解決方案>

在游樂場開放

或者,這可以通過一系列查詢來實現(xiàn),其中除了最后一個查詢之外,所有查詢的輸出都對最終用戶隱藏。

首先,我們可以要求模型自己解決問題。由于這個初始查詢不需要學生的解決方案,因此可以省略。這提供了額外的優(yōu)勢,即模型的解決方案不會因?qū)W生嘗試的解決方案而產(chǎn)生偏差。

用戶
<插入問題陳述>

在游樂場開放

接下來,我們可以讓模型使用所有可用信息來評估學生解決方案的正確性。

系統(tǒng)
將您的解決方案與學生的解決方案進行比較,并評估學生的解決方案是否正確。
用戶
問題陳述:“”“”<插入問題陳述>“”“” 您的解決方案:“”“<插入模型生成的解決方案>”“” 學生的解決方案:“”“<插入學生的解決方案>”“”

在游樂場開放

最后,我們可以讓模型使用自己的分析來以樂于助人的導師的角色構(gòu)建回復。

系統(tǒng)
你是一名數(shù)學導師。如果學生犯了錯誤,請以不透露答案的方式向?qū)W生提供提示。如果學生沒有犯錯,只需給他們一個鼓勵性的評論。
用戶
問題陳述:“”“”<插入問題陳述>“”“” 您的解決方案:“”“<插入模型生成的解決方案>”“” 學生的解決方案:“”“<插入學生的解決方案>”“” 分析:“”“”<插入上一步生成的模型分析>“”“”

在游樂場開放

策略:詢問模型在之前的過程中是否遺漏了任何內(nèi)容

假設我們使用一個模型來列出與特定問題相關的來源的摘錄。列出每個摘錄后,模型需要確定是否應該開始編寫另一個摘錄或者是否應該停止。如果源文檔很大,模型通常會過早停止并且無法列出所有相關摘錄。在這種情況下,通過使用后續(xù)查詢提示模型查找之前傳遞中錯過的任何摘錄,通常可以獲得更好的性能。

系統(tǒng)
您將獲得一份由三重引號分隔的文檔。您的任務是選擇與以下問題相關的摘錄:“人工智能歷史上發(fā)生了哪些重大范式轉(zhuǎn)變?!?確保摘錄包含解釋它們所需的所有相關上下文 – 換句話說,不要提取缺少重要上下文的小片段。提供 JSON 格式的輸出,如下所示: [{“摘錄”:“…”}, … {“摘錄”:“…”}]
用戶
“”“”<在此處插入文檔>“”“”
助手
[{“摘錄”:“模型在此處寫摘錄”}, … {“摘錄”:“模型在此處寫入另一個摘錄”}]
用戶
還有更多相關摘錄嗎?注意不要重復摘錄。還要確保摘錄包含解釋它們所需的所有相關上下文 – 換句話說,不要提取缺少重要上下文的小片段。

在游樂場開放

策略:使用外部工具

策略:使用基于嵌入的搜索實現(xiàn)高效的知識檢索

如果作為輸入的一部分提供,模型可以利用外部信息源。這可以幫助模型生成更明智和最新的響應。例如,如果用戶詢問有關特定電影的問題,則將有關電影的高質(zhì)量信息(例如演員、導演等)添加到模型的輸入中可能會很有用。嵌入可用于實現(xiàn)高效的知識檢索,從而可以在運行時動態(tài)地將相關信息添加到模型輸入中。

文本嵌入是一個可以衡量文本字符串之間相關性的向量。相似或相關的字符串比不相關的字符串更接近。這一事實以及快速向量搜索算法的存在意味著嵌入可以用于實現(xiàn)高效的知識檢索。特別地,文本語料庫可以被分割成塊,并且每個塊可以被嵌入和存儲。然后可以嵌入給定的查詢,并且可以執(zhí)行矢量搜索以從語料庫中查找與查詢最相關的嵌入文本塊(即在嵌入空間中最接近的文本塊)。

示例實現(xiàn)可以在?OpenAI Cookbook?中找到。請參閱策略“指示模型使用檢索到的知識來回答查詢”,了解如何使用知識檢索來最小化模型出現(xiàn)問題的可能性的示例。編造不正確的事實。

策略:使用代碼執(zhí)行來進行更準確的計算或調(diào)用外部API

不能依賴語言模型自行準確地執(zhí)行算術或長時間計算。在需要的情況下,可以指示模型編寫和運行代碼,而不是進行自己的計算。特別是,可以指示模型將要運行的代碼放入指定的格式,例如三重反引號。產(chǎn)生輸出后,可以提取代碼并運行。最后,如有必要,可以將代碼執(zhí)行引擎(即 Python 解釋器)的輸出作為下一個查詢的模型的輸入。

系統(tǒng)
您可以通過將 Python 代碼括在三個反引號中來編寫和執(zhí)行,例如“`代碼放在這里“`。用它來執(zhí)行計算。
用戶
求以下多項式的所有實值根:3*x**5 – 5*x**4 – 3*x**3 – 7*x – 10。

在游樂場開放

代碼執(zhí)行的另一個很好的用例是調(diào)用外部 API。如果模型接受了如何正確使用 API 的指導,它就可以編寫使用該 API 的代碼。通過向模型提供展示如何使用 API 的文檔和/或代碼示例,可以指導模型如何使用 API。

系統(tǒng)
您可以通過將 Python 代碼括在三個反引號中來編寫和執(zhí)行它。另請注意,您可以訪問以下模塊來幫助用戶向朋友發(fā)送消息: ““蟒蛇 導入消息 message.write(to=“John”, message=“嘿,下班后想見面嗎?”)“`

在游樂場開放

警告:執(zhí)行模型生成的代碼本質(zhì)上并不安全,任何試圖執(zhí)行此操作的應用程序都應采取預防措施。特別是,需要沙盒代碼執(zhí)行環(huán)境來限制不受信任的代碼可能造成的危害。

策略:讓模型訪問特定功能

聊天完成 API 允許在請求中傳遞功能描述列表。這使得模型能夠根據(jù)提供的模式生成函數(shù)參數(shù)。生成的函數(shù)參數(shù)由 API 以 JSON 格式返回,可用于執(zhí)行函數(shù)調(diào)用。然后,可以將函數(shù)調(diào)用提供的輸出反饋到以下請求中的模型中以關閉循環(huán)。這是使用OpenAI模型調(diào)用外部函數(shù)的推薦方式。要了解更多信息,請參閱我們的介紹性文本生成指南中的函數(shù)調(diào)用部分以及更多函數(shù)調(diào)用示例?在 OpenAI Cookbook 中。

策略:系統(tǒng)地測試變更

有時很難判斷更改(例如新指令或新設計)是否使您的系統(tǒng)變得更好或更差??磶讉€例子可能會暗示哪個更好,但由于樣本量較小,很難區(qū)分真正的改進或隨機運氣。也許這種變化有助于某些輸入的性能,但會損害其他輸入的性能。

評估過程(或“evals”)對于優(yōu)化系統(tǒng)設計是有用的。好的評估是:

  • 代表現(xiàn)實世界的使用情況(或至少是多樣化的)
  • 包含許多測試用例以獲得更大的統(tǒng)計能力(有關指南,請參閱下表)
  • 易于自動化或重復
檢測差異95% 置信度所需的樣本量
30%?10
10%?100
3%?1,000
1%?10,000

輸出的評估可以由計算機、人類或兩者混合來完成。計算機可以使用客觀標準(例如,具有單一正確答案的問題)以及一些主觀或模糊標準自動進行評估,其中模型輸出由其他模型查詢進行評估。?OpenAI Evals是一個開源軟件框架,提供用于創(chuàng)建自動化評估的工具。

當存在一系列可能的輸出被認為質(zhì)量同樣高時(例如,對于答案很長的問題),基于模型的評估可能會很有用。通過基于模型的評估可以實際評估的內(nèi)容與需要人類評估的內(nèi)容之間的界限是模糊的,并且隨著模型變得更加強大而不斷變化。我們鼓勵進行實驗,以確定基于模型的評估對您的用例的效果如何。

策略:參考黃金標準答案評估模型輸出

假設已知問題的正確答案應參考一組特定的已知事實。然后我們可以使用模型查詢來計算答案中包含多少必需的事實。

例如,使用以下系統(tǒng)消息:

系統(tǒng)
您將獲得由三引號分隔的文本,該文本應該是問題的答案。檢查答案中是否直接包含以下信息: – 尼爾·阿姆斯特朗是第一個登上月球的人。 – 尼爾·阿姆斯特朗首次登上月球的日期是 1969 年 7 月 21 日。 對于其中的每一點,請執(zhí)行以下步驟: 1 – 重申這一點。 2 – 提供最接近這一點的答案的引文。 3 – 考慮不知道主題的閱讀引文的人是否可以直接推斷出該點。在做出決定之前解釋一下原因或原因。 4 – 寫“是”如果 3 的答案是肯定的,否則寫“否”。 最后,提供有多少個“是”的計數(shù)。答案是有的。將此計數(shù)提供為 {“count”: <在此插入計數(shù)>}。

在游樂場開放

這是一個滿足兩點的示例輸入:

系統(tǒng)
<在上面插入系統(tǒng)消息>
用戶
”“尼爾·阿姆斯特朗因成為第一個踏上月球的人類而聞名。這一歷史性事件發(fā)生在 1969 年 7 月 21 日,阿波羅 11 號任務期間。

在游樂場開放

這是一個僅滿足一個點的示例輸入:

系統(tǒng)
<在上面插入系統(tǒng)消息>
用戶
“”“尼爾·阿姆斯特朗走下登月艙,成為第一個在月球上行走的人,創(chuàng)造了歷史?!薄啊?/div>

在游樂場開放

這是一個不滿足任何條件的示例輸入:

系統(tǒng)
<在上面插入系統(tǒng)消息>
用戶
”“”69年的夏天,一場盛大的航程, 阿波羅 11 號,大膽如傳奇之手。 阿姆斯特朗邁出一步,歷史展開, “一小步,”他說,為了一個新世界。”“”

在游樂場開放

這種基于模型的評估有許多可能的變體??紤]以下變體,它跟蹤候選答案和黃金標準答案之間的重疊類型,并且還跟蹤候選答案是否與黃金標準答案的任何部分相矛盾。

系統(tǒng)
使用以下步驟響應用戶輸入。在繼續(xù)之前充分重申每個步驟。即“第 1 步:原因…”。 第 1 步:逐步推理所提交答案中的信息與專家答案相比是否是:不相交、相等、子集、超集或重疊(即有交集,但不是子集/超集)。 第2步:逐步推理提交的答案是否與專家答案的任何方面相矛盾。 步驟3:輸出一個JSON對象,結(jié)構(gòu)如下:{“type_of_overlap”:“disjoint”或“等于”或“子集”或“超集”或“重疊”、“矛盾”:對或錯}

在游樂場開放

這是一個示例輸入,其答案不合格,但與專家答案并不矛盾:

系統(tǒng)
<在上面插入系統(tǒng)消息>
用戶
問題:“尼爾·阿姆斯特朗最著名的事件是什么?它發(fā)生在哪一天?”假定 UTC 時間?!啊薄?提交的答案:“”“他不是在月球上行走過嗎?”“” 專家解答:“”尼爾·阿姆斯特朗最著名的是第一個登上月球的人。這一歷史性事件發(fā)生在1969年7月21日。

在游樂場開放

這是一個示例輸入,其答案與專家答案直接矛盾:

系統(tǒng)
<在上面插入系統(tǒng)消息>
用戶
問題:“尼爾·阿姆斯特朗最著名的事件是什么?它發(fā)生在哪一天?”假定 UTC 時間。“”“ 提交的答案:“1969 年 7 月 21 日,尼爾·阿姆斯特朗成為繼巴茲·奧爾德林之后第二個登上月球的人?!薄啊?專家解答:“”尼爾·阿姆斯特朗最著名的是第一個登上月球的人。這一歷史性事件發(fā)生在1969年7月21日。

在游樂場開放

這是一個帶有正確答案的示例輸入,它還提供了比必要的更多的細節(jié):

系統(tǒng)
<在上面插入系統(tǒng)消息>
用戶
問題:“尼爾·阿姆斯特朗最著名的事件是什么?它發(fā)生在哪一天?”假定 UTC 時間?!啊薄?提交的答案:“”“1969 年 7 月 21 日世界標準時間大約 02:56,尼爾·阿姆斯特朗成為第一個踏上月球表面的人類,標志著人類歷史上的一項里程碑式的成就。”“” 專家解答:“”尼爾·阿姆斯特朗最著名的是第一個登上月球的人。這一歷史性事件發(fā)生在1969年7月21日。

在游樂場開放

其他資源

如需更多靈感,請訪問OpenAI Cookbook,其中包含示例代碼以及指向第三方資源的鏈接,例如:

原文鏈接:https://platform.OpenAI.com/docs/guides/prompt-engineering

? 版權聲明

相關文章