GPT-4準確率最高飆升64%!斯坦福OpenAI重磅研究:全新Meta-Prompting方法讓LLM當老板
當你讓大模型寫一首「莎士比亞十四行詩」,并以嚴格的韻律「ABAB CDCD EFEF GG」執行。
同時,詩中還要包含提供的3個詞。
對于這么高難度的創作題,LLM在收到指令后,并不一定能夠按要求做出這首詩。
正所謂,人各有所長,LLM也是如此,僅憑單一模型有時是無法完成一項任務的。
那該如何解?
最近,來自斯坦福和OpenAI的兩位研究員,設計了一種提升LLM性能的全新方法——元提示(meta-prompting)。
「元提示」能夠把單一的LLM變身為全能的「指揮家」。
論文地址:https://arxiv.org/abs/2401.12954
通過使用高層「元提示」指令,讓大模型把復雜任務拆成子任務,然后再將這些任務分配給「專家模型」。
每個模型收到量身訂制的指令后,輸出結果。最終元模型有效整合這些結果,輸出最終的答案。
最重要的是,LLM還會利用自身理解、推理能力,對最終輸出結果進行打磨和驗證,確保輸出結果的準確性。
這種合作方式,能夠讓LLM成為核心,通過靈活調用專家,在多種任務上實現大幅性能提升。
實驗中,研究人員在Game of 24(24點游戲)、Checkmate-in-One、Python編程挑戰等多種任務上,為GPT-4集成了Python解釋器,在元提示策略下,模型性能刷新SOTA。
具體來說,相比「標準提示」提升了17.1%,相比「動態專家提示」提高了17.3%,相比「多角色提示」提高了15.2%。
元提示讓LLM充當「指揮者」
我們已看到,GPT-4、PaLM、LLaMa等新一代大模型已經在NLP處理生成中,展現出強大的泛化能力。
然而,所有的LLM并非強大到無所不能,也會在輸出結果中產生「幻覺」,比如輸出不符合事實、誤導性的內容。
隨著這些模型的運行成本變得更加實惠,人們自然會問,是否可以使用「腳手架」(Scaffolding)系統并利用多個 大模型查詢,以便提升LLM輸出的準確性和穩健性?
在這項研究中,斯坦福和OpenAI的研究人員便提出了一種增強大模型性能的新技術——元提示(meta-prompting)。
這個過程,就需要構建一個高級「元提示」,來指示大模型:
- 將復雜的任務或問題分解為多個小的、可管理的子任務
- 為每個子任務分配一個受過特定領域訓練的「專家」模型
- 監督這些專家模型之間的溝通
- 在整個過程中,運用LLM理解、推理和驗證能力
當收到「查詢」時,大模型在元提示下充當「指揮者」。它會生成一個消息歷史,包含來自各種專家模型的響應。
LLM最初負責生成消息歷史中的「指揮」部分,過程就包括選擇專家模型,并為它們制定具體指示。
然而,相同的LLM也可以充當這些獨立專家,根據指揮者為每個特定查詢選擇的專業知識和信息生成輸出。
這種方法允許單一、統一的LLM保持一致的推理思路,同時還可以利用各種專家角色。
通過動態選擇的上下文來提示這些專家,從而為大模型流程引入了新的視角,而指揮模型則保留了整個歷史和協調的全景圖。
因此,這種方法使單個黑盒LLM,能夠有效地充當核心指揮者的角色,又可以作為多樣化專家小組生成更準確、可靠和一致的響應。
作者介紹,「元提示」方法結合并擴展了進來一系列關于各種 「提示理念」的研究。
其中,就包括高層次規劃和決策、動態角色分配、多智能體辯論、自我調試和自我反思等等。
任何任務,皆不懼
而「元提示」獨到之處就在于,與任務無關性。
與需要針對每個任務量身定制的特定指令或示例的傳統腳手架方法不同,「元提示」是在各種任務和輸入中采用同一組高級指令。
這種通用性對用戶來說非常有利,因為為每個不同任務提供詳細示例,或具體指導非常的麻煩。
舉個栗子,當收到「寫一首關于自拍的莎士比亞十四行詩」之類的一次性請求時,用戶不需要提供「高質量新古典主義詩歌」的示例。
「元提示」通過提供廣泛、靈活的框架,提高了LLM的實用性,同時又不影響相關性。
此外,為了展示「元提示」的多功能性和集成功能,研究人員還調用「Python解釋器」的功能,增強了AI系統。
這使得該技術的應用更加動態和全面,進一步擴展了其有效解決各種任務和查詢的潛力。
下圖中,展示了「元提示」對話內容的可視化。
具體描述了元模型(中心控制LLM,又名「指揮者」)如何將其自身的輸出,與各種專家模型或代碼執行的輸入和輸出穿插在一起。
這樣的配置使得元提示成為幾乎通用的工具。
它允許將各種LLM交互和計算整合到一個單一的、一致的描述中?!冈崾尽沟呐c眾不同之處在于,它讓大模型自行決斷使用哪些提示以及執行哪些代碼片段。
算法過程
「元提示」方法的本意是,使用模型來協調和執行多個獨立的查詢,然后綜合它們的響應以輸出最終響應。
這一機制支持集成方法,利用獨立專業模型的優勢和多樣性,來協作解決和解決多方面的任務或問題。
研究人員認為,雖然單個通用模型可能為通用查詢提供有價值且有用的見解,但結合多個特定領域模型(我們也稱為專家)的觀點和結論有可能輸出更全面、更穩健的結果,甚至是準確的解決方案。
我們的元提示策略的核心是其淺層次結構,其中一個模型(稱為"元模型")作為權威的主要實體出現。
從概念上講,框架內的特定領域專家可以采取多種形式,例如為執行特定任務而定制的微調LLM、用于處理特定領域相關查詢的專用API,甚至是計算器或Python解釋器等計算工具可以執行算術計算或編寫和執行代碼。
這些專家盡管功能各異,但都在元模型的監督下進行指導和統一。
實驗設置中,只能通過元模型調用專家模型,它們之間不能直接相互交流。這一限制,是為了簡化專家之間的溝通,并將元模型置于操作的中心。
- 轉換輸入
使用轉換函數t_init,將原始查詢放置在合適的模板(template)中,然后向元模型發出初始指令。
- 循環迭代
(a)提示元模型:當前消息列表,即H_t,指導元模型的下一步行動——直接處理查詢,或咨詢特定領域的專家。
(b)調用特定領域的專家模型:如果元模型沒有返回結果,它可以調用任何專家并給它指令,這些指令是使用e_exp從其輸出中提取的。不過,這個過程是孤立的:每個專家模型只能看到元模型選擇與它們共享的內容,并做出相應的響應。
比如,如果問題涉及數學和歷史,元模型可能會咨詢數學專家進行計算,并咨詢歷史專家了解歷史背景。專家的輸出結果會被提取出來,并附加額外的說明,所有這些都使用t_mid模板。
(c)返回最終響應:如果元模型的響應包含最終答案(通過不同的特殊標記突出顯示),則使用e_ret提取解決方案并返回。
(d)錯誤處理:如果模型響應y_t既不包含最終答案,也不包含對專家模型的調用,則在信息列表中附加錯誤信息H_t。這確保了程序是穩健的,并可以處理意外的輸出。
在接下來的實驗中,研究人員將「元提示」與四種基線方法進行了比較,包括標準提示(Standard prompting)、零樣本CoT提示、專家提示、多角色提示。
此外,為了評估「元提示」方法相對于其他零樣本提示基線的有效性,研究人員還采用了一系列需要不同程度的數學和算法推理、特定領域知識和文學創作能力的任務和數據集。
其中包括:
- 24點游戲:使用四個給定數字中的每一個,恰好一次組成一個值為24的算術表達式
- Three BIG-Bench Hard:即幾何形狀、多步算術、單詞排序
- Python編程難題:一系列用Python編寫的具有挑戰性的編程難題,具有不同的難度級別
- 多語種小學數學:是GSM8K數據集的多語種版本,將一個子集的示例翻譯成十種不同類型的語言
- 莎士比亞十四行詩寫作:目標是以嚴格的韻律「ABAB CDCD EFEF GG」寫一首十四行詩,需要包含提供的三個詞。
主要成果
從表1所示的結果中可以看到,元提示(meta-prompting)技術相較于傳統的零樣本(zero-shot)提示技術具有明顯的優勢——
元提示技術的表現分別比標準提示提高了17.1%,比專家(動態)提示(expert (dynamic) prompting)提高了17.3%,以及比多人格提示(multipersona prompting)提高了15.2%。
而在Python解釋器的輔助下,元提示(meta-prompting)技術在多種任務上顯著超越了傳統的零樣本(zero-shot)提示技術。這一方法在解決那些高度依賴啟發式或反復試錯策略的任務上表現出色。
例如,在24點游戲挑戰中,與傳統提示方法相比,元提示技術使準確度大幅提升了超過60%,在Python編程難題上取得了約15%的提升,并在十四行詩創作上實現了近18%的提升。
零樣本分解、錯誤檢測與聚合
元提示框架之所以成功,一大原因是它巧妙地利用了專業知識、內部合作以及在過程中不斷自我檢驗的機制。
這種方法,連同采用多角色互動的方式,促進了多輪對話,讓不同的角色共同參與到解決問題的過程中。
以解決MGSM數據集中的多語言算術問題為例,GPT-4在采用元提示方法時,通常會經歷三個階段:
首先將問題從源語言(比如,孟加拉語)翻譯成英語,接著應用計算專長(例如,請求數學專家的幫助)來尋找解決方案,最后進行獨立或驗證確認。
其中,元提示能夠在不被明確指令的情況下完成這樣的翻譯。
新視角
這個概念可以幫助解決一個廣為人知的問題:大語言模型傾向于重復自己的錯誤,并且還非常自信。
相比于多角色提示,元提示會在過程中讓專家或不同角色重新審視問題,從而為發現新的見解和先前未被注意到的錯誤提供了可能。
想象一下,如果任務是解決24點游戲,即用6、11、12和13這四個數字,每個各用一次,組成一個算術表達式,使其結果為24:
1. 元模型(Meta Model)建議咨詢數學、問題解決和Python編程的專家。強調需要準確無誤地遵循規則,并在必要時讓其他專家進行復審。
2. 在一位專家給出方案后,另一位專家指出了其中的錯誤。于是,元模型建議編寫一個Python程序來搜索可行的方案。
3. 接著,元模型邀請了一位編程專家負責編寫這個程序。
4. 另一位編程專家隨后發現了程序中的錯誤,對其進行了修改,并執行了更新后的程序。
5.為了確保輸出的結果無誤,元模型又請了一位數學專家來進行驗證。
6. 經過核驗,元模型最終給出了答案。
可以看到,通過在每一步驟中加入新的視角,元提示不僅能找到問題的解決方案,還能有效地發現并更正錯誤。
實時代碼執行
通過在高級編程策略中引入Python編程專家,并使其根據人類的自然語言指令來編寫并執行代碼,研究人員成功地把解決問題的比例從32.7%提高到了45.8%。
這種實時執行代碼的能力,讓研究人員能夠即時地驗證和優化解決方案,極大地提升了解決問題的效率和準確性。
而且,這種提升的效果并不局限于某一種特定的任務。
在24點游戲和單詞排序這樣的任務中,將Python解釋器集成到元提示中后,準確率分別提高了56.0%和15.6%。(與基線相比則分別提高了64.0%和19.2%)。
總的來說,Python解釋器可以讓各類任務的平均性能提升額外的11.5%。
作者介紹
Mirac Suzgun
Mirac Suzgun是斯坦福大學計算機科學專業的博士生,同時他也在斯坦福法學院攻讀法學博士學位。
他專注于研究大語言模型(LLM)的局限與潛能,尋找更有效、更易于理解的文本生成方法。
他本科畢業于哈佛學院,取得了數學與計算機科學的雙學位,并輔修了民間傳說與神話學。
Adam Tauman Kalai
Adam Tauman Kalai是OpenAI的一名研究員,專注于Lilian Weng領導下的AI安全與倫理問題。
在此之前,他在微軟研究院新英格蘭分部工作,自該研究院2008年成立以來,共參與了包括代碼生成(教計算機編程)、公平性原則、算法設計、翻譯鯨魚語言、博弈論、計算機幽默、眾包技術等多個有趣項目的研究。
在加入微軟研究院之前,他曾在喬治亞理工學院和豐田工業大學芝加哥分校擔任計算機科學助理教授。