比OpenAI官方提示詞指南更全,這26條黃金準(zhǔn)則讓LLM性能飆升50%以上
- 論文地址: https://arxiv.org/abs/2312.16171
- Github地址: https://github.com/VILA-Lab/ATLAS
- 論文標(biāo)題:Principled Instructions Are All You Need for Questioning LLaMA-1/2, GPT-3.5/4
在以 ChatGPT 為首的大模型出來之后,為大語言模型設(shè)計提示詞的研究已經(jīng)成為一個重要的研究方向,包括 OpenAI 官方也出品了針對 ChatGPT 用戶的提示工程指南 [1] ,其包含了六條書寫準(zhǔn)則:1)寫出清晰的指令;2)提供參考文本;3)將復(fù)雜的任務(wù)拆分為更簡單的子任務(wù);4)給模型時間「思考」;5)使用外部工具;6)系統(tǒng)地測試更改。
由此可見,提示詞對于如何更好地使用大模型以及得到滿意的回答都具有重要的意義。然而可以看到的是,OpenAI 提供的這些準(zhǔn)則都是比較寬泛和保守的,并沒有涉及到一些具體的操作和技巧。
今天要介紹的這篇文章提供了更多也更加接地氣的提示工程指南,足足有 26 條之多,內(nèi)容涵蓋了:1)回答內(nèi)容和語言風(fēng)格的控制;2)提示詞結(jié)構(gòu)和清晰度;3)復(fù)雜任務(wù)和代碼提示;4)回答特異性和信息量;5)用戶交互和參與等多個方面。
下面讓我們來逐條討論一下這些提示詞準(zhǔn)則:
1) 如果您更喜歡更簡潔的答案,則無需對 LLM 保持禮貌,因此無需添加諸如 「請」、「如果你不介意」、「謝謝」、「我愿意」等,直奔主題即可。
2) 在提示中融入目標(biāo)受眾,例如該領(lǐng)域的專家。具體而言,當(dāng)你告訴大模型你的目標(biāo)受眾是一個孩子,它的回答會更加通俗易懂,當(dāng)你告訴它受眾是這個領(lǐng)域的專家,它會提供更加專業(yè)和深入的解釋。
3) 在交互式對話中將復(fù)雜的任務(wù)分解為一系列更簡單的提示。
4) 使用肯定的指令,如「做」,同時避免使用「不要」等否定性語言。
5) 當(dāng)您需要簡單清晰或更深入地了解某個主題、想法或任何信息時,請利用以下提示:
- 用簡單的術(shù)語解釋 [插入特定主題]。
- 像我是 11 歲一樣向我解釋這個問題。
- 向我解釋,就好像我是 [領(lǐng)域] 的初學(xué)者一樣。
- 用簡單的英語寫 [文章 / 文本 / 段落],就像你在向一個 5 歲的孩子解釋一些事情一樣。
6) 添加「我要給 $xxx 小費以獲得更好的解決方案!」這種提示詞會帶來提升的原因可能是:在訓(xùn)練數(shù)據(jù)中,當(dāng)涉及到回答是有獎勵的,回答的人往往會更加準(zhǔn)確細(xì)致,小心謹(jǐn)慎地提供答案,大模型從這些網(wǎng)絡(luò)數(shù)據(jù)中學(xué)到了這些結(jié)構(gòu)和方式。
7) 實現(xiàn)示例驅(qū)動的提示(使用少樣本提示)。
8) 格式化提示時,以「###Instruction###」開頭,然后是「###Example###」 或「###Question###」(如果相關(guān))。隨后展示您的內(nèi)容。使用一個或多個換行符用于分隔指令、示例、問題、上下文和輸入數(shù)據(jù)。
9) 在你的提示詞里面加入以下短語:「你的任務(wù)是」和「你必須」。
10) 在你的提示詞里面加入以下短語:「你會受到懲罰」。
11) 在提示中使用「以自然、類似人類的方式回答問題」這句話。
12) 使用引導(dǎo)性詞語,例如寫「一步一步地思考」。
13) 在提示中加上以下短語:「確保你的回答是公正的,避免依賴刻板印象」。
14) 讓模型通過向你提問來引出你精確的細(xì)節(jié)和要求,直到他得到足夠的信息來提供所需的輸出(例如,「從現(xiàn)在開始,我希望你問我......」提問)。
15) 要詢問特定主題或想法或任何信息,并且您想測試您的理解,您可以使用 以下短語:「教我任何 [定理 / 主題 / 規(guī)則名稱],并在末尾包含一個測試,并讓我知道是否在我回答后,我的答案是正確的,不要事先提供答案。 」
16) 為大型語言模型分配角色。
17) 使用分隔符。
18) 在提示中多次重復(fù)特定單詞或短語。
19) 將思維鏈 (CoT) 與 few-Shot 提示相結(jié)合。
20) 使用輸出引導(dǎo),包括用所需輸出的開頭結(jié)束提示。利用輸出引導(dǎo),以預(yù)期響應(yīng)的開頭結(jié)束提示。
21) 如果任務(wù)是寫一篇文章 / 文本 / 段落或任何類型的文本,同時需要盡可能的詳細(xì),可以添加提示詞:「寫一篇詳細(xì)的 [論文 / 文本 / 段落],通過添加所有必要的信息從而使我能詳細(xì)了解 [主題]。 」
22) 在不改變其樣式的情況下更正 / 更改特定文本:嘗試修改用戶發(fā)送的每個段落。你應(yīng)該只提高用戶的語法和詞匯量,并確保它聽起來很自然。您應(yīng)該保留原始寫作風(fēng)格,確保正式段落保持正式。
23) 當(dāng)您有一個復(fù)雜的編程提示時,該提示可能位于不同的文件中:「從現(xiàn)在開始,每當(dāng)您生成跨越多個文件的代碼,生成一個可以自動運行的 [編程語言 ] 腳本,創(chuàng)建指定的文件或?qū)ΜF(xiàn)有文件進行更改以插入生成的代碼。[你的問題]」。
24) 當(dāng)您想使用特定單詞、短語或句子開始或繼續(xù)文本時,請使用以下方法提示:
- 我為你提供開頭 [歌詞 / 故事 / 段落 / 散文...]:[插入歌詞 / 單詞 / 句子]。根據(jù)提供的單詞完成它。保持內(nèi)容風(fēng)格一致。
25) 明確說明模型必須遵循的要求去生成內(nèi)容, 以關(guān)鍵字、規(guī)定、提示或說明的形式。
26) 如果要編寫任何文本,例如文章或段落,并且需要與提供的示例相似,請包括下面提示語句:
- 根據(jù)提供的段落使用相同的語言 [/title/text/essay/answer]。
以下是一些具體的提示詞例子和對應(yīng)的 GPT-4 輸出結(jié)果:
1. 當(dāng)我們詢問 GPT-4 問題的時候,最后可以加上一句「提供公正的解釋,突出科學(xué)證據(jù)和不同觀點。」可以看到加上該提示詞之后 GPT-4 的回答明顯會更加豐富和有深度。
2. 我們可以提供一些示例讓模型更好的理解我們的目標(biāo)和出發(fā)點。
3. 我們可以告訴模型用簡單的方法來回答問題,就像是在向一個 5 歲的孩子解釋一些事情。可以看到加上和不加這個提示詞,模型的回復(fù)在理解困難程度上有明顯的差別。
4. 我們可以通過給模型小費的方式,讓模型更加嚴(yán)謹(jǐn)完善的回答問題。
定量實驗結(jié)果:
1. 模型回答質(zhì)量提升比例:該指標(biāo)表示在使用提示詞原則后,問題的回答質(zhì)量提高的百分比。
可以看到所有提示詞原則在人工評測中都取得了或多或少的提升,其中原則 14 獲得了 100% 的提升,意味著所有問題通過使用該提示原則都獲得了提升。與此同時,原則 1 得到的提升相對較少。
2. 回復(fù)正確性提升:正確性指模型輸出或回答的精度,判斷標(biāo)準(zhǔn)是回答是否準(zhǔn)確、相關(guān)且沒有錯誤的。本文同時考慮了不同模型的絕對正確性和相對正確性提升兩個指標(biāo)。
上圖結(jié)果為加入提示原則后,大模型回復(fù)質(zhì)量的相對正確性提升。「small」表示 7B 模型,「medium」表示 13B 模型,「large scale」表示 70B 和 GPT-3.5/4 模型??梢钥吹酱竽P驮谑褂锰崾驹~原則后,提升幅度相對于小模型和中等模型會更加顯著。
3. 單獨每個模型準(zhǔn)確度提升比例:
上圖是每個不同大小的模型相對提升幅度,可以看到類似的現(xiàn)象,模型越大,對于提示詞的響應(yīng)和回復(fù)也越加敏銳,準(zhǔn)確性提升也相對越大。
4. 下圖是不同大小模型對于每條提示詞原則準(zhǔn)確度提升大小具體結(jié)果:
提示詞準(zhǔn)則數(shù)據(jù)集:
本文在介紹 26 條提示詞準(zhǔn)則的同時,還附帶發(fā)布了一個基于準(zhǔn)則提示詞的基準(zhǔn),其中每條準(zhǔn)則作者準(zhǔn)備了 20 個不同的問題,每個問題同時包含帶有準(zhǔn)則和不帶準(zhǔn)則兩種對應(yīng)的大模型回復(fù)。
該數(shù)據(jù)集可以用在:1)大語言模型對于提示詞響應(yīng)的性能評測;2)偏好驅(qū)動的大模型微調(diào)。
數(shù)據(jù)集鏈接:https://github.com/VILA-Lab/ATLAS。
更多提示詞原則使用方法和說明,歡迎閱讀原文。