hao86下載站:值得大家信賴的游戲下載站!

首頁(yè) > 區(qū)塊鏈 > OpenAI官方的Prompt工程指南:你可以這么玩ChatGPT

OpenAI官方的Prompt工程指南:你可以這么玩ChatGPT

時(shí)間:2023-12-18 16:45:34
來(lái)源:hao86下載
區(qū)塊鏈

【#區(qū)塊鏈# #OpenAI官方的Prompt工程指南:你可以這么玩ChatGPT#】

來(lái)源:機(jī)器之心

圖片來(lái)源:由無(wú)界 AI生成

寫(xiě)好 prompt 已經(jīng)成為 LLM 的一項(xiàng)必修課。

隨著 ChatGPT、GPT-4 等大型語(yǔ)言模型(LLM)的出現(xiàn),提示工程(Prompt Engineering)變得越來(lái)越重要。很多人將 prompt 視為 LLM 的咒語(yǔ),其好壞直接影響模型輸出的結(jié)果。

如何寫(xiě)好 prompt,已經(jīng)成為 LLM 研究的一項(xiàng)必修課。

引領(lǐng)大模型發(fā)展潮流的 OpenAI,近日官方發(fā)布了一份提示工程指南,該指南分享了如何借助一些策略讓 GPT-4 等 LLM 輸出更好的結(jié)果。OpenAI 表示這些方法有時(shí)可以組合使用以獲得更好的效果。

指南地址:https://platform.openai.com/docs/guides/prompt-engineering

六個(gè)策略,獲得更好的結(jié)果

策略一:寫(xiě)清楚指令

首先用戶要寫(xiě)清楚指令,因?yàn)槟P蜔o(wú)法讀懂你的大腦在想什么。舉例來(lái)說(shuō),如果你希望模型的輸出不要太簡(jiǎn)單,那就把指令寫(xiě)成「要求專家級(jí)別的寫(xiě)作」;又比如你不喜歡現(xiàn)在的文本風(fēng)格,就換個(gè)指令明確一下。模型猜測(cè)你想要什么的次數(shù)越少,你得到滿意結(jié)果的可能性就越大。

只要你做到下面幾點(diǎn),問(wèn)題不會(huì)太大:

首先是提示中盡量包含更詳細(xì)的查詢信息,從而獲得更相關(guān)的答案,就像下面所展示的,同樣是總結(jié)會(huì)議記錄,采用這樣的提示「用一個(gè)段落總結(jié)會(huì)議記錄。然后寫(xiě)下演講者的 Markdown 列表以及每個(gè)要點(diǎn)。最后,列出發(fā)言人建議的后續(xù)步驟或行動(dòng)項(xiàng)目(如果有)?!菇Y(jié)果會(huì)比較好。

其次是用戶可以提供示例。例如,當(dāng)你想讓模型模仿一種難以明確描述的回答風(fēng)格時(shí),用戶可以提供少數(shù)示例。

第三點(diǎn)是指定模型完成任務(wù)時(shí)所需的步驟。對(duì)于有些任務(wù),最好指定步驟如步驟 1、2,顯式地寫(xiě)出這些步驟可以使模型更容易地遵循用戶意愿。

第四點(diǎn)是指定模型輸出的長(zhǎng)度。用戶可以要求模型生成給定目標(biāo)長(zhǎng)度的輸出,目標(biāo)輸出長(zhǎng)度可以根據(jù)單詞、句子、段落等來(lái)指定。

第五點(diǎn)是使用分隔符來(lái)明確劃分提示的不同部分。"""、XML 標(biāo)簽、小節(jié)標(biāo)題等分隔符可以幫助劃分要區(qū)別對(duì)待的文本部分。

第六點(diǎn)是讓模型扮演不同的角色,以控制其生成的內(nèi)容。?

策略 2 提供參考文本

語(yǔ)言模型會(huì)時(shí)不時(shí)的產(chǎn)生幻覺(jué),自己發(fā)明答案,為這些模型提供參考文本可以幫助減少錯(cuò)誤輸出。需要做到兩點(diǎn):

首先是指示模型使用參考文本回答問(wèn)題。如果我們可以為模型提供與當(dāng)前查詢相關(guān)的可信信息,那么我們可以指示模型使用提供的信息來(lái)組成其答案。比如:使用由三重引號(hào)引起來(lái)的文本來(lái)回答問(wèn)題。如果在文章中找不到答案,就寫(xiě)「我找不到答案」。

其次是指示模型從參考文本中引用答案。

策略 3:將復(fù)雜的任務(wù)拆分為更簡(jiǎn)單的子任務(wù)

正如軟件工程中將復(fù)雜系統(tǒng)分解為一組模塊化組件一樣,提交給語(yǔ)言模型的任務(wù)也是如此。復(fù)雜的任務(wù)往往比簡(jiǎn)單的任務(wù)具有更高的錯(cuò)誤率,此外,復(fù)雜的任務(wù)通??梢员恢匦露x為更簡(jiǎn)單任務(wù)的工作流程。包括三點(diǎn):

  • 使用意圖分類來(lái)識(shí)別與用戶查詢最相關(guān)的指令;
  • 對(duì)于需要很長(zhǎng)對(duì)話的對(duì)話應(yīng)用,總結(jié)或過(guò)濾以前的對(duì)話;
  • 分段總結(jié)長(zhǎng)文檔并遞歸的構(gòu)建完整摘要。

由于模型具有固定的上下文長(zhǎng)度,因此要總結(jié)一個(gè)很長(zhǎng)的文檔(例如一本書(shū)),我們可以使用一系列查詢來(lái)總結(jié)文檔的每個(gè)部分。章節(jié)摘要可以連接起來(lái)并進(jìn)行總結(jié),生成摘要的摘要。這個(gè)過(guò)程可以遞歸地進(jìn)行,直到總結(jié)整個(gè)文檔。如果有必要使用前面部分的信息來(lái)理解后面的部分,那么另一個(gè)有用的技巧是在文本(如書(shū))中任何給定點(diǎn)之前包含文本的運(yùn)行摘要,同時(shí)在該點(diǎn)總結(jié)內(nèi)容。OpenAI 在之前的研究中已經(jīng)使用 GPT-3 的變體研究了這種過(guò)程的有效性。

策略 4:給模型時(shí)間去思考

對(duì)于人類來(lái)說(shuō),要求給出 17 X 28 的結(jié)果,你不會(huì)立馬給出答案,但隨著時(shí)間的推移仍然可以算出來(lái)。同樣,如果模型立即回答而不是花時(shí)間找出答案,可能會(huì)犯更多的推理錯(cuò)誤。在給出答案之前采用思維鏈可以幫助模型更可靠地推理出正確答案。需要做到三點(diǎn):

首先是指示模型在急于得出結(jié)論之前找出自己的解決方案。

其次是使用 inner monologue 或一系列查詢來(lái)隱藏模型的推理過(guò)程。前面的策略表明,模型有時(shí)在回答特定問(wèn)題之前詳細(xì)推理問(wèn)題很重要。對(duì)于某些應(yīng)用程序,模型用于得出最終答案的推理過(guò)程不適合與用戶共享。例如,在輔導(dǎo)應(yīng)用程序中,我們可能希望鼓勵(lì)學(xué)生得出自己的答案,但模型關(guān)于學(xué)生解決方案的推理過(guò)程可能會(huì)向?qū)W生揭示答案。

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

最后是詢問(wèn)模型在之前的過(guò)程中是否遺漏了任何內(nèi)容。

策略 5:使用外部工具

通過(guò)向模型提供其他工具的輸出來(lái)彌補(bǔ)模型的弱點(diǎn)。例如,文本檢索系統(tǒng)(有時(shí)稱為 RAG 或檢索增強(qiáng)生成)可以告訴模型相關(guān)文檔。OpenAI 的 Code Interpreter 可以幫助模型進(jìn)行數(shù)學(xué)運(yùn)算并運(yùn)行代碼。如果一項(xiàng)任務(wù)可以通過(guò)工具而不是語(yǔ)言模型更可靠或更有效地完成,或許可以考慮利用兩者。

  • 首先使用基于嵌入的搜索實(shí)現(xiàn)高效的知識(shí)檢索;
  • 調(diào)用外部 API;
  • 賦予模型訪問(wèn)特定功能的權(quán)限。

策略 6:系統(tǒng)的測(cè)試變化

在某些情況下,對(duì)提示的修改會(huì)實(shí)現(xiàn)更好的性能,但會(huì)導(dǎo)致在一組更具代表性的示例上整體性能變差。因此,為了確保更改對(duì)最終性能產(chǎn)生積極影響,可能有必要定義一個(gè)全面的測(cè)試套件(也稱為評(píng)估),例如使用系統(tǒng)消息。

更多內(nèi)容,請(qǐng)參考原博客。

小編推薦下載

相關(guān)文章

更多>>

同類軟件下載