虽然谷歌的Bard翻车了,但谷歌的AI实力仍然不容小觑。
自开年以来,由Jeff Dean领衔的Google Research年终总结系列「Google Research, 2022 & beyond」一直在持续更新,最近也是更新到了第四期。
本期以「提升模型效率」为主题,一起看看谷歌工程师们都想出了哪些ideas!
在过去十年里,深度学习呈现爆炸式发展,很大程度上是由于新算法和体系结构的融合、数据量的显著增加以及计算能力的提高。
相比十年前,人工智能和机器学习模型变得更加巨大、更复杂,具有更深且更复杂的网络结构、更多的参数、训练时用到了更多的数据,共同促进了机器学习历史上一些最具变革性的成果。
随着这些模型越来越多地部署在生产和业务应用程序中,模型的推理效率和运行成本已经从一个次要因素变成了一个主要的限制因素。
Google在这方面的应对措施就是继续在机器学习效率方面投入巨资,主要解决以下四个难题:
1、高效的模型架构(Efficient Architecture)
2、数据效率(Data Efficiency)
3、训练效率(Training Efficiency)
4、推理效率(Inference Efficiency)
除了效率之外,模型还面临着围绕真实性、安全性、隐私性和时效性(freshness)等诸多难题。
这篇文章将重点介绍一系列Google Research研究公司为应对上述挑战而开发的新算法。
一个最基本的问题是:是否有更好的方法来参数化模型以提高效率?
2022年,Google Research专注于新技术,通过检索上下文增强模型,混合专家,使变压器(位于大多数大型机器学习模型的核心)更有效,从而注入外部知识。
上下文增强模型(Context-augmented models)
为了追求更高的质量和效率,神经模型可以从大型数据库或可训练的记忆库中的外部context中得到增强。
通过利用检索到的上下文,神经网络不需要在其内部参数中记忆大量的世界知识,就能够获得更好的参数效率、可解释性和真实性。
在「上下文增强语言建模的解耦上下文处理」一文中,研究人员探索了一种基于解耦编解码器架构将外部上下文合并到语言模型中的简单架构。
论文链接:https://arxiv.org/abs/2210.05758
该模型能够显著地节省计算量,同时在自回归语言建模和开放领域问题回答任务方面给出了有竞争力的结果。
预训练的大语言模型(LLM)通过对大训练集的自监督消耗了大量的信息,但目前还不清楚这些模型的「世界知识」是如何与输入的context相互作用的。
通过知识感知微调(knowledge aware fine-tuning, KAFT) ,研究人员将反事实上下文和无关上下文结合到标准的监督数据集中,增强了 LLM 的可控性和鲁棒性。
探索模組化深度網路的問題之一是如何設計具有對應運算模組的概念資料庫,研究人員提出了一個理論架構,將「記憶事件」(remember events)以草圖(sketches)的形式儲存在一個外部LSH 表中,其中包括一個pointers模組來處理草圖。
上下文增強模型的另一個難題是從大型資料庫中快速檢索資訊的加速器。
研究人員開發了一個基於 TPU 的最近鄰搜尋演算法,該演算法與 TPU 的效能模型保持一致,並為預期召回提供分析保證,從而達到最佳效能。
搜尋演算法通常涉及大量的超參數和設計選擇,這使得它們很難在新任務上進行最佳化,所以研究人員進一步提出了一種新的約束優化演算法來自動調整超參數,將期望的成本或召回作為輸入,該演算法產生的調整在經驗上非常接近速度召回的Pareto frontier,並在標準基準上給出領先的性能。
混合專家模型
#混合專家(MoE, Mixture-of-experts)模型已被證明是增加神經網路模型容量而不會過度增加其計算成本的有效手段。 MoEs 的基本思想是從多個專家子網絡中建立一個網絡,其中每個輸入由一個合適的專家子網絡處理。
因此,與標準的神經網路相比,MoEs 只調用整個模型的一小部分,從而提高了語言模型應用程式(如 GLaM)的效率。
決定哪些專家應該被啟動(be active)以參與到某一特定輸入取決於路由功能(routing function),路由的設計非常具有挑戰性,因為開發者的預期是每個專家模型都是恰如其分的,不會出現利用不足和過度的情況。
在最近的一項工作中,研究人員提出了專家選擇路由(Expert Choice Routing) ,一種新的路由機制,它不是將每個輸入token分配給top-k 專家,而是反過來將每個專家分配給top-k token,可以自動調節專家的負載平衡,同時自然地允許多個專家處理輸入token
#論文連結:https://openreview.net/pdf?id=jdJo1HIVinI
高效的Transformers
#Transformer是當下最流行的序列到序列的模型,從視覺到自然語言的理解,在一系列具有挑戰性的任務中已經展現了非常強大的性能。
這類模型的一個核心組成部分是注意力層(attention layer),透過計算「查詢」(query)和「鍵」(key)之間的相似度來建構一個適當的“值”(value)加權組合。雖然性能強,但注意力機制的運算效率卻不高,複雜度通常為輸入序列長度的二次方。
隨著Transformer規模的不斷擴大,其中一個重要問題的研究十分有價值:是否有任何自然發生的結構或模式的學習模型,可以解了注意力有效的原理。
對此,Google Research研究了中間MLP 層的學習嵌入,發現它們非常稀疏,例如,T5-大模型只有
論文連結:https:/ /arxiv.org/pdf/2210.06313.pdf
#研究人員最近提出了Treeformer模型,一種依賴決策樹的標準注意力計算的替代方案,直觀地說,它可以快速識別與查詢相關的一小部分鍵,並且只在這個集合上執行注意力操作。根據經驗,Treeformer 可以使注意力層的 FLOP 減少30倍。
同時研究人員也引入了序貫注意( sequential attention),一種將注意和貪婪演算法相結合的可微特徵選擇方法,該技術經過證明,可以直接無縫遷移到大規模模型。
另一種提升Transformer效率的方法是在註意層加速softmax的運算。
在low-rank approximation of the softmax kernel研究基礎上,研究人員提出了一類新的隨機特徵,提供了softmax kernel的首個「positive and bounded」隨機特徵近似,並且在序列長度上是計算線性的。
論文連結:https://arxiv.org/abs/2205.15317
並且也提出了第一個涵蓋多個注意力masking的機制,如因果編碼和相對位置編碼。
有效的最佳化方法是現代機器學習應用的基石,在大規模環境中尤其重要。
在這種情況下,即使是像Adam這樣的一階自適應方法也往往需要大量的計算量,而且訓練的穩定性也會變得非常困難。
此外,這些方法往往與神經網路的體系結構無關,沒有考慮模型架構內的結構訊息,導致訓練效率低下,這也促使新技術能夠更有效地優化現代神經網路模型。
Google Research開發了一些新的基於模型架構的訓練技術,例如,用於訓練Transofmre網絡,包括新的規模不變的Transofmre網絡和新的clipping方法,當與原版隨機梯度下降(SGD)結合時,可以加快訓練速度。
論文連結:https://arxiv.org/pdf/2202.00980.pdf
使用這種方法,研究人員首次實現了僅使用簡單的SGD 就能有效地訓練BERT,而無需自適應(adaptivity)。
此外,研究人員提出了一種新的方法LocoProp,在使用與一階優化器相同的計算和記憶體資源的情況下,獲得類似於二階優化器的性能。
LocoProp 透過將神經網路分解為一個層的組合,從而獲得了神經網路的模組化視圖。然後允許每一層都有自己的損失函數以及輸出目標和重量調整器。透過這種設置,經過適當的向前向後梯度傳遞後,LocoProp 繼續對每個層的「局部損失」執行並行更新。
論文連結:https://proceedings.mlr.press/v151/amid22a.html
事實上,這些更新在理論上和經驗上都類似於高階優化器,在深度自編碼器基準測試中,LocoProp 獲得了與高階優化器相當的性能,同時速度明顯更快。
像SGD 這樣的最佳化器的一個關鍵假設是,每個資料點都是從一個分佈中獨立且完全相同地取樣的,不過在強化學習等實際應用環境中,很難滿足該假設,因為模型(或智能體)必須從根據自己的預測產生的數據中學習。
研究人員提出了一種新的演算法方法,稱為具有反向經驗重播的SGD,可以在線性動力系統(linear dynamical system)、非線性動力系統和強化學習的Q 學習等幾種情況下找到最優解。
論文連結:https://arxiv.org/abs/2103.05896
#此外,這種方法的一個改進版本IER ,經過實驗被證明是最先進的,並且是各種流行的RL 基準測試上最穩定的經驗重播技術。
深度神經網路嚴重依賴大型資料集,隨之而來的還有儲存成本和潛在的安全/隱私問題,在這些數據集上訓練現代深度神經網路也會帶來很高的運算成本。
解決這個問題的一個有前景的方法是資料子集選擇,其中學習器的目標是從大量的訓練樣本中找到資訊量最大的子集,以接近(甚至改進)整個訓練集的訓練。
研究人員分析了一個子集選擇框架設計工作與任意模型族在一個實際的batch設置,在這種設置下,學習器可以一次採樣一個樣本,訪問上下文和真實標籤,但為了限制開銷,一旦選擇了足夠大的一批樣本,只能更新其狀態,即,進一步訓練模型權重。
並基於此開發了一種稱為IWeS 的演算法,該演算法透過重要抽樣來選擇樣本,其中分配給每個樣本的抽樣機率是基於對先前選定的批次訓練的模型的熵。文中提供了一個理論分析,證明了泛化和抽樣率的界限。
論文連結:https://arxiv.org/pdf/2301.12052.pdf
訓練大型網路的另一個問題是,它們可能對部署時看到的訓練資料和資料之間的分佈變化高度敏感,特別是在處理數量有限的訓練數據時,這些數據可能不包括所有的部署時間情境。
最近的一項研究假設「極端簡單性偏差」是神經網路這種脆弱性背後的關鍵問題,其最新工作使這一假設成為可行,導致了兩種新的互補方法DAFT 和FRR ,結合起來提供了顯著更強大的神經網路。特別是,這兩種方法使用對抗微調以及逆特徵預測,提升了學習網路的健全性。
論文連結:https://arxiv.org/pdf/2006.07710.pdf
增加神經網路的規模已被證明在提高其預測準確性方面有驚人的效果,然而,在現實世界中利用這些優勢是具有挑戰性的,因為大型模型的推理成本可能過高了,問題也促使策略提高服務效率,而不犧牲準確性。
研究人員提出了實現該目標的不同策略,特別是基於知識蒸餾和自適應計算的策略。
蒸餾
#蒸餾是一種簡單而有效的模型壓縮方法,大大擴展了大型神經模型的潛在適用性,並且在廣告推薦等一系列實際應用中被證明是非常有效的。
大多數蒸餾的用例都涉及將基本模型直接應用到給定的領域,對於何時以及為什麼應該這樣做只有有限的理解。 Google的研究著眼於根據特定的環境對蒸餾進行裁剪,並系統性地研究了決定蒸餾成功的因素。
在演算法方面,透過仔細建模教師模型提供的標籤中的噪聲,研究人員開發了一個原則性的方法來重新加權的訓練例子,和一個穩健的方法來抽樣的資料子集有教師標籤。
論文連結:https://arxiv.org/abs/2210.06711
#在「教師指導訓練」的過程中,研究者提出了一個新的蒸餾框架: 不是被動地使用教師來標註一個固定的數據集,而是主動地使用教師來指導資訊樣本的選擇來進行標註,這使得蒸餾過程在有限的數據或長尾設定中更有效。
論文連結:https://arxiv.org/abs/2208.06825
同時也研究了從交叉編碼器(dual-encoder, 例如BERT)到因子雙編碼器(dual-encoder)的新方法,這也是對(query, document)對的相關性進行評分的重要設定。
論文連結:https://proceedings.mlr.press/v162/menon22a/menon22a.pdf
文中研究了交叉編碼器和雙重編碼器之間效能差距的原因,指出這可能是泛化的結果,而非雙編碼器的容量限制。
精心建構的蒸餾損耗函數可以緩解這種情況,縮小交叉編碼器和雙編碼器之間的性能差距。
隨後,在 EmbedDistil進一步研究了透過匹配來自教師模型的嵌入來進一步改進雙編碼器精餾。該策略還可用於從大到小的雙編碼器模型中提取信息,繼承和凍結教師的文檔嵌入被證明是非常有效的。
論文連結:https://arxiv.org/abs/2301.12005
在理論方面提供了一個新的視角,透過監督複雜性的蒸餾,衡量學生如何能夠預測教師的標籤。
論文連結:https://arxiv.org/abs/2301.12245
利用神經正切核(NTK)理論得出了一些概念性的結論,例如,能力差距可能會影響蒸餾,因為這樣的教師的標籤可能出現類似於純粹的隨機標籤的學生。
論文連結:https://arxiv.org/abs/2301.12923
同時進一步證明,蒸餾導致學生欠擬合的點也是對於教師模型比較難的問題,從直覺上講,這可能有助於學生將其有限的能力集中在那些可以合理建模的樣本上。
自適應計算
#雖然蒸餾是降低推理成本的有效方法,但它在所有樣本中的作用是一致的(uniformly),直觀地說,一些「簡單」的樣本可能本質上需要比相對更「難」樣本更少的計算。
自適應計算的目標是設計能夠進行這種依賴樣本的計算的機制。
Confident Adaptive Language Modeling(CALM)為 T5等基於Transformer的文字產生器引入了受控的早期退出功能。
論文連結:https://arxiv.org/abs/2207.07061
在這種形式的自適應計算中,模型動態修改每個解碼步驟使用的Transformer層數,其中early-exit gate使用帶有決策閾值的置信度量,該置信度量經過校準以滿足統計性能保證。
這樣,模型只需要為最具挑戰性的預測計算完整的解碼器層堆疊,更簡單的預測只需要計算幾個解碼器層。在實踐中,該模型平均使用約三分之一的層進行預測,在保持同等水平的生成質量的同時,產生2-3倍的加速。
一個常用的自適應電腦制包括兩個或多個基本模型的級聯,其關鍵問題是決定是簡單地使用當前模型的預測,還是將預測推遲到下游模型,學習何時延遲需要設計一個合適的損失函數,它可以利用適當的訊號作為延遲決策的監督。
Google Research系統性地研究了現有的損失函數,證明由於標籤平滑的隱式應用,它們可能不適合訓練樣本,文中也展示了可以透過延遲規則的事後訓練來緩解這種情況,這種訓練不需要以任何方式修改模型內部。
論文連結:https://openreview.net/pdf?id=_jg6Sf6tuF7
#對於檢索應用程序,標準的語義搜尋技術對大型模型產生的每個嵌入使用固定的表示,也就是說,不管下游任務及其相關的計算環境或約束,表示的大小和能力大多是固定的。
Matryoshka 表示學習引入了根據部署環境調整表示的靈活性,強製表示在它的座標中有一個自然的排序,這樣對於資源受限的環境,只使用表示的最高的幾個座標;而對於更豐富和精度關鍵的設置,可以使用表示的更多坐標。
論文連結:https://openreview.net/pdf?id=9njZa1fm35
#當結合標準近似最近鄰搜尋技術,如掃描神經網絡,MRL 能夠提供多達16倍的低計算相同的召回率和準確度量。
大型機器學習模型在多個領域都展現出具有變革性的結果,但訓練和推理的效率正在成為使這些模型在現實世界中切實可行的關鍵需求。
透過開發新的基礎技術,Google Research已經在使大型機器學習模型高效方面進行了大量投資,這也需要持續性的努力,未來將繼續探索核心挑戰,使機器學習模型更加健壯和高效。
以上是讓大模型的訓練和推理,比更快更快! Google2022年終總結第四彈的詳細內容。更多資訊請關注PHP中文網其他相關文章!