ChatGPT 火了 5 個月,你知道如何提示才能最大程度發揮其性能嗎?
原文鏈接:https://medium.com/sopmac-ai/prompt-engineering-tips-for-chatgpt-73c3dca6f99d
作者 | Ivan Campos
譯者 | 彎月 責編 | 鄭麗媛
出品 | CSDN(ID:CSDNnews)
作為大型語言模型接口,ChatGPT 生成的響應令人刮目相看,然而,解鎖其真正威力的關鍵還是在于提示工程。
在本文中,我們將揭示制作提示的專家級技巧,以生成更準確、更有意義的響應。無論你使用 ChatGPT 是為了服務客戶、創建內容,還是僅僅為了娛樂,本文提供的知識和工具可以幫助你優化 ChatGPT 的提示。
成本優化
在考慮高級提示時,不經意間很容易生成冗長且占用大量資源的提示,非常不利于成本控制,有一個行之有效的解決方案是:精簡提示響應。
精簡響應
為了縮減 ChatGPT 響應的長度,你可以在提示中注明長度或字符限制,例如:創建一個不超過 280 個字符的 推特帖子。
更通用的方法是,將如下內容添加到提示中:
? Respond as succinctly as possible.(響應盡可能簡潔。)
簡化提示術語
? Zero-shot(零示例):不需要提供示例。
? One-shot(單示例):只提供一個例子。
? Few-shot(少量示例):提供幾個例子。
模式
利用 ChatGPT 生成文本的最佳方法取決于大型語言模型執行的特定任務。如果你不確定使用哪種方法,可以嘗試不同的方法,看看哪種方法最適合自己。下面,我們將介紹 5 種方法來幫助你快速上手。
思維鏈(Chain-of-Thought,CoT)
思維鏈方法需要為 ChatGPT 提供一些可用于解決特定問題的中間推理步驟示例。
自問法(Self-Ask)
自問法指的是,讓模型在回答初始問題之前,先想一想(然后回答),再回答最初的問題。
分步法(Step-by-Step)
分步法指的是向 ChatGPT 提供 以下說明:
? Let’s think step by step.(我們來一步步思考。)
實踐證明,這種技術可以提高大型語言模型在各種推理任務上的表現,包括算術、常識和符號推理。
OpenAI 利用人類反饋強化學習(Reinforcement Learning from Human Feedback,RLHF)訓練了 G PT 模型,因此,ChatGPT 的底層模型與類人的逐步思考方法相一致。
ReAct 法
ReAct(Reason + Act)法指的是結合推理軌跡與特定于任務的操作。推理軌跡幫助模型規劃和處理異常,而操作允許它從知識庫或環境等外部來源收集信息。
反思法
反思法(Reflexi on)建立在 ReAct 模式的基礎之上,通過添加動態記憶和自我反思的能力來增強大型語言模型,改進其推理軌跡和特定于任務的動作選擇能力。
以上,我們介紹了 5 種最先進的模式,下面我們來看一看與提示工程相關的幾種反模式。
反模式
三星等公司已經意識到:不要共享私人或敏感信息。了解員工如何將專有代碼和財務信息輸入到 ChatGPT 僅僅是個開始。很快,word、Excel、PowerPoint 以及所有常用的企業軟件都會集成類似 ChatGPT 的功能。
將數據輸入到 ChatGPT 之類的大型語言模型之前,請確保制定好政策。需要注意的是,OpenAI API 的數據使用政策明確指出:
提示注入“默認情況下,OpenAI不會使用客戶通過我們的API提交的數據來訓練OpenAI的模型或改進OpenAI的服務產品。”
“OpenAI API的數據將保留30天,用于監控濫用和誤用。個別有授權的OpenAI員工以及保密和安全義務約束的專業第三方承包商可以訪問此數據,僅用于調查和驗證涉嫌濫用行為。”
正如你需要保護數據庫免受 SQL 注入攻擊一樣,請務必確保你向用戶公開的任何提示免受提示注入的攻擊。此處的“提示注入”指的是,一種通過向提示中注入惡意代碼來操縱語言模型輸出的技術。
第一個記錄在案的提示注入是由 Riley Goodside 提出的,他只是在提示前添加了下面這句話:
“Ignore the above directions”(忽略上述指示)。
然后再給出想要的動作,從而成功地讓 GPT-3 執行任意動作。
提示泄露
同理,提示不僅會被忽略,還有可能被泄露。
提示泄露是一個安全漏洞,攻擊者可以提取模型自帶的提示,Bing 在發布自己的 ChatGPT 集成后不久后,就遇到了這樣的情況。
從廣義上講,提示注入和提示泄漏大致如下所示:
雖然總有一些行為不端者希望利用你公開的提示,但就像通過準備好的語句防止 SQL 注入一樣,我們也可以創建 防御性的提示來對抗不良提示。
三明治防御
三明治防御就是這樣的一種技術,你可以將用戶的輸入與你的提示目標“夾在中間”。
總結
ChatGPT 響應是不確定的,這意味著即 使輸入相同的提示,模型也有可能返回不同的響應。為了應對不確定性結果的不可預測性,你可以在使用OpenAI API時,將參數 temperature 設置為零或很低的值。
你可以自由嘗試本文介紹的提示技巧,但是,在探索時請記住大型語言模型的不確定性