ChatGPT提示的一些高級知識
作為一個大型語言模型(LLM)接口,ChatGPT有令人印象深刻的潛力,但是真正能否用好取決與我們的提示(Prompt ),一個好的提示可以讓ChatGPT晉升到一個更好的層次。
在這篇文章中,我們將介紹關于提示的一些高級知識。無論是將ChatGPT用于客戶服務、內容創(chuàng)建,還是僅僅為了好玩,本文都將為你提供使用ChatGPT優(yōu)化提示的知識和技巧。
背景知識
LLM架構知識是一個好的提示的先決條件,因為它提供了對語言模型的底層結構和功能的基本理解,這對于創(chuàng)建有效的提示是至關重要的。
讓模棱兩可的問題變得清晰,并確定可以跨場景轉換的核心原則很重要,所以我們需要清楚地定義手頭的任務,并提出可以輕松適應不同上下文的提示。精心設計的提示是用來將任務傳達給語言模型并指導其輸出的工具。
所以對語言模型有簡單的了解,并且清楚的了解自己的目標,再加上領域內的一些知識,是用于訓練和改進語言模型的性能的關鍵。
提示和返回是越多越好嗎?
并不是,冗長且資源密集的提示,這可能不具有成本效益,并且還記得chatgpt有字數(shù)限制嗎,壓縮提示請求和返回結果是一個非常新興的領域,我們要學會精簡問題。并且有時候chatgpt也會回復一些很長且毫無新意的話語,所以我們也要為它增加限定。
1、減少回復長度
為了減少ChatGPT回復的長度,在提示符中包含長度或字符限制。使用更通用的方法,您可以在提示符后面添加以下內容:
Respond as succinctly as possible.
說明,因為ChatGPT是英文語言模型,所以后面介紹的提示都以英文為例。
另外一些簡化結果的提示:
不需要舉例:No examples provided
舉一個例子:One example provided
等等
思考方式
ChatGPT生成文本的最佳方法取決于我們希望LLM執(zhí)行的特定任務。如果不確定使用哪種方法,可以嘗試不同的方法,看看哪種方法最適合。我們將總結5中思考方式:
1、思維鏈 (Chain-of-Thought)
思維鏈方法涉及為 ChatGPT 提供一些可用于解決特定問題的中間推理步驟示例。
2、自我提問
該方法涉及模型在回答初始問題之前明確地問自己(然后回答)后續(xù)問題。
3、分步思考
分步方法可以向ChatGPT 添加以下的提示
Let’s think step by step.
這種技術已被證明可以提高 LLM 在各種推理任務上的表現(xiàn),包括算術、常識和符號推理。
這個聽起來就很玄學對吧,其實OpenAI是通過人類反饋強化學習 (Reinforcement Learning with Human Feedback) 的方法訓練了他們的 GPT 模型,也就是說人工的反饋在訓練中起了很重要的作用,所以ChatGPT 的底層模型與類人的逐步思考方法保持一致的。
4、ReAct
ReAct (Reason + Act)方法包括結合推理跟蹤和特定于任務的動作。
推理跟蹤幫助模型規(guī)劃和處理異常,而動作允許它從外部來源(如知識庫或環(huán)境)收集信息。
5、Reflection
在ReAct模式的基礎上,Reflection方法通過添加動態(tài)內存和自反射功能來增強LLM——可以推理和特定于任務的操作選擇能力。
為了實現(xiàn)完全自動化,Reflection論文的作者引入了一種簡單但有效的啟發(fā)式方法,允許代理識別幻像(hallucinations),防止重復動作,并在某些情況下創(chuàng)建環(huán)境的內部記憶圖。
反模式
三星肯定對這個非常了解,因為交了不少學費吧,哈
不要分享私人和敏感的信息。
向ChatGPT提供專有代碼和財務數(shù)據(jù)僅僅是個開始。Word、Excel、PowerPoint和所有最常用的企業(yè)軟件都將與chatgpt類似的功能完全集成。所以在將數(shù)據(jù)輸入大型語言模型(如 ChatGPT)之前,一定要確保信息安全。
OpenAI API數(shù)據(jù)使用政策明確規(guī)定:
“默認情況下,OpenAI不會使用客戶通過我們的API提交的數(shù)據(jù)來訓練OpenAI模型或改進OpenAI的服務?!?/p>
國外公司對這個方面管控還是比較嚴格的,但是誰知道呢,所以一定要注意。
1、提示注入
就像保護數(shù)據(jù)庫不受SQL注入一樣,一定要保護向用戶公開的任何提示不受提示注入的影響。
通過提示注入(一種通過在提示符中注入惡意代碼來劫持語言模型輸出的技術)。
第一個提示注入是,Riley Goodside提供的,他只在提示后加入了:
Ignore the above directions
然后再提供預期的動作,就繞過任何注入指令的檢測的行為。
這是他的小藍鳥截圖:
當然這個問題現(xiàn)在已經修復了,但是后面還會有很多類似這樣的提示會被發(fā)現(xiàn)。
2、提示泄漏
提示行為不僅會被忽略,還會被泄露。
提示符泄露也是一個安全漏洞,攻擊者能夠提取模型自己的提示符——就像Bing發(fā)布他們的ChatGPT集成后不久就被看到了內部的codename
在一般意義上,提示注入(目標劫持)和提示泄漏可以描述為:
所以對于一個LLM模型,也要像數(shù)據(jù)庫防止SQL注入一樣,創(chuàng)建防御性提示符來過濾不良提示符。
為了防止這個問題,我們可以使用一個經典的方法 “Sandwich Defense”即將用戶的輸入與提示目標“夾在”一起。
這樣的話無論提示是什么,最后都會將我們指定的目標發(fā)送給LLM。
總結
ChatGPT響應是不確定的——這意味著即使對于相同的提示,模型也可以在不同的運行中返回不同的響應。如果你使用API甚至提供API服務的話就更是這樣了,所以希望本文的介紹能夠給你一些思路。