讓大模型的訓(xùn)練和推理,比更快還更快!谷歌2022年終總結(jié)第四彈
雖然谷歌的Bard翻車了,但谷歌的AI實(shí)力仍然不容小覷。
自開年以來,由Jeff Dean領(lǐng)銜的Google Research年終總結(jié)系列「Google Research, 2022 & beyond」一直在持續(xù)更新,最近也是更新到了第四期。
本期以「提升模型效率」為主題,一起看看谷歌工程師們都想出了哪些ideas!
運(yùn)行效率成關(guān)鍵
在過去十年里,深度學(xué)習(xí)呈現(xiàn)爆炸式發(fā)展,很大程度上是由于新算法和體系結(jié)構(gòu)的融合、數(shù)據(jù)量的顯著增加以及計(jì)算能力的提高。
相比十年前,人工智能和機(jī)器學(xué)習(xí)模型變得更加巨大、更復(fù)雜,具有更深且更復(fù)雜的網(wǎng)絡(luò)結(jié)構(gòu)、更多的參數(shù)、訓(xùn)練時(shí)用到了更多的數(shù)據(jù),共同促進(jìn)了機(jī)器學(xué)習(xí)歷史上一些最具變革性的成果。
隨著這些模型越來越多地部署在生產(chǎn)和業(yè)務(wù)應(yīng)用程序中,模型的推理效率和運(yùn)行成本已經(jīng)從一個(gè)次要因素變成了一個(gè)主要的限制因素。
Google在這方面的應(yīng)對(duì)措施就是繼續(xù)在機(jī)器學(xué)習(xí)效率方面投入巨資,主要解決以下四個(gè)難題:
1、高效的模型架構(gòu)(Efficient Architecture)
2、數(shù)據(jù)效率(Data Efficiency)
3、訓(xùn)練效率(Training Efficiency)
4、推理效率(Inference Efficiency)
除了效率之外,模型還面臨著圍繞真實(shí)性、安全性、隱私性和時(shí)效性(freshness)等諸多難題。
這篇文章將重點(diǎn)介紹一系列Google Research研究公司為應(yīng)對(duì)上述挑戰(zhàn)而開發(fā)的新算法。
高效的模型架構(gòu)
一個(gè)最基本的問題是:是否有更好的方法來參數(shù)化模型以提高效率?
2022年,Google Research專注于新技術(shù),通過檢索上下文增強(qiáng)模型,混合專家,使變壓器(位于大多數(shù)大型機(jī)器學(xué)習(xí)模型的核心)更有效,從而注入外部知識(shí)。
上下文增強(qiáng)模型(Context-augmented models)
為了追求更高的質(zhì)量和效率,神經(jīng)模型可以從大型數(shù)據(jù)庫或可訓(xùn)練的記憶庫中的外部context中得到增強(qiáng)。
通過利用檢索到的上下文,神經(jīng)網(wǎng)絡(luò)不需要在其內(nèi)部參數(shù)中記憶大量的世界知識(shí),就能夠獲得更好的參數(shù)效率、可解釋性和真實(shí)性。
在「上下文增強(qiáng)語言建模的解耦上下文處理」一文中,研究人員探索了一種基于解耦編解碼器架構(gòu)將外部上下文合并到語言模型中的簡單架構(gòu)。
論文鏈接:?https://arxiv.org/abs/2210.05758?
該模型能夠顯著地節(jié)省計(jì)算量,同時(shí)在自回歸語言建模和開放領(lǐng)域問題回答任務(wù)方面給出了有競爭力的結(jié)果。
預(yù)訓(xùn)練的大語言模型(LLM)通過對(duì)大訓(xùn)練集的自監(jiān)督消耗了大量的信息,但目前還不清楚這些模型的「世界知識(shí)」是如何與輸入的context相互作用的。
通過知識(shí)感知微調(diào)(knowledge aware fine-tuning, KAFT) ,研究人員將反事實(shí)上下文和無關(guān)上下文結(jié)合到標(biāo)準(zhǔn)的監(jiān)督數(shù)據(jù)集中,增強(qiáng)了 LLM 的可控性和魯棒性。
探索模塊化深度網(wǎng)絡(luò)的問題之一是如何設(shè)計(jì)具有相應(yīng)計(jì)算模塊的概念數(shù)據(jù)庫,研究人員提出了一個(gè)理論架構(gòu),將「記憶事件」(remember events)以草圖(sketches)的形式存儲(chǔ)在一個(gè)外部 LSH 表中,其中包括一個(gè)pointers模塊來處理草圖。
上下文增強(qiáng)模型的另一個(gè)難題是從大型數(shù)據(jù)庫中快速檢索信息的加速器。
研究人員開發(fā)了一個(gè)基于 TPU 的最近鄰搜索算法,該算法與 TPU 的性能模型保持一致,并為預(yù)期召回提供分析保證,從而達(dá)到最佳性能。
搜索算法通常涉及大量的超參數(shù)和設(shè)計(jì)選擇,這使得它們很難在新任務(wù)上進(jìn)行優(yōu)化,所以研究人員進(jìn)一步提出了一種新的約束優(yōu)化算法來自動(dòng)調(diào)整超參數(shù),將期望的成本或召回作為輸入,該算法產(chǎn)生的調(diào)整在經(jīng)驗(yàn)上非常接近速度召回的Pareto frontier,并在標(biāo)準(zhǔn)基準(zhǔn)上給出領(lǐng)先的性能。
混合專家模型
混合專家(MoE, Mixture-of-experts)模型已被證明是增加神經(jīng)網(wǎng)絡(luò)模型容量而不會(huì)過度增加其計(jì)算成本的有效手段。MoEs 的基本思想是從多個(gè)專家子網(wǎng)絡(luò)中構(gòu)建一個(gè)網(wǎng)絡(luò),其中每個(gè)輸入由一個(gè)合適的專家子網(wǎng)絡(luò)處理。
因此,與標(biāo)準(zhǔn)的神經(jīng)網(wǎng)絡(luò)相比,MoEs 只調(diào)用整個(gè)模型的一小部分,從而提高了語言模型應(yīng)用程序(如 GLaM)的效率。
決定哪些專家應(yīng)該被激活(be active)以參與到某一特定輸入取決于路由功能(routing function),路由的設(shè)計(jì)非常具有挑戰(zhàn)性,因?yàn)殚_發(fā)者的預(yù)期是每個(gè)專家模型都是恰如其分的,不會(huì)出現(xiàn)利用不足和過度的情況。
在最近的一項(xiàng)工作中,研究人員提出了專家選擇路由(Expert Choice Routing) ,一種新的路由機(jī)制,它不是將每個(gè)輸入token分配給 top-k 專家,而是反過來將每個(gè)專家分配給 top-k token,可以自動(dòng)調(diào)節(jié)專家的負(fù)載平衡,同時(shí)自然地允許多個(gè)專家處理輸入token
論文鏈接:?https://openreview.net/pdf?id=jdJo1HIVinI?
高效的Transformers
Transformer是當(dāng)下最流行的序列到序列的模型,從視覺到自然語言的理解,在一系列具有挑戰(zhàn)性的任務(wù)中已經(jīng)展現(xiàn)了非常強(qiáng)大的性能。
這類模型的一個(gè)核心組成部分是注意力層(attention layer),通過計(jì)算「查詢」(query)和「鍵」(key)之間的相似度來構(gòu)建一個(gè)適當(dāng)?shù)摹钢怠梗╲alue)加權(quán)組合。雖然性能強(qiáng),但注意力機(jī)制的計(jì)算效率卻不高,復(fù)雜度通常為輸入序列長度的二次方。
隨著Transformer規(guī)模的不斷擴(kuò)大,其中一個(gè)重要問題的研究十分有價(jià)值:是否有任何自然發(fā)生的結(jié)構(gòu)或模式的學(xué)習(xí)模型,可以解了注意力有效的原理。
對(duì)此,Google Research研究了中間 MLP 層的學(xué)習(xí)嵌入,發(fā)現(xiàn)它們非常稀疏,比如,T5-大模型只有 < 1% 的非零項(xiàng),其稀疏性進(jìn)一步表明,可以在不影響模型性能的情況下降低FLOP
論文鏈接:?https://arxiv.org/pdf/2210.06313.pdf?
研究人員最近提出了 Treeformer模型,一種依賴于決策樹的標(biāo)準(zhǔn)注意力計(jì)算的替代方案,直觀地說,它可以快速識(shí)別與查詢相關(guān)的一小部分鍵,并且只在這個(gè)集合上執(zhí)行注意力操作。根據(jù)經(jīng)驗(yàn),Treeformer 可以使注意力層的 FLOP 減少30倍。
同時(shí)研究人員還引入了序貫注意( sequential attention),一種將注意和貪婪算法相結(jié)合的可微特征選擇方法,該技術(shù)經(jīng)過證明,可以直接無縫遷移到大規(guī)模模型。
另一種提升Transformer效率的方法是在注意層加速softmax的計(jì)算。
在low-rank approximation of the softmax kernel研究基礎(chǔ)上,研究人員提出了一類新的隨機(jī)特征,提供了softmax kernel的首個(gè)「positive and bounded」隨機(jī)特征近似,并且在序列長度上是計(jì)算線性的。
論文鏈接:?https://arxiv.org/abs/2205.15317?
并且還提出了首個(gè)涵蓋多個(gè)注意力masking的機(jī)制,如因果編碼和相對(duì)位置編碼。
訓(xùn)練效率
有效的優(yōu)化方法是現(xiàn)代機(jī)器學(xué)習(xí)應(yīng)用的基石,在大規(guī)模環(huán)境中尤為重要。
在這種情況下,即使是像Adam這樣的一階自適應(yīng)方法也往往需要大量的計(jì)算量,而且訓(xùn)練的穩(wěn)定性也會(huì)變得非常困難。
此外,這些方法往往與神經(jīng)網(wǎng)絡(luò)的體系結(jié)構(gòu)無關(guān),沒有考慮模型架構(gòu)內(nèi)的結(jié)構(gòu)信息,導(dǎo)致訓(xùn)練效率低下,這也促使新技術(shù)能夠更有效地優(yōu)化現(xiàn)代神經(jīng)網(wǎng)絡(luò)模型。
Google Research開發(fā)了一些新的基于模型架構(gòu)的訓(xùn)練技術(shù),例如,用于訓(xùn)練Transofmre網(wǎng)絡(luò),包括新的規(guī)模不變的Transofmre網(wǎng)絡(luò)和新的clipping方法,當(dāng)與原版隨機(jī)梯度下降(SGD)結(jié)合時(shí),可以加快訓(xùn)練速度。
論文鏈接:?https://arxiv.org/pdf/2202.00980.pdf?
使用這種方法,研究人員首次實(shí)現(xiàn)了僅使用簡單的 SGD 就能有效地訓(xùn)練 BERT,而無需自適應(yīng)(adaptivity)。
此外,研究人員提出了一種新的方法LocoProp,在使用與一階優(yōu)化器相同的計(jì)算和內(nèi)存資源的情況下,獲得類似于二階優(yōu)化器的性能。
LocoProp 通過將神經(jīng)網(wǎng)絡(luò)分解為一個(gè)層的組合,從而獲得了神經(jīng)網(wǎng)絡(luò)的模塊化視圖。然后允許每一層都有自己的損失函數(shù)以及輸出目標(biāo)和重量調(diào)整器。通過這種設(shè)置,經(jīng)過適當(dāng)?shù)南蚯跋蚝筇荻葌鬟f后,LocoProp 繼續(xù)對(duì)每個(gè)層的「局部損失」執(zhí)行并行更新。
論文鏈接:?https://proceedings.mlr.press/v151/amid22a.html?
事實(shí)上,這些更新在理論上和經(jīng)驗(yàn)上都類似于高階優(yōu)化器,在深度自編碼器基準(zhǔn)測(cè)試中,LocoProp 獲得了與高階優(yōu)化器相當(dāng)?shù)男阅?,同時(shí)速度明顯更快。
像 SGD 這樣的優(yōu)化器的一個(gè)關(guān)鍵假設(shè)是,每個(gè)數(shù)據(jù)點(diǎn)都是從一個(gè)分布中獨(dú)立和完全相同地采樣的,不過在強(qiáng)化學(xué)習(xí)等實(shí)際應(yīng)用環(huán)境中,很難滿足該假設(shè),因?yàn)槟P?或智能體)必須從根據(jù)自己的預(yù)測(cè)生成的數(shù)據(jù)中學(xué)習(xí)。
研究人員提出了一種新的算法方法,稱為帶有反向經(jīng)驗(yàn)重放的 SGD,可以在線性動(dòng)力系統(tǒng)(linear dynamical system)、非線性動(dòng)力系統(tǒng)和強(qiáng)化學(xué)習(xí)的 Q 學(xué)習(xí)等幾種情況下找到最優(yōu)解。
論文鏈接:?https://arxiv.org/abs/2103.05896?
此外,這種方法的一個(gè)改進(jìn)版本IER ,經(jīng)過實(shí)驗(yàn)被證明是最先進(jìn)的,并且是各種流行的 RL 基準(zhǔn)測(cè)試上最穩(wěn)定的經(jīng)驗(yàn)重播技術(shù)。
數(shù)據(jù)效率
深度神經(jīng)網(wǎng)絡(luò)嚴(yán)重依賴于大型數(shù)據(jù)集,隨之而來的還有存儲(chǔ)成本和潛在的安全/隱私問題,在這些數(shù)據(jù)集上訓(xùn)練現(xiàn)代深度神經(jīng)網(wǎng)絡(luò)也會(huì)帶來很高的計(jì)算成本。
解決這個(gè)問題的一個(gè)有前景的方法是數(shù)據(jù)子集選擇,其中學(xué)習(xí)器的目標(biāo)是從大量的訓(xùn)練樣本中找到信息量最大的子集,以接近(甚至改進(jìn))整個(gè)訓(xùn)練集的訓(xùn)練。
研究人員分析了一個(gè)子集選擇框架設(shè)計(jì)工作與任意模型族在一個(gè)實(shí)際的batch設(shè)置,在這種設(shè)置下,學(xué)習(xí)器可以一次采樣一個(gè)樣本,訪問上下文和真實(shí)標(biāo)簽,但為了限制開銷,一旦選擇了足夠大的一批樣本,只能更新其狀態(tài),即,進(jìn)一步訓(xùn)練模型權(quán)重。
并基于此開發(fā)了一種稱為 IWeS 的算法,該算法通過重要抽樣來選擇樣本,其中分配給每個(gè)樣本的抽樣概率是基于對(duì)先前選定的批次訓(xùn)練的模型的熵。文中提供了一個(gè)理論分析,證明了泛化和抽樣率的界限。
論文鏈接:?https://arxiv.org/pdf/2301.12052.pdf?
訓(xùn)練大型網(wǎng)絡(luò)的另一個(gè)問題是,它們可能對(duì)部署時(shí)看到的訓(xùn)練數(shù)據(jù)和數(shù)據(jù)之間的分布變化高度敏感,特別是在處理數(shù)量有限的訓(xùn)練數(shù)據(jù)時(shí),這些數(shù)據(jù)可能不包括所有的部署時(shí)間情景。
最近的一項(xiàng)研究假設(shè)「極端簡單性偏差」是神經(jīng)網(wǎng)絡(luò)這種脆弱性背后的關(guān)鍵問題,其最新工作使這一假設(shè)成為可行,導(dǎo)致了兩種新的互補(bǔ)方法DAFT 和 FRR ,結(jié)合起來提供了顯著更強(qiáng)大的神經(jīng)網(wǎng)絡(luò)。特別是,這兩種方法使用對(duì)抗微調(diào)以及逆特征預(yù)測(cè),提升了學(xué)習(xí)網(wǎng)絡(luò)的健壯性。
論文鏈接:?https://arxiv.org/pdf/2006.07710.pdf?
推理效率
增加神經(jīng)網(wǎng)絡(luò)的規(guī)模已被證明在提高其預(yù)測(cè)準(zhǔn)確性方面有驚人的效果,然而,在現(xiàn)實(shí)世界中利用這些優(yōu)勢(shì)是具有挑戰(zhàn)性的,因?yàn)榇笮湍P偷耐评沓杀究赡苓^高了,該問題也促使策略提高服務(wù)效率,而不犧牲準(zhǔn)確性。
研究人員提出了實(shí)現(xiàn)該目標(biāo)的不同策略,特別是基于知識(shí)蒸餾和自適應(yīng)計(jì)算的策略。
蒸餾
蒸餾是一種簡單而有效的模型壓縮方法,極大地?cái)U(kuò)展了大型神經(jīng)模型的潛在適用性,并且在廣告推薦等一系列實(shí)際應(yīng)用中被證明是非常有效的。
大多數(shù)蒸餾的用例都涉及到將基本模型直接應(yīng)用到給定的領(lǐng)域,對(duì)于何時(shí)以及為什么應(yīng)該這樣做只有有限的理解。Google的研究著眼于根據(jù)特定的環(huán)境對(duì)蒸餾進(jìn)行裁剪,并系統(tǒng)性地研究了決定蒸餾成功的因素。
在算法方面,通過仔細(xì)建模教師模型提供的標(biāo)簽中的噪聲,研究人員開發(fā)了一個(gè)原則性的方法來重新加權(quán)的訓(xùn)練例子,和一個(gè)穩(wěn)健的方法來抽樣的數(shù)據(jù)子集有教師標(biāo)簽。
論文鏈接:https://arxiv.org/abs/2210.06711
在「教師指導(dǎo)訓(xùn)練」的過程中,研究人員提出了一個(gè)新的蒸餾框架: 不是被動(dòng)地使用教師來標(biāo)注一個(gè)固定的數(shù)據(jù)集,而是主動(dòng)地使用教師來指導(dǎo)信息樣本的選擇來進(jìn)行標(biāo)注,這使得蒸餾過程在有限的數(shù)據(jù)或長尾設(shè)置中更有效。
論文鏈接:?https://arxiv.org/abs/2208.06825?
同時(shí)還研究了從交叉編碼器(dual-encoder, 例如 BERT)到因子雙編碼器(dual-encoder)的新方法,這也是對(duì)(query, document)對(duì)的相關(guān)性進(jìn)行評(píng)分的重要設(shè)置。
論文鏈接:https://proceedings.mlr.press/v162/menon22a/menon22a.pdf
文中研究了交叉編碼器和雙重編碼器之間性能差距的原因,指出這可能是泛化的結(jié)果,而非雙編碼器的容量限制。
精心構(gòu)造的蒸餾損耗函數(shù)可以緩解這種情況,縮小交叉編碼器和雙編碼器之間的性能差距。
隨后,在 EmbedDistil進(jìn)一步研究了通過匹配來自教師模型的嵌入來進(jìn)一步改進(jìn)雙編碼器精餾。該策略還可用于從大到小的雙編碼器模型中提取信息,繼承和凍結(jié)教師的文檔嵌入被證明是非常有效的。
論文鏈接:?https://arxiv.org/abs/2301.12005?
在理論方面提供了一個(gè)新的視角,通過監(jiān)督復(fù)雜性的蒸餾,衡量學(xué)生如何能夠預(yù)測(cè)教師的標(biāo)簽。
論文鏈接:?https://arxiv.org/abs/2301.12245?
利用神經(jīng)正切核(NTK)理論得出了一些概念性的結(jié)論,比如,能力差距可能會(huì)影響蒸餾,因?yàn)檫@樣的教師的標(biāo)簽可能出現(xiàn)類似于純粹的隨機(jī)標(biāo)簽的學(xué)生。
論文鏈接:?https://arxiv.org/abs/2301.12923?
同時(shí)進(jìn)一步證明,蒸餾導(dǎo)致學(xué)生欠擬合的點(diǎn)也是對(duì)于教師模型比較難的問題,從直覺上講,這可能有助于學(xué)生將其有限的能力集中在那些可以合理建模的樣本上。
自適應(yīng)計(jì)算
雖然蒸餾是降低推理成本的有效方法,但它在所有樣本中的作用是一致的(uniformly),直觀地說,一些「簡單」的樣本可能本質(zhì)上需要比相對(duì)更「難」樣本更少的計(jì)算。
自適應(yīng)計(jì)算的目標(biāo)是設(shè)計(jì)能夠進(jìn)行這種依賴于樣本的計(jì)算的機(jī)制。
Confident Adaptive Language Modeling(CALM)為 T5等基于Transformer的文本生成器引入了受控的早期退出功能。
論文鏈接:?https://arxiv.org/abs/2207.07061?
在這種形式的自適應(yīng)計(jì)算中,模型動(dòng)態(tài)修改每個(gè)解碼步驟使用的Transformer層數(shù),其中early-exit gate使用帶有決策閾值的置信度量,該置信度量經(jīng)過校準(zhǔn)以滿足統(tǒng)計(jì)性能保證。
這樣,模型只需要為最具挑戰(zhàn)性的預(yù)測(cè)計(jì)算完整的解碼器層堆棧,更簡單的預(yù)測(cè)只需要計(jì)算幾個(gè)解碼器層。在實(shí)踐中,該模型平均使用約三分之一的層進(jìn)行預(yù)測(cè),在保持同等水平的生成質(zhì)量的同時(shí),產(chǎn)生2-3倍的加速。
一個(gè)常用的自適應(yīng)計(jì)算機(jī)制包括兩個(gè)或多個(gè)基本模型的級(jí)聯(lián),其關(guān)鍵問題是決定是簡單地使用當(dāng)前模型的預(yù)測(cè),還是將預(yù)測(cè)推遲到下游模型,學(xué)習(xí)何時(shí)推遲需要設(shè)計(jì)一個(gè)合適的損失函數(shù),它可以利用適當(dāng)?shù)男盘?hào)作為推遲決策的監(jiān)督。
Google Research系統(tǒng)性地研究了現(xiàn)有的損失函數(shù),證明由于標(biāo)簽平滑的隱式應(yīng)用,它們可能不適合訓(xùn)練樣本,文中還展示了可以通過延遲規(guī)則的事后訓(xùn)練來緩解這種情況,這種訓(xùn)練不需要以任何方式修改模型內(nèi)部。
論文鏈接:?https://openreview.net/pdf?id=_jg6Sf6tuF7?
對(duì)于檢索應(yīng)用程序,標(biāo)準(zhǔn)的語義搜索技術(shù)對(duì)大型模型生成的每個(gè)嵌入使用固定的表示,也就是說,不管下游任務(wù)及其相關(guān)的計(jì)算環(huán)境或約束,表示的大小和能力大多是固定的。
Matryoshka 表示學(xué)習(xí)引入了根據(jù)部署環(huán)境調(diào)整表示的靈活性,強(qiáng)制表示在它的坐標(biāo)中有一個(gè)自然的排序,這樣對(duì)于資源受限的環(huán)境,只使用表示的最高的幾個(gè)坐標(biāo);而對(duì)于更豐富和精度關(guān)鍵的設(shè)置,可以使用表示的更多坐標(biāo)。
論文鏈接:?https://openreview.net/pdf?id=9njZa1fm35?
當(dāng)結(jié)合標(biāo)準(zhǔn)近似最近鄰搜索技術(shù),如掃描神經(jīng)網(wǎng)絡(luò),MRL 能夠提供多達(dá)16倍的低計(jì)算相同的召回率和準(zhǔn)確度量。
總結(jié)
大型機(jī)器學(xué)習(xí)模型在多個(gè)領(lǐng)域都展現(xiàn)出具有變革性的結(jié)果,但訓(xùn)練和推理的效率正在成為使這些模型在現(xiàn)實(shí)世界中切實(shí)可行的關(guān)鍵需求。
通過開發(fā)新的基礎(chǔ)技術(shù),Google Research已經(jīng)在使大型機(jī)器學(xué)習(xí)模型高效方面進(jìn)行了大量投資,這也需要持續(xù)性的努力,未來將繼續(xù)探索核心挑戰(zhàn),使機(jī)器學(xué)習(xí)模型更加健壯和高效。