最新一代語言模型(如GPT-4、PaLM和LLaMa)在自然語言處理和生成方面取得了重要的突破。這些大規模模型能夠應付各種任務,從創作莎士比亞風格的十四行詩到概括複雜的醫療報告,甚至解決競賽級的程式設計問題。雖然這些模型能夠解決多樣化的問題,但並非始終正確。有時它們可能會產生不準確、誤導或矛盾的反應結果。因此,在使用這些模型時,仍需要謹慎評估和驗證其輸出的準確性和可靠性。
隨著模型運作成本的下降,人們開始考慮使用鷹架系統和多語言模型查詢來提高模型輸出的準確度和穩定性。這種方法可以優化模型的效能,並為使用者提供更好的體驗。
史丹佛和 OpenAI 的這項研究提出了一種可用於提升語言模型的功能和效能的新技術,稱為 meta-prompting。
#這種技術涉及建立一個高層的「元」 prompt,其作用是指示語言模型做到以下幾點:
#1. 將複雜的任務或問題分解成更小的容易解決的子任務;
2. 使用適當且詳細的自然語言指令將這些子任務分配給專業的「專家」模型;
3. 監督這些專家模型之間的通訊;
4. 透過這個過程應用自己的批判性思考、推理和驗證技能。
對於可使用 meta-prompting 有效調用的語言模型,當對其進行查詢時,模型的作用是作為指揮(conductor)。它會輸出一組訊息歷史(或稱為敘述(narrative)),其由多個專家模型的回應所構成。這個語言模型首先會負責產生訊息歷史中的指揮者部分,這其中包括專家的選取以及為它們建立特定的指令。但是,同一語言模型本身也會作為獨立專家,其會基於專業知識以及指揮官為每個具體查詢所選取的資訊產生輸出。
這種方法可讓單一統一的語言模型維持連貫一致的推理路線,同時也能利用各種不同的專家角色。透過動態地為 prompting 選擇上下文,這些專家能為這個過程引入全新的視角,同時指揮模型也能保持對完整歷史的鳥瞰視角並維持協調。
因此,這種方法能讓單一黑箱語言模型既有效作為中心指揮員,同時又充當一系列不同專家,這樣便可以獲得更加準確、可靠和連貫一致的響應。
這裡新提出的meta-prompting 技術組合併擴展了近期研究提出的多種不同的prompting 思想,包括高階規劃和決策、動態人設分配、多智能體辯論、自我調試和自我反思。
meta-prompting 的一個關鍵面向是其具有一個性質:不受具體任務影響。
傳統的鷹架方法需要針對每個任務調整特定的指令或範例,而meta-prompting 則不同,其在多種任務和輸入上都採用了同一套高階指令。對怕麻煩的使用者來說,這種通用性尤其有益,因為這樣就不必為每個特定任務提供詳細的範例或具體指示了。
舉個例子,對於「寫一首關於自拍的莎士比亞式十四行詩」這樣的一次性請求,使用者無需補充高品質的新古典主義詩歌範例。
meta-prompting 方法能提供一個廣泛、靈活的框架,而又不會影響其特定性或相關性,從而可以提升語言模型的實用性。此外,為了展現 meta-prompting 方法的通用性和整合能力,團隊也對其係統進行了增強,使其可以呼叫 Python 解釋器。如此一來,該技術就能支援更動態和全面的應用,從而進一步提升其有效處理多種任務和查詢的潛力。
圖 2 展示了一個 meta-prompting 的會話流程範例。
其描繪了元模型(Meta Model,即指揮模型)使用輸入和來自多個不同的專業專家模型或程式碼執行的輸出解讀其自身輸出的過程。這樣的設定讓 meta-prompting 成為了一個近乎通用的工具。其允許將多個語言模型的交互作用和計算聚合成單一且連貫的敘述。 meta-prompting 的不同之處在於其讓語言模型自行決定要使用哪些 prompt 或使用哪些程式碼段。
該團隊使用 GPT-4 作為基礎語言模型進行了全面的實驗,比較了 meta-prompting 與其它無關任務型鷹架方法。
實驗發現,meta-prompting 不僅能提升整體效能,在多個不同任務上也往往能達到新的最佳結果。其彈性尤其值得稱道:指揮模型有能力呼叫專家模型(基本上就是其本身,只是指令不一樣)執行多種不同的功能。這些功能可能包括評論先前的輸出、為特定任務選取特定 AI 人設、最佳化產生的內容、確保最終輸出在實質和形式上都符合所需標準。
如圖 1 所示,相較於先前的多種方法,新方法的提升很明顯。
#直覺知識與抽象概述。 meta-prompting 的工作方法是使用一個模型來協調和執行多個獨立查詢,然後將它們的回應綜合起來,進而渲染得到一個最終回應。從原理上講,該機制採用了一種整合方法,即藉用獨立專業模型的力量和多樣性來協作解決和處理涉及多方面的任務或問題。
meta-prompting 策略的核心是其淺層的結構,其中使用單一模型(稱為元模型)作為權威的主實體。
這種 prompting 結構類似於管弦樂隊,其中指揮家的角色就由元模型充當,每位音樂演奏者都對應一個不同的特定領域的模型。就像指揮家可以讓多種樂器協調彈奏出和諧的旋律一樣,元模型也可以將多個模型的解答和見解組合起來,為複雜的問題或任務給出準確且全面的解答。
從概念上講,在這個框架內,特定領域的專家可以有多種多樣的形式,例如針對特定任務微調過的語言模型、用於處理特定類型查詢的專用API,甚至可以是計算器這樣的計算工具或用於執行程式碼的Python 解譯器等程式碼工具。這些功能各異的專家都在元模型的監督下接受指示和統一,無法直接相互互動或溝通。
Algorithmic Procedure. 演算法 1 給出了新提出的 meta-prompting 方法的偽代碼。
簡單總結一下,首先是對輸入執行變換,使其符合適當的範本;然後執行以下迴圈:(a) 向元模型提交prompt,(b) 如有需要,使用特定領域的專家模型,(c) 傳回最終回應,(d) 處理錯誤。
需要指出,該團隊在實驗中採用的元模型和專家模型都是 GPT-4。它們的角色差異是由各自收到的指令確定的;其中元模型遵循圖 3 提供的一組指令,而專家模型則遵從元模型在推理時間動態確定的指令。
#基準位
#該團隊比較了meta-prompting 與以下prompting 方法的無關任務型零樣本式版本:
專家prompting
Python Programming Puzzles(P3),即 Python 程式設計題,包含多個難度。
Multilingual Grade School Math,即多語言小學數學,這是 GSM8K 資料集的多語言版本,包含孟加拉語、日語和斯瓦希里語等語言。
Shakespearean Sonnet Writing,即莎士比亞式十四行詩寫作,這是該團隊創建的一個新任務,目標是寫出按“ABAB CDCD EFEF GG”嚴格押韻的十四行詩,其中應一詞不差地包含所提供的三個字。
##Exact Match ( EM),精確比對
Soft Match (SM),軟體比對Functionally Correct (FC),功能正確性
#該團隊的主要實驗都使用了GPT-4(gpt-4-32k) 。一些補充實驗則使用了 GPT-3.5(gpt-35-turbo)。不管是 GPT-3.5 還是 GPT-4,都使用了以下指令來微調。
在全部實驗中,元模型所使用的參數和系統指令都是一樣的。溫度值設定為 0,top-p 值設定為 0.95,最大 token 數為 1024。主要結果和討論
表 1 總結了實驗結果,新提出的 meta-prompting 的優越性得到了體現。
觀察這些方法在所有任務上的整體效能,可以看到meta-prompting 為準確度帶來的顯著提升,尤其是使用了Python 解譯器工具輔助時。
具體來說,meta-prompting 方法勝過標準 prompting 方法 17.1%,超過專家(動態) prompting 17.3%,也比多人設 prompting 優秀 15.2%。
另外從圖4 和5 可以看到,相較於不使用Python 解譯器的meta-prompting,整合Python 解譯器時,在不同任務上的整體效能可獲得11.5% 的提升。
#####################該團隊也在論文中深入討論了從實驗中得到了關鍵見解,包括meta- prompting 的效能優越性、零樣本分解能力、錯誤偵測、資訊聚合和程式碼執行等。這裡我們就不詳細說明了,但 Fresh Eyes 這個概念倒是值得介紹一番。 ############Fresh Eyes 也就是用另一雙眼睛看,這有助於緩解語言模型的一個眾所周知的問題:犯錯時會一路錯到底並且會表現出過度自信。 ######Fresh Eyes 是 meta-prompting 與多人設 prompting 的一大關鍵差異,實驗結果也證明了其具有優勢。在 meta-prompting 中,可以使用專家(或人設)來重新評估問題。這種方法有機會得到全新的見解,從而有望發現先前未被發現有誤的解答。
基於認知心理學,Fresh Eyes 可以帶來更具創造性的問題解和錯誤檢測結果。
下面的例子展示了 Fresh Eyes 在實踐中的好處。假設任務是 Game of 24,提供的數值是 6、11、12 和 13,要求建構一個能讓結果為 24 的算術表達式並且每個數字只能用一次。其歷史過程可能會是這樣:
1. 元模型提議諮詢解答數學問題的專家模型和使用 Python 程式設計。它強調了對準確度和遵守約束條件的必要性,並建議如有需要可讓另一個專家參與。
2. 一個專家給了一個解答,而另一個專家則認為其不對,於是元模型建議寫一個 Python 程式來尋找有效的解。
3. 諮詢一個程式專家,讓其寫一個程式。
4. 另一個程式設計專家在腳本中發現了一個錯誤,然後對其進行修改並執行修改後的腳本。
5. 再諮詢一個數學專家,讓其驗證該程式輸出的解。
6. 驗證完成後,由元模型將其輸出作為最終答案。
這個範例展現了 meta-prompting 如何在每一步納入新觀點,這樣不僅能找到解答,而且還能有效識別和糾正錯誤。
團隊最後討論了一些與meta-prompting 有關的其它問題,包括對所使用的專家類型的分析、獲得最終結果所需的對話輪數以及如何應對無解問題等情況。詳情請參閱原論文。
以上是史丹佛和OpenAI提出meta-prompting,最強零樣本prompting技術誕生了的詳細內容。更多資訊請關注PHP中文網其他相關文章!