斯坦福和OpenAI提出meta-prompting,最強(qiáng)零樣本prompting技術(shù)誕生了
最新一代語(yǔ)言模型(尤其是 GPT-4、PaLM 和 LLaMa)已經(jīng)成功拓展了自然語(yǔ)言處理和生成的邊界。這些大規(guī)模模型可以解決許多不同任務(wù),從寫莎士比亞風(fēng)格的十四行詩(shī)到總結(jié)復(fù)雜的醫(yī)療報(bào)告和解決競(jìng)賽級(jí)的編程問(wèn)題。盡管這些模型可以解決多種多樣的問(wèn)題,但它們并非總是正確的,有時(shí)候也會(huì)生成不準(zhǔn)確、誤導(dǎo)性或矛盾的響應(yīng)結(jié)果。
隨著這些模型的運(yùn)行成本越來(lái)越低,人們自然會(huì)問(wèn):是否可以使用腳手架系統(tǒng)(scaffolding system)并使用多個(gè)語(yǔ)言模型查詢來(lái)優(yōu)化并且提升這些模型輸出的準(zhǔn)確度和穩(wěn)健性。
斯坦福和 OpenAI 的這項(xiàng)研究提出了一種可用于提升語(yǔ)言模型的功能和性能的新技術(shù),稱為 meta-prompting。
- 論文標(biāo)題:Meta-Prompting: Enhancing Language Models with Task-Agnostic Scaffolding
- 論文地址:https://arxiv.org/abs/2401.12954
- 項(xiàng)目地址:https://github.com/suzgunmirac/meta-prompting
這種技術(shù)涉及構(gòu)建一個(gè)高層級(jí)的「元」 prompt,其作用是指示語(yǔ)言模型做到以下幾點(diǎn):
1. 將復(fù)雜的任務(wù)或問(wèn)題分解成更小的容易解決的子任務(wù);
2. 使用適當(dāng)且詳細(xì)的自然語(yǔ)言指令將這些子任務(wù)分配給專業(yè)的「專家」模型;
3. 監(jiān)督這些專家模型之間的通信;
4. 通過(guò)這個(gè)過(guò)程應(yīng)用其自己的批判性思維、推理和驗(yàn)證技能。
對(duì)于可使用 meta-prompting 有效調(diào)用的語(yǔ)言模型,當(dāng)對(duì)其進(jìn)行查詢時(shí),該模型的作用是作為指揮員(conductor)。它會(huì)輸出一組消息歷史(或者稱為敘述(narrative)),其由多個(gè)專家模型的響應(yīng)構(gòu)成。這個(gè)語(yǔ)言模型首先會(huì)負(fù)責(zé)生成消息歷史中的指揮員部分,這其中包括專家的選取以及為它們構(gòu)建特定的指令。但是,同一個(gè)語(yǔ)言模型本身也會(huì)作為獨(dú)立專家,其會(huì)基于專業(yè)知識(shí)以及指揮員為每條具體查詢選取的信息生成輸出。
這種方法可讓單個(gè)統(tǒng)一的語(yǔ)言模型維持連貫一致的推理路線,同時(shí)還可以利用各種不同的專家角色。通過(guò)動(dòng)態(tài)地為 prompting 選擇上下文,這些專家能為該過(guò)程引入全新的視角,同時(shí)指揮員模型還能保持對(duì)完整歷史的鳥(niǎo)瞰視角并維持協(xié)調(diào)。
因此,這種方法能讓單個(gè)黑箱語(yǔ)言模型既有效作為中心指揮員,同時(shí)又充當(dāng)一系列不同專家,這樣便可以得到更加準(zhǔn)確、可靠和連貫一致的響應(yīng)。
這里新提出的 meta-prompting 技術(shù)組合并擴(kuò)展了近期研究提出的多種不同的 prompting 思想,包括高層級(jí)規(guī)劃和決策、動(dòng)態(tài)人設(shè)分配、多智能體辯論、自我調(diào)試和自我反思。
meta-prompting 的一個(gè)關(guān)鍵方面是其具有一個(gè)性質(zhì):不受具體任務(wù)影響。
傳統(tǒng)的腳手架方法需要針對(duì)每個(gè)任務(wù)調(diào)整具體的指令或示例,而 meta-prompting 則不同,其在多種任務(wù)和輸入上都采用了同一套高層級(jí)指令。對(duì)怕麻煩的用戶來(lái)說(shuō),這種通用性尤其有益,因?yàn)檫@樣就不必為每個(gè)具體任務(wù)提供詳細(xì)的示例或具體指示了。
舉個(gè)例子,對(duì)于「寫一首關(guān)于自拍的莎士比亞式十四行詩(shī)」這樣的一次性請(qǐng)求,用戶無(wú)需補(bǔ)充高質(zhì)量的新古典主義詩(shī)歌示例。
meta-prompting 方法能提供一種廣泛、靈活的框架,而又不會(huì)影響其特定性或相關(guān)性,從而可以提升語(yǔ)言模型的實(shí)用性。此外,為了展現(xiàn) meta-prompting 方法的通用性和整合能力,該團(tuán)隊(duì)還對(duì)其系統(tǒng)進(jìn)行了增強(qiáng),使其可以調(diào)用 Python 解釋器。如此一來(lái),該技術(shù)就能支持更加動(dòng)態(tài)和全面的應(yīng)用,從而進(jìn)一步提升其有效處理多種任務(wù)和查詢的潛力。
圖 2 展示了一個(gè) meta-prompting 的會(huì)話流程示例。
其描繪了元模型(Meta Model,即指揮員模型)使用輸入和來(lái)自多個(gè)不同的專業(yè)專家模型或代碼執(zhí)行的輸出解讀其自身輸出的過(guò)程。這樣的配置讓 meta-prompting 成為了一個(gè)近乎通用的工具。其允許將多個(gè)語(yǔ)言模型的交互和計(jì)算聚合成單一且連貫的敘述。meta-prompting 的不同之處在于其讓語(yǔ)言模型自己決定要使用哪些 prompt 或使用哪些代碼段。
該團(tuán)隊(duì)使用 GPT-4 作為基礎(chǔ)語(yǔ)言模型進(jìn)行了全面的實(shí)驗(yàn),比較了 meta-prompting 與其它無(wú)關(guān)任務(wù)型腳手架方法。
實(shí)驗(yàn)發(fā)現(xiàn),meta-prompting 不僅能提升整體性能,而且在多個(gè)不同任務(wù)上也往往能實(shí)現(xiàn)新的最佳結(jié)果。其靈活性尤其值得稱道:指揮員模型有能力調(diào)用專家模型(基本上就是其本身,只是指令不一樣)執(zhí)行多種不同的功能。這些功能可能包括點(diǎn)評(píng)之前的輸出、為特定任務(wù)選取特定 AI 人設(shè)、優(yōu)化生成的內(nèi)容、確保最終輸出在實(shí)質(zhì)和形式上都滿足所需標(biāo)準(zhǔn)。
如圖 1 所示,相比之前的多種方法,新方法的提升很明顯。
meta-prompting
直覺(jué)知識(shí)和抽象概述。meta-prompting 的工作方法是使用一個(gè)模型來(lái)協(xié)調(diào)和執(zhí)行多個(gè)獨(dú)立查詢,然后將它們的響應(yīng)綜合起來(lái),進(jìn)而渲染得到一個(gè)最終響應(yīng)。從原理上講,該機(jī)制采用了一種集成方法,即借用獨(dú)立專業(yè)模型的力量和多樣性來(lái)協(xié)作解決和處理涉及多方面的任務(wù)或問(wèn)題。
meta-prompting 策略的核心是其淺層的結(jié)構(gòu),其中使用一個(gè)單一模型(稱為元模型)作為權(quán)威的主實(shí)體。
這種 prompting 結(jié)構(gòu)類似于管弦樂(lè)隊(duì),其中指揮家的角色就由元模型充當(dāng),每位音樂(lè)演奏者都對(duì)應(yīng)一個(gè)不同的特定領(lǐng)域的模型。正如指揮家可以讓多種樂(lè)器協(xié)調(diào)彈奏出和諧的旋律一樣,元模型也可以將多個(gè)模型的解答和見(jiàn)解組合起來(lái),為復(fù)雜的問(wèn)題或任務(wù)給出準(zhǔn)確且全面的解答。
從概念上講,在這個(gè)框架內(nèi),特定領(lǐng)域的專家可以有多種多樣的形式,比如針對(duì)特定任務(wù)微調(diào)過(guò)的語(yǔ)言模型、用于處理特定類型查詢的專用 API,甚至還可以是計(jì)算器這樣的計(jì)算工具或用于執(zhí)行代碼的 Python 解釋器等代碼工具。這些功能各異的專家都在元模型的監(jiān)督下接受指示和統(tǒng)一,無(wú)法直接相互互動(dòng)或交流。
Algorithmic Procedure. 算法 1 給出了新提出的 meta-prompting 方法的偽代碼。
簡(jiǎn)單總結(jié)一下,首先是對(duì)輸入執(zhí)行變換,使其符合適當(dāng)?shù)哪0澹蝗缓髨?zhí)行以下循環(huán):(a) 向元模型提交 prompt,(b) 如有需要,使用特定領(lǐng)域的專家模型,(c) 返回最終響應(yīng),(d) 處理錯(cuò)誤。
需要指出,該團(tuán)隊(duì)在實(shí)驗(yàn)中采用的元模型和專家模型都是 GPT-4。它們的角色差異是由各自收到的指令確定的;其中元模型遵循圖 3 提供的一組指令,而專家模型則遵從元模型在推理時(shí)間動(dòng)態(tài)確定的指令。
實(shí)驗(yàn)設(shè)置
基準(zhǔn)
該團(tuán)隊(duì)比較了 meta-prompting 與以下 prompting 方法的無(wú)關(guān)任務(wù)型零樣本式版本:
- 標(biāo)準(zhǔn) prompting
- 零樣本思維鏈 prompting
- 專家 prompting
- 多人設(shè) prompting
數(shù)據(jù)集和任務(wù)
該團(tuán)隊(duì)在實(shí)驗(yàn)中采用了多種任務(wù)和數(shù)據(jù)集,它們需要多種不同能力,比如數(shù)學(xué)和算法推理、特定領(lǐng)域知識(shí)和文學(xué)創(chuàng)造力。這些數(shù)據(jù)集和任務(wù)包括:
- Game of 24:目標(biāo)是使用四個(gè)給定數(shù)值(每個(gè)只能使用一次)構(gòu)建一個(gè)結(jié)果為 24 的算術(shù)表達(dá)式。
- 三個(gè) BIG-Bench Hard(BBH)任務(wù):Geometric Shapes、MultiStep Arithmetic Two 和 Word Sorting;另外還有一個(gè)直接從 BIG-Bench 套件獲取的推理任務(wù) Checkmate-in-One。
- Python Programming Puzzles(P3),即 Python 編程題,包含多個(gè)難度。
- Multilingual Grade School Math,即多語(yǔ)言小學(xué)數(shù)學(xué),這是 GSM8K 數(shù)據(jù)集的一個(gè)多語(yǔ)言版本,包含孟加拉語(yǔ)、日語(yǔ)和斯瓦希里語(yǔ)等語(yǔ)言。
- Shakespearean Sonnet Writing,即莎士比亞式十四行詩(shī)寫作,這是該團(tuán)隊(duì)創(chuàng)建的一個(gè)新任務(wù),目標(biāo)是寫出按「ABAB CDCD EFEF GG」嚴(yán)格押韻的十四行詩(shī),其中應(yīng)一詞不差地包含所提供的三個(gè)詞。
答案提取和評(píng)估協(xié)議
如圖 3 所示,對(duì)于新提出的 meta-prompting 方法,系統(tǒng)指令會(huì)鼓勵(lì)元模型以特定格式給出最終答案。
至于評(píng)估,則會(huì)根據(jù)任務(wù)的性質(zhì)和形式,采用以下三個(gè)指標(biāo)之一:
- Exact Match (EM),精確匹配
- Soft Match (SM),軟匹配
- Functionally Correct (FC),功能正確性
模型和推理
該團(tuán)隊(duì)的主要實(shí)驗(yàn)都使用了 GPT-4(gpt-4-32k)。一些補(bǔ)充實(shí)驗(yàn)則使用了 GPT-3.5(gpt-35-turbo)。不管是 GPT-3.5 還是 GPT-4,都使用了以下指令進(jìn)行微調(diào)。
在全部實(shí)驗(yàn)中,元模型使用的參數(shù)和系統(tǒng)指令都是一樣的。溫度值設(shè)置為 0,top-p 值設(shè)置為 0.95,最大 token 數(shù)為 1024。
主要結(jié)果和討論
表 1 總結(jié)了實(shí)驗(yàn)結(jié)果,新提出的 meta-prompting 的優(yōu)越性得到了體現(xiàn)。
觀察這些方法在所有任務(wù)上的總體性能,可以看到 meta-prompting 為準(zhǔn)確度帶來(lái)的顯著提升,尤其是使用了 Python 解釋器工具輔助時(shí)。
具體來(lái)說(shuō),meta-prompting 方法勝過(guò)標(biāo)準(zhǔn) prompting 方法 17.1%,超過(guò)專家(動(dòng)態(tài)) prompting 17.3%,也比多人設(shè) prompting 優(yōu)秀 15.2%。
另外從圖 4 和 5 可以看到,相比于不使用 Python 解釋器的 meta-prompting,整合 Python 解釋器時(shí),在不同任務(wù)上的整體性能可獲得 11.5% 的提升。
該團(tuán)隊(duì)還在論文中深入討論了從實(shí)驗(yàn)中得到了關(guān)鍵見(jiàn)解,包括 meta-prompting 的性能優(yōu)越性、零樣本分解能力、錯(cuò)誤檢測(cè)、信息聚合和代碼執(zhí)行等。這里我們就不詳細(xì)說(shuō)明了,但 Fresh Eyes 這一概念倒是值得介紹一番。
Fresh Eyes 也就是用另一雙眼睛看,這有助于緩解語(yǔ)言模型的一個(gè)眾所周知的問(wèn)題:犯錯(cuò)時(shí)會(huì)一路錯(cuò)到底并且會(huì)表現(xiàn)出過(guò)度自信。
Fresh Eyes 是 meta-prompting 與多人設(shè) prompting 的一大關(guān)鍵差異,并且實(shí)驗(yàn)結(jié)果也證明了其具有優(yōu)勢(shì)。在 meta-prompting 中,可以使用專家(或人設(shè))來(lái)對(duì)問(wèn)題進(jìn)行重新評(píng)估。這種方法有機(jī)會(huì)得到全新的見(jiàn)解,從而有望發(fā)現(xiàn)之前未被發(fā)現(xiàn)有誤的解答。
基于認(rèn)知心理學(xué),F(xiàn)resh Eyes 可以帶來(lái)更具創(chuàng)造性的問(wèn)題求解和錯(cuò)誤檢測(cè)結(jié)果。
下面的例子展示了 Fresh Eyes 在實(shí)踐中的好處。假設(shè)任務(wù)是 Game of 24,提供的數(shù)值是 6、11、12 和 13,要求構(gòu)建一個(gè)能讓結(jié)果為 24 的算術(shù)表達(dá)式并且每個(gè)數(shù)只能用一次。其歷史過(guò)程可能會(huì)是這樣:
1. 元模型提議咨詢解答數(shù)學(xué)問(wèn)題的專家模型和使用 Python 編程。它強(qiáng)調(diào)了對(duì)準(zhǔn)確度和遵守約束條件的必要性,并建議如有需要可讓另一個(gè)專家參與進(jìn)來(lái)。
2. 一個(gè)專家給出了一個(gè)解答,而另一個(gè)專家則認(rèn)為其不對(duì),于是元模型建議寫一個(gè) Python 程序來(lái)尋找有效的解。
3. 咨詢一個(gè)編程專家,讓其寫一個(gè)程序。
4. 另一個(gè)編程專家在腳本中發(fā)現(xiàn)了一個(gè)錯(cuò)誤,然后對(duì)其進(jìn)行修改并執(zhí)行修改后的腳本。
5. 再咨詢一個(gè)數(shù)學(xué)專家,讓其驗(yàn)證該程序輸出的解。
6. 驗(yàn)證完成后,由元模型將其輸出作為最終答案。
這個(gè)示例展現(xiàn)了 meta-prompting 如何在每一步納入新觀點(diǎn),這樣不僅能找到解答,而且還能有效識(shí)別和糾正錯(cuò)誤。
該團(tuán)隊(duì)最后討論了一些與 meta-prompting 有關(guān)的其它問(wèn)題,包括對(duì)所使用的專家類型的分析、獲得最終結(jié)果所需的對(duì)話輪數(shù)以及如何應(yīng)對(duì)無(wú)解問(wèn)題等情況。詳情請(qǐng)參閱原論文。