黑箱优化:大规模语言模型的一种落地方式
?作者?|?孫天祥
來源?|?機器之心
在本文中,來自復旦大學的計算機博士生介紹了一些關于大規模預訓練語言模型落地的思考。
語言模型的增長
在 BERT 之后,人們看到了大規模預訓練的潛力,嘗試了不同的預訓練任務、模型架構、訓練策略等等,在做這些探索之外,一個更加直接也通常更加有效的方向就是繼續增大數據量和模型容量來向上探測這一模式的上界。
超大規模語言模型印象里大概從 GPT-3 開始,國內外諸多大廠都開始了大規模預訓練的軍備競賽,Google 的 Switch-Transformer,國內智源的 CPM,百度的 ERNIE 3.0,華為的盤古,阿里的 PLUG,浪潮的源 1.0 等等。與此同時,相信也有很多人開始思考,花了幾個億訓練的大模型該怎么用,難道就聽個響嗎?
大模型的玩法
在語言模型還不這么大的時候,一般是這么玩的:0. 下載某個開源的預訓練模型或自研預訓練模型,1. 收集特定任務的標注數據,2. Fine-tune 預訓練語言模型,3. 上線推理。這種玩法我們叫小模型的玩法。
但大模型的預訓練成本和 Fine-tuning 成本都是比較昂貴的,并且現在很多大模型出于成本和商業考慮都不再開源參數,因此大模型得有大模型的玩法。作為大模型的開路先鋒,GPT-3 在他們的論文里給出的玩法就是 in-context learning. 如下圖所示,不需要進行反向傳播,僅需要把少量標注樣本放在輸入文本的上下文中即可誘導 GPT-3 輸出答案。
GPT-3 in-context learning
這一玩法在當時是相當驚艷的,大家被 GPT-3 的這種玩法以及大規模預訓練帶來的 “質變” 感到震驚的同時,OpenAI 也開始了對大模型商業落地的嘗試,開始開放 GPT-3 的推理 API 給開發者,出現了不少有趣的 APP,下面是其中一個例子,更多的 GPT-3 Demo 可以參見:300+ GPT-3 Examples, Demos, Apps, Showcase, and NLP Use-cases | GPT-3 Demo.(https://gpt3demo.com/)
使用 GPT-3 生成網頁布局
類似的,悟道 2.0 也開展了 AI 創新應用大賽來鼓勵基于大模型 API 開發好玩的 APP:https://www.biendata.xyz/wudao/.
而這一玩法后來也被發展成為如今大火的 prompt-based learning,即我們可以將下游任務轉化為(M)LM 任務來直接用預訓練語言模型解決,倘若模型規模越大從(M)LM 遷移到下游任務就越容易,那我們就可以用一個大規模通用語言模型來解決各種下游任務了。
由此來看,Prompt-based learning 起初的想法是很好的,但后來發展成為魔改輸入輸出后的加強版 fine-tuning,配以 MLM head 更好的初始化主攻小樣本性能個人以為偏離了其初心。但后來發展又與包括 Adapter 在內的 parameter-efficient tuning 的工作類似,僅 fine-tune 連續的 prompt 而保持語言模型參數不變,能夠做到 mixed-task inference,我覺得一定程度上又回歸了原來的目標,即通用大模型的高效部署。然而,所有 in-context learning 之后的發展都需要梯度反向傳播,這至少損失了 in-context learning 一半的魅力。試想,未來大廠會雇傭一大批調參師傅來對用戶上傳的訓練數據進行 fine-tune 或者 prompt-tuning,甚至進行 template 和 verbalizer 的搜索?用戶越多需要的調參師傅也越多,這不能規模化。
關于大模型的落地姿勢,除了 OpenAI 之外,國內也有類似的看法,比如智源的張宏江博士就表示:“未來,大模型會形成類似電網的智能基礎平臺,像發電廠一樣為全社會源源不斷地供應‘智力源’”。這種把大模型作為一個在線的服務的模式我們稱之為 Language-Model-as-a-Service (LMaaS).
可以看到,大模型的玩法更貼近個人用戶和小 B 開發者,通過調用大廠開放的 API,就可以使用少量標注數據得到還不錯的效果(這里指 in-context learning)。相比于之前小模型的玩法,LMaaS 當然要能夠降低某一個或幾個環節的成本才能夠推行。我們粗略地從這幾個方面去對比一下本地訓練小模型的玩法和 LMaaS 的玩法:
預訓練模型:小模型玩法可以是免費的(直接用開源預訓練模型),而 LMaaS 需要支付一部分調用 API 的費用
數據標注:小模型需要的標注數據通常更多,因而標注成本更高
實際性能:對于復雜任務或對于有計算資源的用戶,本地訓練小模型通常能夠超過使用 prompt 來調用大模型 API 的效果;對于簡單任務或計算資源有限的用戶,直接使用大模型 API 可能效果更好
經過粗略地對比我們發現有調用大模型推理 API 需求的用戶主要是標注預算不高、處理簡單任務、計算資源有限的個人用戶或者小 B 開發者。那么,假設未來大規模預訓練模型就是這樣一種玩法,怎么使其更好地為更多的用戶提供服務呢?或者說,怎么利用通用語言模型的推理 API 做好下游任務?再或者,怎么設計一個推理 API 能夠惠及更多的下游任務?更進一步,大廠是否能夠發布推理 API 的同時也發布一輔助使用工具?這些問題構成了我們最近工作的主要動機。
黑箱優化:僅調用模型推理 API 完成常見語言理解任務
接下來我們提供一個適用于上述 LMaaS 場景的方案:Black-Box Tuning.
我們的文章標題叫 Black-Box Tuning for Language-Model-as-a-Service,又名 Forward is All You Need,又名 Make Zeroth Optimization Great Again,又名 Inference as Training
前面提到,LMaaS 是要把大模型當作發電廠,那自然不能給每家每戶都派一個調電(調參)師傅過去,最好是每家每戶能夠自己把電器(任務)管理好,發電廠(大模型服務方)只需要確保供應電力(算力),這才是規模化的玩法。
為了做到大模型的高效部署,我們可以訴諸于 parameter-efficient tuning,即只 fine-tune 少量參數,如 adapter 和 prompt tuning,但仍然需要調參師傅在服務端幫你 tuning。自然地,我們想到可以讓用戶根據推理 API 的返回結果自己優化 adapter 或 prompt,比如用無梯度優化(Derivative-Free Optimization)去優化這些 “少量” 的參數。基于這個樸素的想法,我們有了下面的一張愿景圖:
LMaaS
但無梯度方法本質上還是基于搜索的,即使對于 parameter-efficient tuning 也還是會有上萬的參數量需要優化(例如 prompt tuning 優化 20 個 token,每個 token 1024 維,總共是 20480 維),這讓非梯度優化很難做。
在非梯度優化中,如果要優化的目標函數原本維度很高,但只要本征維度很小,我們就可以使用非梯度優化方法來做,一種方法就是通過 random embedding. 例如在下圖中,左邊的目標函數是二維的,但其函數值實際上只跟一個參數( [x_1] )相關,那么我們就可以使用一個 random embedding 將要優化的參數映射到一低維子空間(如下圖右邊的 embedding 就是 [x_1=x_2] ),在這一子空間中進行優化便可以找到最優解 [x^*] .
Random Embedding
幸運的是,最近的一些工作表明預訓練模型參數越多,其本征維度反而越小。例如人們發現僅訓練 RoBERTa-large 的 200 + 個參數,然后映射回原本參數空間就可以達到 fine-tuning 90% 的性能[1],這就使得非梯度優化方法變得可行了。
有意思的是,過去非梯度優化方法不用于神經網絡的參數優化是因為其參數太多,而僅用于調節少數超參數,現在隨著神經網絡參數越來越多,梯度下降變得非常笨重,而非梯度優化方法反而正好可以拿來做。
基于以上,我們大概可以得知,結合 parameter-efficient tuning 和基于 random embedding 的非梯度優化算法,就可以做到前文提到的使用推理 API 把下游任務做好(開除調參師傅)的愿景。下面我們給出了 black-box tuning 的一個具體實現,比較懶,請大家讀 caption.
Black-Box Tuning
這樣我們發現,大模型服務方僅需要執行模型推理(即提供算力),任務性能的優化由用戶自己完成(即根據推理結果優化 prompt),這樣就不需要調參師傅了。此外,prompt 的優化幾乎是不耗費算力的,因此這一優化過程可以在任何終端設備進行,根本不需要 GPU,所有算力需求集中在大模型服務端。此外,這種優化方式還解藕了優化過程和模型前向傳播的復雜度,原本的梯度下降中,反向傳播的時間和內存占用與模型前向傳播成正比,隨著模型越來越大,優化也變得越來越昂貴;而 black-box tuning 的優化過程本身不耗費什么時間和內存,且復雜度僅依賴于本征維度 d 的大小,與前向傳播的復雜度無關。
(說了這么多,效果還是最關鍵的,它得能 work,至少要比 manual prompt 和 in-context learning 好吧)于是,我們做了 true few-shot 的實驗,他竟然不僅 work 了,還比基于梯度的 prompt-tuning 和 fine-tuning 還要 work,請看下圖:
Forward is All You Need
結果就不做太多解讀了,畢竟我也還沒整明白。
但既然這條路走通了,可以想到很多有意思的方向可以繼續做,(出于本人畢業壓力,這里還不能告訴你們,只能隨便說幾個)例如 inference as training:實際上我們的 black-box tuning 是可以和 fine-tuning 并存的,在 fine-tune 之后(調參師傅調完之后),你還可以一邊推理 - 一邊標注 - 一邊繼續優化你的 prompt,這樣就不用再麻煩調參師傅了;再有一個就是可以做一個 Pre-Trained Optimizer for Pre-Trained Language Models,也就是前面說的幾個問題里的“大廠是否能夠發布推理 API 的同時也發布一輔助使用工具”。好了不能再說了,否則,我就成調參師傅了。
參考
Intrinsic Dimensionality Explains the Effectiveness of Language Model Fine-Tuning https://aclanthology.org/2021.acl-long.568.pdf
原文鏈接:https://zhuanlan.zhihu.com/p/455915295
特別鳴謝
感謝 TCCI 天橋腦科學研究院對于 PaperWeekly 的支持。TCCI 關注大腦探知、大腦功能和大腦健康。
更多閱讀
#投 稿?通 道#
?讓你的文字被更多人看到?
如何才能讓更多的優質內容以更短路徑到達讀者群體,縮短讀者尋找優質內容的成本呢?答案就是:你不認識的人。
總有一些你不認識的人,知道你想知道的東西。PaperWeekly 或許可以成為一座橋梁,促使不同背景、不同方向的學者和學術靈感相互碰撞,迸發出更多的可能性。?
PaperWeekly 鼓勵高校實驗室或個人,在我們的平臺上分享各類優質內容,可以是最新論文解讀,也可以是學術熱點剖析、科研心得或競賽經驗講解等。我們的目的只有一個,讓知識真正流動起來。
📝?稿件基本要求:
? 文章確系個人原創作品,未曾在公開渠道發表,如為其他平臺已發表或待發表的文章,請明確標注?
? 稿件建議以?markdown?格式撰寫,文中配圖以附件形式發送,要求圖片清晰,無版權問題
? PaperWeekly 尊重原作者署名權,并將為每篇被采納的原創首發稿件,提供業內具有競爭力稿酬,具體依據文章閱讀量和文章質量階梯制結算
📬?投稿通道:
? 投稿郵箱:hr@paperweekly.site?
? 來稿請備注即時聯系方式(微信),以便我們在稿件選用的第一時間聯系作者
? 您也可以直接添加小編微信(pwbot02)快速投稿,備注:姓名-投稿
△長按添加PaperWeekly小編
🔍
現在,在「知乎」也能找到我們了
進入知乎首頁搜索「PaperWeekly」
點擊「關注」訂閱我們的專欄吧
·
總結
以上是生活随笔為你收集整理的黑箱优化:大规模语言模型的一种落地方式的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 花呗新人版逾期还款会有什么影响吗
- 下一篇: 中国历史上流通时间最久的钱币是什么