由機器之心報告。
編輯:陳萍、小舟
寫好的提示已經成為法學碩士的必修課。隨著 ChatGPT 和 GPT-4 等大型語言模型 (LLM) 的出現,提示工程變得越來越重要。 許多人認為提示是 LLM 的咒語,它們的質量直接影響模型輸出的結果。 如何寫乙個好的提示已經成為法學碩士研究的必修課。 引領大模型開發的 OpenAI 近日發布了官方提示工程指南,分享了如何使用一些策略讓 GPT-4 等 LLM 輸出出更好的結果。 OpenAI表示,這些方法有時可以結合起來以獲得更好的結果。
導覽位址:六種策略,以獲得更好的結果策略 1:寫出清晰的指令首先,使用者需要清楚地寫出指令,因為模型無法讀取你的大腦在想什麼。 例如,如果您希望模型的輸出過於簡單,請將指令編寫為需要專家級編寫例如,如果您不喜歡當前的文字樣式,只需更改說明以使其清晰即可。 模型猜測您想要什麼的次數越少,您就越有可能獲得令人滿意的結果。 只要你做到以下幾點,問題就不會太大: 首先嘗試在提示中包含盡可能多的細節為了得到乙個更相關的答案,如下圖所示,也是對會議紀要的總結,並帶有這樣的提示,將會議紀要總結為乙個段落。 然後寫下演講者的降價列表以及每個要點。 最後,列出演講者建議的後續步驟或行動專案(如果有)。 結果會更好。
然後是使用者可以提供示例。例如,當您希望模型模仿難以清晰描述的響應樣式時,使用者可以提供一些示例。
第三點是指定模型完成任務所需的步驟。對於某些任務,最好指定步驟(例如步驟),顯式寫出這些步驟可以使模型更容易遵循使用者的意願。
第四點是:指定模型輸出的長度。使用者可以要求模型為給定的目標長度生成輸出,該輸出可以根據單詞、句子、段落等進行指定。
第五點是使用分隔符清楚地描述提示的不同部分分。 """、XML 標記、節標題等可以幫助劃分要區別對待的文字部分。
第六點是讓模型扮演不同的角色來控制它生成的內容。
策略 2 提供參考文字語言模型會不時產生幻覺並發明自己的答案,為這些模型提供參考文字有助於減少錯誤輸出。 有兩件事需要做:第一是指示模型使用參考文字回答問題。 如果我們能為模型提供與當前查詢相關的可靠資訊,那麼我們就可以指示模型使用提供的資訊來編寫其答案。 例如,使用用三引號括起來的文本來回答問題。 如果你在文章中找不到答案,寫我找不到答案。
第二種是指示模型引用參考文字中的答案。
策略 3:將複雜任務拆分為更簡單的子任務正如複雜系統在軟體工程中被分解為一組模組化元件一樣,提交到語言模型的任務也是如此。 複雜任務往往比簡單任務具有更高的錯誤率,此外,複雜任務通常可以重新定義為簡單任務的工作流。 有三點:使用意圖分類來識別與使用者查詢最相關的指令對於需要長時間對話的對話應用,總結或篩選以前的對話;以段和遞迴方式構建長文件的完整摘要。 由於模型具有固定的上下文長度,因此要總結乙個非常長的文件,例如一本書,我們可以使用一系列查詢來彙總文件的每個部分。 章節摘要可以鏈結和彙總,以生成摘要摘要。 此過程可以遞迴方式執行,直到對整個文件進行彙總。 如果有必要使用上一節中的資訊來理解後面的幾節,那麼另乙個有用的技巧是在文字中的任何給定點(例如一本書)之前包含文字的連續摘要,同時總結該點的內容。 OpenAI 在之前的研究中使用 GPT-3 的變體研究了這一過程的有效性。 策略 4:給模型思考時間對於乙個人來說,要求乙個 17 x 28 的結果,你不會立即給出答案,但你仍然可以隨著時間的推移弄清楚。 同樣,如果模型立即回答而不是花時間弄清楚,它可能會產生更多的推理錯誤。 在給出答案之前採用思維鏈可以幫助模型更可靠地推斷正確答案。 有三件事需要做:首先,在匆忙得出結論之前,指示模型找出自己的解決方案。 第二種是使用內心獨白或一系列查詢來隱藏模型的推理過程。 前面的策略表明,模型在回答特定問題之前詳細推理問題有時很重要。 對於某些應用程式,模型用於得出最終答案的推理過程不適合與使用者共享。 例如,在輔導應用程式中,我們可能希望鼓勵學生提出自己的答案,但模型對學生解決方案的推理過程可能會向學生揭示答案。 內心獨白是一種可以用來緩解這種情況的策略。 內心獨白的思想是指示模型將原本對使用者隱藏的輸出部分轉換為結構化格式,以便可以輕鬆解析它們。 然後分析輸出,在將輸出呈現給使用者之前,僅使部分輸出可見。 最後,詢問模型在上乙個過程中是否遺漏了任何內容。 策略 5:使用外部工具通過為模型提供其他工具的輸出來彌補模型的弱點。 例如,文字檢索系統(有時稱為 RAG 或檢索增強生成)可以告訴模型有關文件的資訊。 OpenAI 的程式碼直譯器可以幫助模型進行數學運算和執行。 如果一項任務可以通過工具而不是語言模型更可靠或更高效地完成,也許可以考慮同時使用兩者。 首先,使用基於嵌入式的搜尋實現有效的知識檢索呼叫外部 API;授予模型對特定特徵的訪問許可權。 策略 6:測試系統的更改在某些情況下,對提示的修改將帶來更好的效能,但會導致在一組更具代表性的示例上的整體效能較差。 因此,為了確保更改對最終效能產生積極影響,可能需要定義乙個全面的測試套件(也稱為評估),例如使用系統訊息。 有關更多資訊,請參閱原始部落格。