ChatGPT 火了 5 個(gè)月,你知道如何提示才能最大程度發(fā)揮其性能嗎?
原文鏈接:https://medium.com/sopmac-ai/prompt-engineering-tips-for-chatgpt-73c3dca6f99d
作者 | Ivan Campos
譯者 | 彎月 責(zé)編 | 鄭麗媛
出品 | CSDN(ID:CSDNnews)
作為大型語言模型接口,ChatGPT 生成的響應(yīng)令人刮目相看,然而,解鎖其真正威力的關(guān)鍵還是在于提示工程。
在本文中,我們將揭示制作提示的專家級技巧,以生成更準(zhǔn)確、更有意義的響應(yīng)。無論你使用 ChatGPT 是為了服務(wù)客戶、創(chuàng)建內(nèi)容,還是僅僅為了娛樂,本文提供的知識和工具可以幫助你優(yōu)化 ChatGPT 的提示。

成本優(yōu)化
在考慮高級提示時(shí),不經(jīng)意間很容易生成冗長且占用大量資源的提示,非常不利于成本控制,有一個(gè)行之有效的解決方案是:精簡提示響應(yīng)。
精簡響應(yīng)
為了縮減 ChatGPT 響應(yīng)的長度,你可以在提示中注明長度或字符限制,例如:創(chuàng)建一個(gè)不超過 280 個(gè)字符的 推特帖子。
更通用的方法是,將如下內(nèi)容添加到提示中:
? Respond as succinctly as possible.(響應(yīng)盡可能簡潔。)
簡化提示術(shù)語
? Zero-shot(零示例):不需要提供示例。
? One-shot(單示例):只提供一個(gè)例子。
? Few-shot(少量示例):提供幾個(gè)例子。
模式
利用 ChatGPT 生成文本的最佳方法取決于大型語言模型執(zhí)行的特定任務(wù)。如果你不確定使用哪種方法,可以嘗試不同的方法,看看哪種方法最適合自己。下面,我們將介紹 5 種方法來幫助你快速上手。
思維鏈(Chain-of-Thought,CoT)
思維鏈方法需要為 ChatGPT 提供一些可用于解決特定問題的中間推理步驟示例。

自問法(Self-Ask)
自問法指的是,讓模型在回答初始問題之前,先想一想(然后回答),再回答最初的問題。

分步法(Step-by-Step)
分步法指的是向 ChatGPT 提供 以下說明:
? Let’s think step by step.(我們來一步步思考。)
實(shí)踐證明,這種技術(shù)可以提高大型語言模型在各種推理任務(wù)上的表現(xiàn),包括算術(shù)、常識和符號推理。

OpenAI 利用人類反饋強(qiáng)化學(xué)習(xí)(Reinforcement Learning from Human Feedback,RLHF)訓(xùn)練了 G PT 模型,因此,ChatGPT 的底層模型與類人的逐步思考方法相一致。

ReAct 法
ReAct(Reason + Act)法指的是結(jié)合推理軌跡與特定于任務(wù)的操作。推理軌跡幫助模型規(guī)劃和處理異常,而操作允許它從知識庫或環(huán)境等外部來源收集信息。

反思法
反思法(Reflexi on)建立在 ReAct 模式的基礎(chǔ)之上,通過添加動態(tài)記憶和自我反思的能力來增強(qiáng)大型語言模型,改進(jìn)其推理軌跡和特定于任務(wù)的動作選擇能力。

以上,我們介紹了 5 種最先進(jìn)的模式,下面我們來看一看與提示工程相關(guān)的幾種反模式。
反模式
三星等公司已經(jīng)意識到:不要共享私人或敏感信息。了解員工如何將專有代碼和財(cái)務(wù)信息輸入到 ChatGPT 僅僅是個(gè)開始。很快,word、Excel、PowerPoint 以及所有常用的企業(yè)軟件都會集成類似 ChatGPT 的功能。
將數(shù)據(jù)輸入到 ChatGPT 之類的大型語言模型之前,請確保制定好政策。需要注意的是,OpenAI API 的數(shù)據(jù)使用政策明確指出:
提示注入“默認(rèn)情況下,OpenAI不會使用客戶通過我們的API提交的數(shù)據(jù)來訓(xùn)練OpenAI的模型或改進(jìn)OpenAI的服務(wù)產(chǎn)品。”
“OpenAI API的數(shù)據(jù)將保留30天,用于監(jiān)控濫用和誤用。個(gè)別有授權(quán)的OpenAI員工以及保密和安全義務(wù)約束的專業(yè)第三方承包商可以訪問此數(shù)據(jù),僅用于調(diào)查和驗(yàn)證涉嫌濫用行為。”
正如你需要保護(hù)數(shù)據(jù)庫免受 SQL 注入攻擊一樣,請務(wù)必確保你向用戶公開的任何提示免受提示注入的攻擊。此處的“提示注入”指的是,一種通過向提示中注入惡意代碼來操縱語言模型輸出的技術(shù)。
第一個(gè)記錄在案的提示注入是由 Riley Goodside 提出的,他只是在提示前添加了下面這句話:
“Ignore the above directions”(忽略上述指示)。
然后再給出想要的動作,從而成功地讓 GPT-3 執(zhí)行任意動作。

提示泄露
同理,提示不僅會被忽略,還有可能被泄露。
提示泄露是一個(gè)安全漏洞,攻擊者可以提取模型自帶的提示,Bing 在發(fā)布自己的 ChatGPT 集成后不久后,就遇到了這樣的情況。
從廣義上講,提示注入和提示泄漏大致如下所示:

雖然總有一些行為不端者希望利用你公開的提示,但就像通過準(zhǔn)備好的語句防止 SQL 注入一樣,我們也可以創(chuàng)建 防御性的提示來對抗不良提示。
三明治防御
三明治防御就是這樣的一種技術(shù),你可以將用戶的輸入與你的提示目標(biāo)“夾在中間”。
總結(jié)
ChatGPT 響應(yīng)是不確定的,這意味著即 使輸入相同的提示,模型也有可能返回不同的響應(yīng)。為了應(yīng)對不確定性結(jié)果的不可預(yù)測性,你可以在使用OpenAI API時(shí),將參數(shù) temperature 設(shè)置為零或很低的值。
你可以自由嘗試本文介紹的提示技巧,但是,在探索時(shí)請記住大型語言模型的不確定性






