設(shè)置
  • 日夜間
    隨系統(tǒng)
    淺色
    深色
  • 主題色

GPT-4 最全攻略來襲,OpenAI 官方發(fā)布,六個(gè)月攢下來的使用經(jīng)驗(yàn)都在里面了

量子位 2023/6/13 11:45:03 責(zé)編:夢澤

GPT-4 官方使用指南炸裂登場啦!

你沒聽錯(cuò),這次不需要自己做筆記了,OpenAI 親自幫你整理了一份。

據(jù)說匯聚了大伙兒 6 個(gè)月的使用經(jīng)驗(yàn),你、我、他的提示訣竅都融匯其中。

雖然總結(jié)下來只有六大策略,但該有的細(xì)節(jié)可絕不含糊。

不僅普通 GPT-4 用戶可以在這份秘籍中 get 提示技巧,或許應(yīng)用開發(fā)者也可以找到些許靈感。

網(wǎng)友們紛紛評(píng)論,給出了自己的“讀后感”:

好有意思啊!總結(jié)來說,這些技巧的核心思想主要有兩點(diǎn)。一是我們得寫得更具體一些,給一些細(xì)節(jié)的提示。其次,對于那些復(fù)雜的任務(wù),我們可以把它們拆分成一些小的提示來完成。

OpenAI 表示,這份攻略目前僅針對 GPT-4。(當(dāng)然,你也可以在其它 GPT 模型上試試?)

趕緊瞧瞧,這份秘籍里究竟都有啥好東西。

6 大干貨技巧全在這

策略一:寫清楚指令

要知道,模型可不會(huì)“讀心術(shù)”,所以你得把你的要求明明白白地寫出來。

當(dāng)模型輸出變得太啰嗦時(shí),你可以要求它回答簡潔明了。相反地,如果輸出太過簡單,你可以毫不客氣地要求它用專業(yè)水平來寫。

如果你對 GPT 輸出的格式不滿意,那就先給它展示你期望的格式,并要求它以同樣的方式輸出。

總之,盡量別讓 GPT 模型自己去猜你的意圖,這樣你得到的結(jié)果就更可能符合你的預(yù)期了。

實(shí)用技巧:

1、有細(xì)節(jié)才能得到更相關(guān)的答案

為了使輸出和輸入具有強(qiáng)相關(guān)性,一切重要的細(xì)節(jié)信息,都可以喂給模型。

比如你想讓 GPT-4:總結(jié)會(huì)議記錄

就可以盡可能在表述中增加細(xì)節(jié):

將會(huì)議記錄總結(jié)成一段文字。然后編寫一個(gè) Markdown 列表,列出與會(huì)人員及其主要觀點(diǎn)。最后,如果與會(huì)人員有關(guān)于下一步行動(dòng)的建議,請列出來。

2、要求模型扮演特定角色

通過改變系統(tǒng)消息(system message),GPT-4 會(huì)更容易扮演特定的角色,比在對話中提出要求的重視程度更高。

如規(guī)定它要回復(fù)一個(gè)文件,這份文件中的每個(gè)段落都要有好玩的評(píng)論:

3、用分隔符清晰標(biāo)示輸入的不同部分

用 """三重引號(hào)"""、<XML 標(biāo)記>、節(jié)標(biāo)題等分隔符標(biāo)記出文本的不同部分,可以更便于模型進(jìn)行不同的處理。在復(fù)雜的任務(wù)中,這種標(biāo)記細(xì)節(jié)就顯得格外重要。

4、明確指定完成任務(wù)所需的步驟

有些任務(wù)按步驟進(jìn)行效果更佳。因此,最好明確指定一系列步驟,這樣模型就能更輕松地遵循這些步驟,并輸出理想結(jié)果。比如在系統(tǒng)消息中設(shè)定按怎樣的步驟進(jìn)行回答。

5、提供示例

如果你想讓模型輸出按照一種不是能夠很好描述出來的特定樣式,那你就可以提供示例。如提供示例后,只需要告訴它“教我耐心”,它就會(huì)按照示例的風(fēng)格,將其描述得生動(dòng)形象。

6、指定所需輸出長度

你還可以要求模型具體生成多少個(gè)單詞、句子、段落、項(xiàng)目符號(hào)等。但是,在要求模型生成特定數(shù)量的單詞 / 字的時(shí)候,它有可能不會(huì)那么精準(zhǔn)。

策略二:提供參考文本

當(dāng)涉及到深?yuàn)W的話題、引用和 URL 等內(nèi)容時(shí),GPT 模型可能會(huì)一本正經(jīng)地胡說八道。

為 GPT-4 提供可以參考的文本,能夠減少虛構(gòu)性回答的出現(xiàn),使回答的內(nèi)容更加可靠。

實(shí)用技巧:

1、讓模型參照參考資料進(jìn)行回答

如果我們能夠向模型提供一些和問題有關(guān)的可信信息,就可以指示它用提供的信息來組織回答。

2、讓模型引用參考資料進(jìn)行回答

如果在上面的對話輸入中已經(jīng)補(bǔ)充了相關(guān)信息,那么我們還可以直接要求模型在回答中引用所提供的信息。

這里要注意的是,可以通過編程,對讓模型對輸出中引用的部分進(jìn)行驗(yàn)證注釋。

策略三:拆分復(fù)雜任務(wù)

相比之下,GPT-4 在應(yīng)對復(fù)雜任務(wù)時(shí)出錯(cuò)率更高。

然而,我們可以采取一種巧妙的策略,將這些復(fù)雜任務(wù)重新拆解成一系列簡單任務(wù)的工作流程。

這樣一來,前面任務(wù)的輸出就可以被用于構(gòu)建后續(xù)任務(wù)的輸入。

就像在軟件工程中將一個(gè)復(fù)雜系統(tǒng)分解為一組模塊化組件一樣,將任務(wù)分解成多個(gè)模塊,也可以讓模型的表現(xiàn)更好。

實(shí)用技巧:

1、進(jìn)行意圖分類

對于需要處理不同情況的大量具有獨(dú)立性的任務(wù),可以先對這些任務(wù)進(jìn)行分類。

然后,根據(jù)分類來確定所需的指令。

比如,對于客戶服務(wù)應(yīng)用程序,可以進(jìn)行查詢分類(計(jì)費(fèi)、技術(shù)支持、賬戶管理、一般查詢等)。

當(dāng)用戶提出:

我需要讓我的互聯(lián)網(wǎng)重新恢復(fù)正常。

根據(jù)用戶查詢的分類,可以鎖定用戶的具體訴求了,就可以向 GPT-4 提供一組更具體的指令,來進(jìn)行下一步操作。

例如,假設(shè)用戶需要在“故障排除”方面尋求幫助。

就可以設(shè)定下一步的方案:

要求用戶檢查路由器的所有電纜是否已連接……

2、對先前對話進(jìn)行概括或篩選

由于 GPT-4 的對話窗口是有限制的,上下文不能太長,不能在一個(gè)對話窗口中無限進(jìn)行下去。

但也不是沒有解決辦法。

方法之一是對先前的對話進(jìn)行概括。一旦輸入的文本長度達(dá)到預(yù)定的閾值,就可以觸發(fā)一個(gè)查詢,概括對話的一部分,被概括出來的這部分內(nèi)容可以變成系統(tǒng)消息的一部分。

此外,可以在對話過程中就在后臺(tái)對前面的對話進(jìn)行概括。

另一種方法是檢索先前的對話,使用基于嵌入的搜索實(shí)現(xiàn)高效的知識(shí)檢索。

3、逐段概括長文檔,并遞歸構(gòu)建完整概述

還是文本過長的問題。

比如你要讓 GPT-4 概括一本書,就可以使用一系列查詢來概括這本書的每個(gè)部分。

然后將部分概述連接起來進(jìn)行總結(jié),匯成一個(gè)總的答案。

這個(gè)過程可以遞歸進(jìn)行,直到整本書被概括。

但是有些部分可能要借前面部分的信息才能理解后續(xù)部分,這里有一個(gè)技巧:

在概括當(dāng)前內(nèi)容時(shí),將文本中當(dāng)前內(nèi)容之前的內(nèi)容概述一起總結(jié)進(jìn)來,進(jìn)行概括。

簡單來說,用前面部分的“摘要”+ 當(dāng)前部分,然后進(jìn)行概括。

OpenAI 之前還使用基于 GPT-3 訓(xùn)練的模型,對概括書籍的效果進(jìn)行了研究。

策略四:給 GPT 時(shí)間“思考”

如果讓你計(jì)算 17 乘 28,你可能不會(huì)立刻知道答案,但是可以通過一些時(shí)間計(jì)算出來。

同樣的道理,當(dāng) GPT-4 接收到問題時(shí),它并不會(huì)花時(shí)間仔細(xì)思考,而是試圖立刻給出答案,這樣就可能導(dǎo)致推理出錯(cuò)。

因此,在讓模型給出答案前,可以先要求它進(jìn)行一系列的推理過程,幫助它通過推理來得出正確的答案。

實(shí)用技巧:

1、讓模型制定解決方案

你可能有時(shí)候會(huì)發(fā)現(xiàn),當(dāng)我們明確指示模型在得出結(jié)論之前從基本原理出發(fā)進(jìn)行推理時(shí),我們可以獲得更好的結(jié)果。

比如說,假設(shè)我們希望模型評(píng)估學(xué)生解答數(shù)學(xué)問題的方案。

最直接的方法是簡單地詢問模型學(xué)生的解答是否正確。

在上圖中,GPT-4 認(rèn)為學(xué)生的方案是正確的。

但實(shí)際上學(xué)生的方案是錯(cuò)誤的。

這時(shí)候就可以通過提示模型生成自己的解決方案,來讓模型成功注意到這一點(diǎn)。

在生成了自己的解決方案,進(jìn)行一遍推理過后,模型意識(shí)到之前學(xué)生的解決方案不正確。

2、隱藏推理過程

上面講到了讓模型進(jìn)行推理,給出解決方案。

但在某些應(yīng)用中,模型得出最終答案的推理過程不適合與用戶共享。

比如,在作業(yè)輔導(dǎo)中,我們還是希望鼓勵(lì)學(xué)生制定自己的解題方案,然后得出正確答案。但模型對學(xué)生解決方案的推理過程可能會(huì)向?qū)W生揭示答案。

這時(shí)候我們就需要模型進(jìn)行“內(nèi)心獨(dú)白”策略,讓模型將輸出中要對用戶隱藏的部分放入結(jié)構(gòu)化格式中。

然后,在向用戶呈現(xiàn)輸出之前,對輸出進(jìn)行解析,并且僅使部分輸出可見。

就像下面這個(gè)示例:

先讓模型制定自己的解決方案(因?yàn)閷W(xué)生的有可能是錯(cuò)的),然后與學(xué)生的解決方案進(jìn)行對比。

如果學(xué)生的答案中哪一步出錯(cuò)了,那就讓模型針對這一步給出一點(diǎn)提示,而不是直接給學(xué)生完整的正確的解決方案。

如果學(xué)生還是錯(cuò)了,那就再進(jìn)行上一步的提示。

還可以使用“查詢”策略,其中除了最后一步的查詢以外,所有查詢的輸出都對用戶隱藏。

首先,我們可以要求模型自行解決問題。由于這個(gè)初始查詢不需要學(xué)生的解決方案,因此可以省略掉。這也提供了額外的優(yōu)勢,即模型的解決方案不會(huì)受到學(xué)生解決方案偏見的影響。

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

最后,我們可以讓模型使用自己的分析來構(gòu)建導(dǎo)師的角色。

你是一名數(shù)學(xué)導(dǎo)師。如果學(xué)生回答有誤,請以不透露答案的方式向?qū)W生進(jìn)行提示。如果學(xué)生答案無誤,只需給他們一個(gè)鼓勵(lì)性的評(píng)論。

3、詢問模型是否遺漏了內(nèi)容

假設(shè)我們正在讓 GPT-4 列出一個(gè)與特定問題相關(guān)的源文件摘錄,在列出每個(gè)摘錄之后,模型需要確定是繼續(xù)寫入下一個(gè)摘錄,還是停止。

如果源文件很大,模型往往會(huì)過早地停止,未能列出所有相關(guān)的摘錄。

在這種情況下,通??梢宰屇P瓦M(jìn)行后續(xù)查詢,找到它在之前的處理中遺漏的摘錄。

換而言之,模型生成的文本有可能很長,一次性生成不完,那么就可以讓它進(jìn)行查驗(yàn),把遺漏的內(nèi)容再補(bǔ)上。

策略五:其它工具加持

GPT-4 雖然強(qiáng)大,但并非萬能。

我們可以借助其他工具來補(bǔ)充 GPT-4 的不足之處。

比如,結(jié)合文本檢索系統(tǒng),或者利用代碼執(zhí)行引擎。

在讓 GPT-4 回答問題時(shí),如果有一些任務(wù)可以由其他工具更可靠、更高效地完成,那么我們可以將這些任務(wù)交給它們來完成。這樣既能發(fā)揮各自的優(yōu)勢,又能讓 GPT-4 發(fā)揮最佳水平。

實(shí)用技巧:

1、使用基于嵌入的搜索實(shí)現(xiàn)高效的知識(shí)檢索

這一技巧在上文中已經(jīng)有所提及。

若在模型的輸入中提供額外的外部信息,有助于模型生成更好的回答。

例如,如果用戶詢問關(guān)于一部特定電影的問題,將關(guān)于電影的信息(例如演員、導(dǎo)演等)添加到模型的輸入中可能會(huì)很有用。

嵌入可用于實(shí)現(xiàn)高效的知識(shí)檢索,可以在模型運(yùn)行時(shí)動(dòng)態(tài)地將相關(guān)信息添加到模型的輸入中。

文本嵌入是一種可以衡量文本字符串相關(guān)性的向量。相似或相關(guān)的字符串將比不相關(guān)的字符串更緊密地結(jié)合在一起。加上快速向量搜索算法的存在,意味著可以使用嵌入來實(shí)現(xiàn)高效的知識(shí)檢索。

特別的是,文本語料庫可以分成多個(gè)部分,每個(gè)部分可以進(jìn)行嵌入和存儲(chǔ)。然后,給定一個(gè)查詢,可以進(jìn)行向量搜索以找到與查詢最相關(guān)的語料庫中的嵌入文本部分。

2、使用代碼執(zhí)行進(jìn)行更準(zhǔn)確的計(jì)算或調(diào)用外部 API

不能僅依靠模型自身進(jìn)行準(zhǔn)確地計(jì)算。

如果需要,可以指示模型編寫和運(yùn)行代碼,而不是進(jìn)行自主計(jì)算。

可以指示模型將要運(yùn)行的代碼放入指定的格式中。在生成輸出后,可以提取和運(yùn)行代碼。生成輸出后,可以提取并運(yùn)行代碼。最后,如果需要,代碼執(zhí)行引擎(即 Python 解釋器)的輸出可以作為下一個(gè)輸入。

代碼執(zhí)行的另一個(gè)很好的應(yīng)用場景是調(diào)用外部 API。

如果將 API 的正確使用方式傳達(dá)給模型,它可以編寫使用該 API 的代碼。

可以通過向模型演示文檔和 / 或代碼示例來指導(dǎo)模型如何使用 API。

在這里 OpenAI 提出了特別警告??:

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

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

有時(shí)候很難確定一個(gè)改變是會(huì)讓系統(tǒng)變得更好還是更差。

通過觀察一些例子有可能會(huì)看出哪個(gè)更好,但是在樣本數(shù)量較少的情況下,很難區(qū)分是真的得到了改進(jìn),還是只是隨機(jī)運(yùn)氣。

也許這個(gè)“改變”能夠提升某些輸入的效果,但卻會(huì)降低其它輸入的效果。

而評(píng)估程序 (evaluation procedures,or “evals”) 對于優(yōu)化系統(tǒng)設(shè)計(jì)來說非常有用。好的評(píng)估有以下幾個(gè)特點(diǎn):

1)代表現(xiàn)實(shí)世界的用法(或至少是多種用法)

2)包含許多測試用例,可以獲得更大的統(tǒng)計(jì)功效(參見下表)

3)易于自動(dòng)化或重復(fù)

對輸出的評(píng)估可以是由計(jì)算機(jī)進(jìn)行評(píng)估、人工評(píng)估,或者兩者結(jié)合進(jìn)行。計(jì)算機(jī)可以使用客觀標(biāo)準(zhǔn)自動(dòng)評(píng)估,也可以使用一些主觀或模糊的標(biāo)準(zhǔn),比如說用模型來評(píng)估模型。

OpenAI 提供了一個(gè)開源軟件框架 ——OpenAI Evals,提供了創(chuàng)建自動(dòng)評(píng)估的工具。

當(dāng)存在一系列質(zhì)量同樣高的輸出時(shí),基于模型的評(píng)估就會(huì)很有用。

實(shí)用技巧:

1、參考黃金標(biāo)準(zhǔn)答案評(píng)估模型輸出

假設(shè)已知問題的正確答案應(yīng)參考一組特定的已知事實(shí)。

然后,我們可以詢問模型答案中包含多少必需的事實(shí)。

例如,使用下面這個(gè)系統(tǒng)消息,

給出必要的既定事實(shí):

尼爾?阿姆斯特朗是第一個(gè)在月球上行走的人。

尼爾?阿姆斯特朗第一次登上月球的日期是 1969 年 7 月 21 日。

如果答案中包含既定給出的事實(shí),模型會(huì)回答“是”。反之,模型會(huì)回答“否”,最后讓模型統(tǒng)計(jì)有多少“是”的答案:

下面是包含兩點(diǎn)既定事實(shí)的示例輸入(既有事件,又有時(shí)間):

僅滿足一個(gè)既定事實(shí)的示例輸入(沒有時(shí)間):

而下面這個(gè)示例輸入,不包含任何一個(gè)既定事實(shí):

這種基于模型的評(píng)估方法有許多可能的變化形式,需要跟蹤候選答案與標(biāo)準(zhǔn)答案之間的重疊程度,并追蹤候選答案是否與標(biāo)準(zhǔn)答案的有相矛盾的地方。

比如下面的這個(gè)示例輸入,其中包含不合標(biāo)準(zhǔn)的答案,但與專家答案(標(biāo)準(zhǔn)答案)并不矛盾:

下面是這個(gè)示例輸入,其答案與專家答案直接矛盾(認(rèn)為尼爾?阿姆斯特朗是第二個(gè)在月球上行走的人):

最后一個(gè)是帶有正確答案的示例輸入,該輸入還提供了比必要內(nèi)容更多的詳細(xì)信息(時(shí)間精確到了 02:56,并指出了這是人類歷史上的一項(xiàng)不朽成就):

傳送門:

https://github.com/openai/evals(OpenAI Evals)

參考鏈接:

  • [1]https://platform.openai.com/docs/guides/gpt-best-practices

  • [2]https://www.reddit.com/r/OpenAI/comments/141yheo/openai_recently_added_a_gpt_best_practices_guide/

本文來自微信公眾號(hào):量子位 (ID:QbitAI),作者:西風(fēng)

廣告聲明:文內(nèi)含有的對外跳轉(zhuǎn)鏈接(包括不限于超鏈接、二維碼、口令等形式),用于傳遞更多信息,節(jié)省甄選時(shí)間,結(jié)果僅供參考,IT之家所有文章均包含本聲明。

相關(guān)文章

關(guān)鍵詞:ChatGPT,人工智能

軟媒旗下網(wǎng)站: IT之家 最會(huì)買 - 返利返現(xiàn)優(yōu)惠券 iPhone之家 Win7之家 Win10之家 Win11之家

軟媒旗下軟件: 軟媒手機(jī)APP應(yīng)用 魔方 最會(huì)買 要知