成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Multi-Stage Language Model Programs:提升語言模型程序的新策略 原創

發布于 2024-10-11 19:39
瀏覽
0收藏

在自然語言處理(NLP)領域,語言模型程序(Language Model Programs)正逐漸成為推動任務進展的關鍵力量。這些由多個模塊化語言模型(LM)調用組成的復雜管道,為解決復雜的NLP任務提供了新的思路和方法。然而,構建這些管道并非易事,其中一個關鍵挑戰就是如何優化提示(prompts),使得所有模塊都能高效協同工作。今天我們就來介紹一篇來自DSPy一作、斯坦福大學博士生、并且即將成為MIT助理教授的Omar Khattab領導的一項有意思的工作!

Multi-Stage Language Model Programs:提升語言模型程序的新策略-AI.x社區


一、研究背景

(一)語言模型程序的發展與挑戰

隨著技術的發展,語言模型在解決復雜任務時,常常需要運用復雜的提示技術,并將其組合成多階段的管道。例如在問答系統、文本生成、信息檢索等任務中,通過將多個語言模型按特定順序和方式組合,可以實現更強大的功能。但是,目前構建這些管道大多依賴于手動的“提示工程”(prompt engineering),即通過反復試驗來設計提示,以促使特定的語言模型在特定的管道步驟中運行。這種方法不僅耗時費力,而且難以保證效果的最優性。

(二)現有提示優化方法的局限性

近年來,雖然出現了一些提示優化器(prompt optimizers),如APE、OPRO和EvoPrompt等,但它們大多針對單個語言模型的提示優化,無法直接應用于多階段的語言模型程序。在多階段程序中,由于缺乏對單個語言模型調用的黃金標簽或評估指標,使得提示優化變得更加困難。

Multi-Stage Language Model Programs:提升語言模型程序的新策略-AI.x社區

圖1:優化問題的一個示例,以一個多跳檢索語言模型程序展示。給定一些問答對和一個度量標準,優化器為每個階段提出新的指令并引導新的演示(未圖示)。

二、問題定義與挑戰分析

(一)問題正式化

考慮一個由m個模塊組成的語言模型程序Φ,每個模塊使用一個語言模型,并由一個包含一組變量(開放插槽)v的提示模板pi定義。我們的目標是找到一個變量到字符串的總分配,使得程序在給定的訓練集D上,根據評估指標μ達到最優性能。這個問題面臨著諸多挑戰,例如每個字符串可以取任意值,評估指標只能在整個任務層面提供監督,無法獲取語言模型的梯度或嵌入,以及通常只有小數據集和有限的語言模型調用預算等。

Multi-Stage Language Model Programs:提升語言模型程序的新策略-AI.x社區

(二)主要挑戰

  1. 提案挑戰(Proposal Challenge) 可能的提示空間非常大,而且隨著模塊數量的增加,這個問題更加嚴重。因此,提出一些高質量的指令就變得至關重要。
  2. 信用分配挑戰(Credit Assignment Challenge) 需要聯合優化許多不同的變量,這些變量用于參數化所有模塊的提示。為了合理分配搜索努力,我們必須有效地推斷每個變量配置的影響。


三、解決策略

(一)應對提案挑戰的策略

  1. 引導演示(Bootstrapping Demonstrations)一種簡單而有效的策略是通過從訓練集中采樣輸入,運行程序Φ生成輸入/輸出軌跡,將成功的軌跡作為潛在的標記演示(即有效輸入/輸出示例)。然后,從這些潛在演示中選擇組合作為有效的少樣本示例用于提示。
  2. 基礎設定(Grounding)為了引導提案語言模型為給定模塊生成高效的指令,我們為其提供相關的上下文信息,如數據的屬性、程序的控制流以及成功任務完成的示例等。通過構建一個零樣本語言模型程序來描述原始數據集的模式、總結程序的控制流、引導程序演示以及收集每個階段的提示及其評估分數,并將這些信息作為上下文提供給提案語言模型。
  3. 學習提案(Learning To Propose)每個提案策略都有一些超參數,如指令生成的溫度以及是否使用數據摘要、程序控制流等來設定提案語言模型的基礎。由于這些超參數的最優配置可能因任務、程序和提案語言模型而異,我們通過參數化提案超參數,并在多次試驗中學習一個貝葉斯模型,以找到適合給定任務、程序和語言模型設置的提案策略。

Multi-Stage Language Model Programs:提升語言模型程序的新策略-AI.x社區

圖2:引導隨機搜索。在第1步中,通過將訓練輸入在程序Φ中運行,并保留根據度量標準μ判斷能產生足夠高得分輸出的軌跡,來引導演示。在第2步中,使用隨機搜索對這些引導出的演示集進行搜索,并返回性能最佳的集合。

(二)應對信用分配挑戰的策略

  1. 貪婪策略(Greedy)分別對語言模型程序的單階段變化進行提案和評估。雖然這種方法可以避免將錯誤錯誤地歸因到不正確的階段,但它效率低下,因為每次只能應用一個變化,而且某些階段的變化可能要在其他階段先改進后才能對程序級性能產生影響。
  2. 替代策略(Surrogate)利用貝葉斯學習構建一個替代模型,通過學習從先前評估中預測不同參數組合的質量,使我們能夠聚焦于搜索空間中有希望的區域。這種基于替代的優化方法可以有效地優化離散的現有參數提案集,但它的缺點是只能對固定的提案集進行優化,無法利用過去的評估結果來改進提案本身。
  3. 基于歷史的策略(History - Based)假設給定過去評估的歷史,一個足夠強大的語言模型可以進行信用分配。通過將評估過的指令及其分數包含在上下文中,讓提案語言模型學習分配信用并輸出新的指令。

四、算法實例與實驗

(一)算法實例

  1. 引導隨機搜索(Bootstrap Random Search)首先通過引導演示過程為每個模塊引導出一定數量的少樣本示例,然后使用隨機搜索在這些引導出的演示集上進行搜索,返回性能最佳的集合。
  2. 模塊級OPRO(Module - Level OPRO)將模塊級指令和程序分數對的歷史作為輸入提供給提案語言模型,為每個模塊生成新的指令,然后在程序中評估這些指令,并將結果分數與每個模塊的指令一起添加回模塊的歷史中,重復這個過程直到達到最大迭代次數,最后返回得分最高的程序參數化。
  3. MIPRO(Multiprompt Instruction PRoposal Optimizer)首先通過引導演示和基礎設定策略為每個模塊引導出少樣本示例和指令,并初始化潛在的分類變量。然后使用樹結構的Parzen估計器的采樣規則選擇用于參數化Φ的指令和少樣本示例。接著在隨機選擇的小批量樣本上對參數化的Φ進行評分,并使用這些分數更新估計器對參數質量的先驗。最后,每隔一定步驟,在整個訓練集上評估具有最高平均分數的候選參數化,返回最優的分配。

Multi-Stage Language Model Programs:提升語言模型程序的新策略-AI.x社區

圖3:模塊級OPRO優化器。模塊級指令和程序分數對的歷史作為輸入提供給提案語言模型,以便為每個模塊生成一條新指令。然后在程序中對這些指令進行評估,并將所得分數與每個模塊的指令一起添加回模塊的歷史記錄中。這個過程重復I次。

Multi-Stage Language Model Programs:提升語言模型程序的新策略-AI.x社區

圖4:MIPRO優化器。在第1步中,使用與引導隨機搜索第1步相同的過程引導演示。在第2步中,使用3.1節中描述的基礎設定策略提出指令。在第3步中,使用貝葉斯優化來找到指令和演示候選的最佳性能組合。

(二)實驗設置

  1. 基準測試(Benchmark)開發了七個任務來評估語言模型程序優化器,包括四個多階段程序和兩個單階段程序,涵蓋了問答、分類、自然語言推理等多種任務類型。使用500個示例進行訓練,500個用于開發,2000個(或更小的完整測試集)用于測試。
  2. 方法與模型(Methods & Models)對指令僅優化、少樣本優化以及指令和少樣本聯合優化三種情況進行了評估。在不同的優化場景下,比較了多種優化器的性能,如Module - Level OPRO、0 - Shot MIPRO、0 - Shot MIPRO++、Bootstrap Random Search、Bayesian Bootstrap等,并使用未優化的語言模型程序作為基線。同時,為了評估基礎設定的效用,還比較了帶有和不帶有基礎設定的Module - Level OPRO。在實驗中,使用GPT - 3.5作為提案語言模型,Llama3 - 8B作為任務模型,并根據任務的不同,在引導少樣本演示時可能會切換使用的模型。

Multi-Stage Language Model Programs:提升語言模型程序的新策略-AI.x社區

表1:DSPy優化器基準測試和相關程序。我們在七個不同的程序上對我們的優化器進行基準測試。

(三)實驗結果與討論

  1. 引導演示的重要性對于大多數任務,優化引導的演示作為少樣本示例對于實現最佳性能至關重要。通過實驗證明,即使是簡單的引導隨機搜索,在除了一個任務之外的所有任務中,都比最佳的僅指令優化器表現更好。
  2. MIPRO的優勢使用MIPRO聯合優化指令和少樣本示例通常能獲得最佳的整體性能。但也存在一些例外情況,對于某些任務,如HotPotQA和Heart Disease等,可能由于任務本身的特點,指令優化的價值相對較小。
  3. 指令優化的適用場景對于具有條件規則且這些規則對語言模型不明顯且無法通過有限的少樣本示例表達的任務,指令優化最為重要。例如在HotPotQA Conditional任務中,即使是0 - shot指令優化也優于僅演示優化。
  4. 基礎設定的效果基礎設定對于指令提案總體上是有幫助的,但最佳的提案策略因任務而異。在某些任務中,如HotPotQA和HoVer,基礎設定對性能提升至關重要,而在ScoNe任務中,似乎會損害性能。這也促使了像MIPRO++這樣能夠針對給定任務學習自定義提案策略的方法的出現。
  5. 進一步探索的空間通過比較不同優化器的性能,發現結果是復雜的。不同的優化器在不同的任務和場景下各有優劣,未來還需要進一步研究在不同優化預算下這些優化器的性能差異,以及探索如何讓優化器在不依賴手寫輸入的情況下學習任務動態等問題。

Multi-Stage Language Model Programs:提升語言模型程序的新策略-AI.x社區

表2:5次運行的平均結果,分為僅優化指令(即“0 - shot”提示)、僅優化演示以及兩者同時優化。每列中性能最佳的值用粗體突出顯示。這些粗體值表示與第二高值相比的最高平均分數,相應運行平均值之間的威爾科克森符號秩檢驗(p <.05)支持其顯著性。如果顯著性未得到確認,則多個結果用粗體表示它們具有可比的性能。


五、研究貢獻與局限

(一)貢獻

  1. 對語言模型程序的提示優化問題進行了形式化定義,并提出了一個算法設計空間,包括三種應對提示提案挑戰的策略和三種解決信用分配問題的策略。
  2. 發布了一個涵蓋七個任務的語言模型程序優化器基準測試套件,為評估不同優化器的性能提供了統一的標準。
  3. 構建并評估了一組可能的提示優化算法,其中MIPRO優化器在七個任務中的五個任務上優于基線優化器,為實際應用提供了有效的優化方法。
  4. 為從業者提供了五條關于優化語言模型程序的關鍵經驗教訓,有助于指導實踐操作。

(二)局限

  1. 研究是在固定預算下進行的,沒有探討在極低或極高預算場景下優化動態的差異。
  2. 在實驗中使用了固定的提案語言模型和任務語言模型,未來需要評估在使用不同模型時方法的一致性表現。
  3. 優化器在推斷復雜任務的規則方面能力有限,尤其是在沒有手寫種子提示的情況下。
  4. 雖然建立了一個涵蓋多種任務和程序的基準,但對于日益復雜的任務和程序,優化器方法的性能還有待進一步研究和完善。

總的來說,這項研究在語言模型程序提示優化方面取得了重要進展,為未來的研究和實踐提供了有價值的參考和方向。盡管存在一些局限,但也為進一步的探索和改進提供了空間。


本文轉載自公眾號AIGC最前線   作者:不是小馬哥啊

原文鏈接:??https://mp.weixin.qq.com/s/RF6TeDxJIA0YXRCqz2QX-g??

?著作權歸作者所有,如需轉載,請注明出處,否則將追究法律責任
收藏
回復
舉報
回復
相關推薦
主站蜘蛛池模板: 农村妇女毛片精品久久久 | 久久久精品一区 | www国产精 | 特黄视频 | 中文字幕综合 | 成人精品一区二区三区中文字幕 | 亚洲喷水| 亚洲日本一区二区三区四区 | 一区二区三区av | 国产区久久 | 成人精品一区 | 久久久久久国产 | 国产精品一区二区av | 日韩视频中文字幕 | 成年视频在线观看 | 国产激情精品视频 | 黄免费观看视频 | 狠狠操av| 中文字幕第一页在线 | 成人精品福利 | 欧美激情国产日韩精品一区18 | 在线观看日韩精品视频 | 亚洲人精品 | 美女黄频| 中文字幕第二区 | 欧美色偷拍 | 亚洲精品视频三区 | 国产成人精品在线 | 国产区精品 | 精品国产欧美一区二区三区成人 | 91精品国产综合久久福利软件 | 在线国产一区二区 | 伊人99 | 日韩视频中文字幕 | 三级国产三级在线 | 一起操网站 | 亚洲欧美激情视频 | 高清欧美性猛交 | 九九免费视频 | 一区中文 | 国产1区2区在线观看 |