如何提升深度學(xué)習(xí)算法效率
十年前,深度學(xué)習(xí)崛起的部分原因在于新算法和架構(gòu)的融合、數(shù)據(jù)的顯著增加以及計(jì)算能力方面的提升。過(guò)去10年里,AI和ML模型更加深入、復(fù)雜、有了更多的參數(shù)和訓(xùn)練數(shù)據(jù),也因而變得更大、更繁瑣,這也為機(jī)器學(xué)習(xí)歷史帶來(lái)了最具變革性的成果。
這些模型越來(lái)越多地應(yīng)用于生產(chǎn)和業(yè)務(wù)應(yīng)用程序中,與此同時(shí),其效率和成本已經(jīng)從次要的考慮因素演變?yōu)橹饕南拗?。為了?yīng)對(duì)在高效架構(gòu),訓(xùn)練效率,數(shù)據(jù)效率和推理效率四個(gè)層面的重大挑戰(zhàn),谷歌繼續(xù)在ML效率上投入大量資金。除了效率之外,這些模型還面臨著許多關(guān)于真實(shí)性、安全性、隱私性和新鮮度的挑戰(zhàn)。接下來(lái),本文將重點(diǎn)介紹Google Research為了應(yīng)對(duì)上述挑戰(zhàn),在開(kāi)發(fā)新算法方面所做的努力。
研究的基本問(wèn)題在于「是否有更好的方法來(lái)參數(shù)化模型以提高效率?」2022年,研究人員專注于通過(guò)檢索上下文、混合專家系統(tǒng),以及提升Transformer(大型ML模型的心)的效率來(lái)研發(fā)通過(guò)增強(qiáng)模型來(lái)注入外部知識(shí)的新技術(shù)。
上下文增強(qiáng)模型?
為了追求更高的質(zhì)量和效率,可以使用來(lái)自大型數(shù)據(jù)庫(kù)或可訓(xùn)練內(nèi)存的外部上下文來(lái)增強(qiáng)神經(jīng)模型。通過(guò)利用檢索到的上下文,神經(jīng)網(wǎng)絡(luò)無(wú)需在其內(nèi)部參數(shù)中廣泛地儲(chǔ)備知識(shí),就能實(shí)現(xiàn)更好的參數(shù)效率、可解釋性和真實(shí)性。
一篇名為《用于上下文增強(qiáng)語(yǔ)言建模的解耦上下文處理》(Decoupled Context Processing for Context Augmented Language Modeling)的文章中探索了一種基于解耦編碼器-解碼器架構(gòu)的簡(jiǎn)單架構(gòu),用于將外部上下文合并到語(yǔ)言模型中。在自回歸語(yǔ)言建模和開(kāi)放領(lǐng)域問(wèn)答任務(wù)中,這大大節(jié)省了計(jì)算量。然而,預(yù)訓(xùn)練大型語(yǔ)言模型(LLMs)通過(guò)在大型訓(xùn)練集上的自監(jiān)督消耗了大量的信息。但是,目前還不清楚這些模型對(duì)世界的認(rèn)識(shí)是如何與所呈現(xiàn)的上下文相互作用的。通過(guò)知識(shí)感知微調(diào)(KAFT),研究人員將反事實(shí)和不相關(guān)的上下文納入標(biāo)準(zhǔn)監(jiān)督數(shù)據(jù)集,這加強(qiáng)了LLM的可控性和魯棒性。
用于上下文合并的編碼器-解碼器交叉注意機(jī)制,允許上下文編碼與語(yǔ)言模型推理解耦,進(jìn)而提升上下文增強(qiáng)模型的效率。
在尋求模塊化深度網(wǎng)絡(luò)的過(guò)程中,其中一個(gè)問(wèn)題是如何設(shè)計(jì)具有相應(yīng)計(jì)算模塊的概念數(shù)據(jù)庫(kù)。研究人員提出了一種理論體系架構(gòu),將「記憶事件」(remember events)以sketches的形式存儲(chǔ)在一個(gè)外部LSH表中,其中包括一個(gè)pointers模塊來(lái)處理sketches。
利用加速器從大型數(shù)據(jù)庫(kù)中快速檢索信息是上下文增強(qiáng)模型的另一大挑戰(zhàn)。研究人員開(kāi)發(fā)了一種基于TPU的相似度搜索算法,該算法與TPU的性能模型保持一致,并對(duì)預(yù)期召回率提供了分析保證,實(shí)現(xiàn)了峰值性能。搜索算法通常涉及大量的超參數(shù)和設(shè)計(jì)選擇,這使得在執(zhí)行新任務(wù)時(shí)很難對(duì)它們進(jìn)行調(diào)整。研究人員提出了一種新的約束優(yōu)化算法,用于自動(dòng)化超參數(shù)調(diào)優(yōu)。將期望的成本或召回率固定為輸入,所提出的算法產(chǎn)生的調(diào)優(yōu)在經(jīng)驗(yàn)上非常接近速度-召回率帕累托邊界(speed-recall Pareto frontier),并在標(biāo)準(zhǔn)基準(zhǔn)測(cè)試中提供領(lǐng)先的性能。
混合專家模型?
經(jīng)證明,混合專家(MoE)模型是在不過(guò)度增加計(jì)算成本的前提下,提高神經(jīng)網(wǎng)絡(luò)模型容量的有效手段。MoE的基本思想是由許多專家子網(wǎng)絡(luò)構(gòu)建出一個(gè)統(tǒng)一網(wǎng)絡(luò),其中每個(gè)輸入由一個(gè)合適的專家子集處理。因此,與標(biāo)準(zhǔn)神經(jīng)網(wǎng)絡(luò)相比,MoE只調(diào)用了整個(gè)模型的一小部分,從而產(chǎn)生了如GLaM等語(yǔ)言模型應(yīng)用程序所示的高效率。
GLaM 體系架構(gòu)中的每個(gè)輸入 token 被動(dòng)態(tài)路由到 64 個(gè)專家網(wǎng)絡(luò)中的兩個(gè)進(jìn)行預(yù)測(cè)。
對(duì)于給定的輸入,路由函數(shù)負(fù)責(zé)決定應(yīng)當(dāng)激活哪些專家,該函數(shù)的設(shè)計(jì)具有挑戰(zhàn)性,因?yàn)檠芯空呦M苊鈱?duì)每個(gè)專家的利用不足和過(guò)度利用。最近的一項(xiàng)工作提出了專家選擇路由,這是一種新的路由機(jī)制,它不是將每個(gè)輸入 token 分配給 top-k 專家,而是將每個(gè)專家分配給 top-k token。這將自動(dòng)確保專家的負(fù)載平衡,同時(shí)也自然地允許多個(gè)專家處理一個(gè)輸入 token。
專家選擇路由。具有預(yù)定緩沖區(qū)容量的專家被分配 top-k token,從而保證負(fù)載平衡。每個(gè) token 可以由數(shù)量不定的專家處理。
有效的 Transformer?
Transformer 是當(dāng)下正火熱的序列到序列模型,在從視覺(jué)到自然語(yǔ)言理解等一系列具有挑戰(zhàn)性的問(wèn)題上取得了顯著的成功。這種模型的核心組成部分是注意力層,它識(shí)別查詢和鍵之間的相似性,并使用這些相似性構(gòu)造一個(gè)適當(dāng)?shù)闹导訖?quán)組合。雖然性能強(qiáng),但注意力機(jī)制的計(jì)算效率卻不高,復(fù)雜度通常為輸入序列長(zhǎng)度的二次方。
隨著 Transformer 規(guī)模的不斷增長(zhǎng),其中一個(gè)問(wèn)題的研究十分有價(jià)值,即是否有任何自然發(fā)生的結(jié)構(gòu)或模式的學(xué)習(xí)模型,可以解決注意力有效的原理。為此,研究人員研究了中間 MLP 層中的學(xué)習(xí)嵌入,并且發(fā)現(xiàn)它們非常稀疏 —— 例如,T5-Large 模型有 1% 的非零項(xiàng)。稀疏性進(jìn)一步表明,人們可以在不影響模型性能的情況下潛在地降低 FLOPs。
最近,有研究推出 Treeformer—— 一種依賴于決策樹(shù)的標(biāo)準(zhǔn)注意力計(jì)算的替代方案。簡(jiǎn)單來(lái)說(shuō),這可以快速識(shí)別與查詢相關(guān)的鍵的一小部分,并且只對(duì)該集合執(zhí)行注意力操作。根據(jù)經(jīng)驗(yàn),Treeformer 可以將注意力層的 FLOPs 降低 30 倍。除此之外還有序列注意力 —— 一種結(jié)合了注意力和貪婪算法的可微分特征選擇方法。該技術(shù)對(duì)線性模型有很強(qiáng)的可證明保證,并可無(wú)縫擴(kuò)展到大型嵌入模型。?
另一種提高 Transformer 效率的方法是在注意力層中加速 softmax 計(jì)算。在「low-rank approximation of the softmax kernel」研究基礎(chǔ)上,研究人員提出了一類新的隨機(jī)特征,提供了 softmax kernel 的首個(gè)「positive and bounded」隨機(jī)特征近似,并且在序列長(zhǎng)度上的計(jì)算是線性的。
訓(xùn)練效率?
高效的優(yōu)化方法是現(xiàn)代 ML 應(yīng)用程序的基石,在大規(guī)模設(shè)置中,這一點(diǎn)尤其重要。在這種設(shè)置下,即使是像 Adam 這樣的一階自適應(yīng)方法通常也很昂貴,并且訓(xùn)練穩(wěn)定性面臨重重挑戰(zhàn)。此外,這些方法通常對(duì)神經(jīng)網(wǎng)絡(luò)的架構(gòu)不可知,從而忽略了架構(gòu)的豐富性,導(dǎo)致訓(xùn)練效率低下。這也促使新技術(shù)不斷被提出以更有效地優(yōu)化現(xiàn)代神經(jīng)網(wǎng)絡(luò)模型。研究人員正在開(kāi)發(fā)新的架構(gòu)感知訓(xùn)練技術(shù),例如,用于訓(xùn)練 Transformer 網(wǎng)絡(luò)的一些研究,包括新的規(guī)模不變的 Transformer 網(wǎng)絡(luò)和新的剪枝方法,并與隨機(jī)梯度下降(SGD)結(jié)合使用,以加快訓(xùn)練進(jìn)程。在該方法的幫助下,研究人員第一次能夠使用簡(jiǎn)單的 SGD 有效地訓(xùn)練 BERT,而不需要自適應(yīng)。
此外,研究人員在 LocoProp 的幫助下提出了一種新的方法 —— 在使用與一階優(yōu)化器相同的計(jì)算和內(nèi)存資源的同時(shí),實(shí)現(xiàn)與二階優(yōu)化器類似的性能。LocoProp 采用模塊化的神經(jīng)網(wǎng)絡(luò)視圖,將它們分解成層的組合。然后允許每一層都有自己的損失函數(shù)以及輸出目標(biāo)和權(quán)重正則化器。有了這個(gè)設(shè)置,經(jīng)過(guò)適當(dāng)?shù)那昂髠鬟f后,LocoProp 繼續(xù)對(duì)每一層的局部損失進(jìn)行并行更新。事實(shí)上,無(wú)論是理論上還是經(jīng)驗(yàn)上,這些更新可以被證明類似于那些高階優(yōu)化器。在深度自編碼器基準(zhǔn)上,LocoProp 實(shí)現(xiàn)了與高階優(yōu)化器相當(dāng)?shù)男阅?,同時(shí)更具速度優(yōu)勢(shì)。
論文鏈接:https://proceedings.mlr.press/v151/amid22a.html?
與反向傳播類似,LocoProp 應(yīng)用前向傳遞來(lái)計(jì)算激活。在向后傳遞中,LocoProp 為每一層設(shè)置每個(gè)神經(jīng)元目標(biāo)。最后,LocoProp 將模型訓(xùn)練拆分為跨層的獨(dú)立問(wèn)題,其中幾個(gè)本地更新可以并行應(yīng)用于每個(gè)層的權(quán)重。
SGD 等優(yōu)化器的核心思想是,每個(gè)數(shù)據(jù)點(diǎn)從分布中獨(dú)立且相同地采樣??上н@在實(shí)際環(huán)境中很難滿足,比如強(qiáng)化學(xué)習(xí),在這種情況下,模型(或智能體)必須從基于自己預(yù)測(cè)生成的數(shù)據(jù)中學(xué)習(xí)。研究人員提出了一種新的基于反向經(jīng)驗(yàn)重放的 SGD 算法,該算法可以在線性動(dòng)力系統(tǒng)、非線性動(dòng)力系統(tǒng)和 Q-learning 中找到最優(yōu)解。此外,已經(jīng)有研究證明該方法的增強(qiáng)版本 IER 是目前最先進(jìn)的版本,并且是在各種流行的 RL 基準(zhǔn)測(cè)試中最穩(wěn)定的體驗(yàn)重放技術(shù)。
數(shù)據(jù)效率?
在許多任務(wù)中,深度神經(jīng)網(wǎng)絡(luò)嚴(yán)重依賴于大型數(shù)據(jù)集。除了大型數(shù)據(jù)集帶來(lái)的存儲(chǔ)成本和潛在的安全 / 隱私問(wèn)題外,在此類數(shù)據(jù)集上訓(xùn)練現(xiàn)代深度神經(jīng)網(wǎng)絡(luò)還會(huì)產(chǎn)生很高的計(jì)算成本。解決這個(gè)問(wèn)題的可行方法之一是對(duì)數(shù)據(jù)子集進(jìn)行選擇。?
研究人員分析了子集選擇框架,設(shè)計(jì)用于實(shí)際批處理設(shè)置中的任意模型族。在這種情況下,學(xué)習(xí)器可以一次采樣一個(gè)示例,同時(shí)訪問(wèn)上下文和 true 標(biāo)簽,但為了限制開(kāi)銷,只有在選擇了足夠多的示例批次后才能更新其狀態(tài)(即進(jìn)一步的訓(xùn)練模型權(quán)重)。研究人員開(kāi)發(fā)了一種算法,稱為 IWeS,它通過(guò)重要性抽樣來(lái)選擇示例,其中分配給每個(gè)示例的抽樣概率是基于在先前選擇的批次上訓(xùn)練的模型的熵。研究所提供的理論分析證明了泛化和抽樣率的界限。
訓(xùn)練大型網(wǎng)絡(luò)的另一個(gè)問(wèn)題是,它們可能對(duì)訓(xùn)練數(shù)據(jù)和部署時(shí)看到的數(shù)據(jù)之間的分布變化高度敏感,特別是在使用有限數(shù)量的訓(xùn)練數(shù)據(jù)時(shí),這些數(shù)據(jù)可能無(wú)法覆蓋所有部署時(shí)場(chǎng)景。最近的一項(xiàng)研究假設(shè)「極端簡(jiǎn)單性偏差」是神經(jīng)網(wǎng)絡(luò)這種脆弱性背后的關(guān)鍵問(wèn)題,其使這一假設(shè)成為可行,導(dǎo)致了兩種新的互補(bǔ)方法 ——DAFT 和 FRR—— 結(jié)合在一起時(shí),可以提供明顯更魯棒的神經(jīng)網(wǎng)絡(luò)。特別是,這兩種方法使用對(duì)抗性微調(diào)以及反向特征預(yù)測(cè)來(lái)加強(qiáng)學(xué)習(xí)網(wǎng)絡(luò)。
推理效率
事實(shí)證明,增加神經(jīng)網(wǎng)絡(luò)的規(guī)模能夠提高其預(yù)測(cè)準(zhǔn)確性,然而,在現(xiàn)實(shí)世界中實(shí)現(xiàn)這些收益是具有挑戰(zhàn)性的,因?yàn)榇笮湍P偷耐评沓杀緦?duì)于部署來(lái)說(shuō)非常高。這促使策略提高服務(wù)效率,而不犧牲準(zhǔn)確性。在 2022 年,專家研究了實(shí)現(xiàn)這一目標(biāo)的不同策略,特別是基于知識(shí)蒸餾和自適應(yīng)計(jì)算的策略。
蒸餾?
蒸餾是一種簡(jiǎn)單而有效的模型壓縮方法,極大地?cái)U(kuò)展了大型神經(jīng)模型的潛在適用性。已有研究證明蒸餾能在廣告推薦等一系列實(shí)際應(yīng)用中發(fā)揮其作用。蒸餾的大多數(shù)用例涉及基本配方在給定領(lǐng)域的直接應(yīng)用,對(duì)何時(shí)以及為什么這應(yīng)該起作用的理解有限。谷歌今年的研究著眼于針對(duì)特定環(huán)境定制蒸餾,并正式研究了控制蒸餾成功的因素。?
在算法方面,研究通過(guò)仔細(xì)建模教師標(biāo)簽中的噪聲,開(kāi)發(fā)出了一項(xiàng)重新加權(quán)訓(xùn)練示例的重要途徑,以及一項(xiàng)有效措施來(lái)對(duì)數(shù)據(jù)子集進(jìn)行采樣以獲得教師標(biāo)簽。谷歌在《Teacher Guided Training: An Efficient Framework for Knowledge Transfer》中表明:不是被動(dòng)地使用教師來(lái)注釋固定的數(shù)據(jù)集,而是主動(dòng)地使用教師來(lái)指導(dǎo)選擇要注釋的信息性樣本。這使得蒸餾過(guò)程在有限的數(shù)據(jù)或長(zhǎng)尾設(shè)置中脫穎而出。
除此之外,谷歌還研究了從交叉編碼器 (dual-encoder, 例如 BERT) 到因子雙編碼器(dual-encoder)的新方法,這也是對(duì)(query, document)對(duì)的相關(guān)性進(jìn)行評(píng)分的重要設(shè)置。研究人員探討了交叉編碼器和雙編碼器之間性能差距的原因,注意到這可能是泛化的結(jié)果,而不是雙編碼器的容量限制。精餾損失函數(shù)的精心構(gòu)造可以緩解這種情況,并減少交叉編碼器和雙編碼器性能之間的差距。隨后,在 embedtitil 中,研究通過(guò)匹配教師模型中的嵌入來(lái)進(jìn)一步改進(jìn)雙編碼器蒸餾。這種策略也可以用于從大到小的雙編碼器模型中提取信息,其中繼承和凍結(jié)教師的文檔嵌入可以證明是非常有效的。
理論方面,研究從監(jiān)督復(fù)雜性角度出發(fā),提供了一個(gè)關(guān)于蒸餾的新視角,這是一種衡量學(xué)生預(yù)測(cè)教師標(biāo)簽程度的方法。NTK(neural tangent kernel )理論提供了概念性的見(jiàn)解。研究進(jìn)一步證明,蒸餾會(huì)導(dǎo)致學(xué)生不適合教師模型認(rèn)為難以建模的點(diǎn)。直觀地說(shuō),這可以幫助學(xué)生將有限的能力集中在那些可以合理建模的樣本上。
自適應(yīng)計(jì)算
雖然蒸餾是一種降低推理成本的有效手段,但它在所有樣本上都是一致的。然而,直觀地說(shuō),一些簡(jiǎn)單(easy)樣本可能天生就比困難(hard)樣本需要更少的計(jì)算。自適應(yīng)計(jì)算的目標(biāo)是設(shè)計(jì)能夠?qū)崿F(xiàn)這種依賴于樣本的計(jì)算的機(jī)制。?
CALM(Confident Adaptive Language Modeling)為基于 Transformer 的文本生成器(如 T5)引入了受控的早期退出(early-exit)功能。
在這種形式的自適應(yīng)計(jì)算中,模型動(dòng)態(tài)地修改每個(gè)解碼步驟使用的 Transformer 層數(shù)。早期退出門使用帶有決策閾值的置信度測(cè)量,該決策閾值經(jīng)過(guò)校準(zhǔn),以滿足統(tǒng)計(jì)性能保證。通過(guò)這種方式,模型只需要為最具挑戰(zhàn)性的預(yù)測(cè)計(jì)算解碼器層的完整堆棧。更簡(jiǎn)單的預(yù)測(cè)只需要計(jì)算幾個(gè)解碼器層。在實(shí)踐中,該模型平均使用大約三分之一的層進(jìn)行預(yù)測(cè),在保持相同水平的生成質(zhì)量的同時(shí),速度能提升 2-3 倍。
使用常規(guī)語(yǔ)言模型(top)和 CALM (bottom)生成文本。CALM 試圖做出早期預(yù)測(cè)。一旦對(duì)生成的內(nèi)容足夠自信(深藍(lán)色調(diào)),它就會(huì)跳過(guò)來(lái)節(jié)省時(shí)間。?
一種流行的自適應(yīng)計(jì)算機(jī)制是兩個(gè)或多個(gè)基本模型的級(jí)聯(lián)。使用級(jí)聯(lián)的一個(gè)關(guān)鍵問(wèn)題:是簡(jiǎn)單地使用當(dāng)前模型的預(yù)測(cè),還是將預(yù)測(cè)推遲到下游模型。學(xué)習(xí)何時(shí)延遲需要設(shè)計(jì)一個(gè)合適的損失函數(shù),它可以利用適當(dāng)?shù)男盘?hào)作為延遲決策的監(jiān)督。為了實(shí)現(xiàn)這一目標(biāo),研究人員正式研究了現(xiàn)有的損失函數(shù),證明由于隱含的標(biāo)簽平滑應(yīng)用,它們可能不適合訓(xùn)練樣本。研究展示了可以通過(guò)延遲規(guī)則的 post-hoc 訓(xùn)練來(lái)緩解這種情況,這并不需要以任何方式修改模型內(nèi)部。
對(duì)于檢索應(yīng)用,標(biāo)準(zhǔn)語(yǔ)義搜索技術(shù)對(duì)大型模型生成的每個(gè)嵌入使用固定表示。也就是說(shuō),無(wú)論下游任務(wù)及其相關(guān)的計(jì)算環(huán)境或約束如何,表示的大小和能力基本上是固定的。MRL(Matryoshka representation learning)引入了根據(jù)部署環(huán)境調(diào)整表示法的靈活性。當(dāng)與標(biāo)準(zhǔn)的近似最近鄰搜索技術(shù)(如 ScaNN)結(jié)合使用時(shí),MRL 能夠提供高達(dá) 16 倍的低計(jì)算,同時(shí)具有相同的召回率和準(zhǔn)確率指標(biāo)。
- 上一篇
不要用ChatGPT的火爆質(zhì)疑元宇宙
很多人說(shuō),元宇宙涼了,也有人說(shuō),元宇宙本身就是一個(gè)偽命題,更有人說(shuō),元宇宙就是一個(gè)徹頭徹尾的概念,并不具備落地的價(jià)值。
- 下一篇
AI算法發(fā)現(xiàn)種新納米結(jié)構(gòu),研究時(shí)間從1個(gè)月壓縮到6小時(shí)
實(shí)驗(yàn)來(lái)自美國(guó)能源部(DOE)布魯克黑文國(guó)家實(shí)驗(yàn)室,研究人員用AI驅(qū)動(dòng)的技術(shù),發(fā)現(xiàn)了3種新的納米結(jié)構(gòu)。
相關(guān)資訊
- 大規(guī)模數(shù)據(jù)處理:探索如何高效地處
- 物聯(lián)網(wǎng)設(shè)備成功接入的四個(gè)關(guān)鍵要
- AI的爆發(fā)是資本騙局還是技術(shù)飛躍
- 3個(gè)非常常見(jiàn)的人工智能在線課程
- 綠色物聯(lián)網(wǎng):向?qū)嶋H可持續(xù)性的轉(zhuǎn)變
- 從物聯(lián)網(wǎng)到威脅互聯(lián)網(wǎng)
- 云遷移到數(shù)據(jù)中心的網(wǎng)絡(luò)注意事項(xiàng)
- 深度學(xué)習(xí)模型可能難以識(shí)別AI生成
- 什么是云遷移?遷移到云的基本指南
- 云計(jì)算的隱私性如何保證?