首頁  >  文章  >  科技週邊  >  30年歷史回顧,Jeff Dean:我們整理了一份「稀疏專家模型」研究綜述

30年歷史回顧,Jeff Dean:我們整理了一份「稀疏專家模型」研究綜述

WBOY
WBOY轉載
2023-04-12 23:01:041309瀏覽

稀疏专家模型是一个已有 30 年历史的概念,至今依然被广泛使用,是深度学习中的流行架构。此类架构包括混合专家系统(MoE)、Switch Transformer、路由网络、BASE 层等。稀疏专家模型已经在自然语言处理、计算机视觉和语音识别等多个领域展示出良好的性能。

近日,谷歌 AI 负责人 Jeff Dean 等人撰写了一篇稀疏专家模型的综述,回顾了稀疏专家模型的概念,提供了通用算法的基本描述,最后展望了未来的研究方向。


30年歷史回顧,Jeff Dean:我們整理了一份「稀疏專家模型」研究綜述

论文地址:https://arxiv.org/pdf/2209.01667.pdf

通过增加计算预算、训练数据和模型大小,机器学习(尤其是自然语言)取得了显著进步。著名的里程碑语言模型包括 GPT-2(Radford et al., 2018)、BERT(Devlin et al., 2018)、T5(Raffel et al., 2019)、GPT-3(Brown et al., 2020)、Gopher (Rae et al., 2021)、Chinchilla (Hoffmann et al., 2022) 和 PaLM (Chowdhery et al., 2022)。

然而,最先进的模型现在需要数以千计的专用互连加速器,训练数周或数月的时间,因此这些模型的生产成本很高(Patterson et al., 2021)。随着机器学习系统规模的扩大,该领域寻求更有效的训练和服务范式。稀疏专家模型已成为一种很有前途的解决方案。

30年歷史回顧,Jeff Dean:我們整理了一份「稀疏專家模型」研究綜述

稀疏专家模型(其中,混合专家系统(MoE)是最流行的变体)是一种特殊的神经网络,其中一组参数被划分为 “专家”,每个“专家” 具有唯一的权重。

在训练和推理期间,模型将输入样本给到特定的专家权重,让每个样本仅与网络参数的子集交互,这与将整个网络用于每个输入的常规方法不同。由于每个样本仅使用一小部分专家,因此相对于总模型来说计算量大幅减小了。

许多现代稀疏专家模型从 Shazeer et al. (2017)中汲取了灵感。该研究训练了当时最大的模型,并取得了最先进的语言建模和翻译结果。与 Transformer 语言模型结合使用时,稀疏专家模型的受欢迎程度进一步飙升(Lepikhin et al., 2020; Fedus et al., 2021)。虽然大部分工作都在自然语言处理方面,但稀疏专家模型也已成功用于各种领域,包括计算机视觉(Puigcerver et al., 2020)、语音识别(You et al., 2021)和多模态学习(Mustafa et al., 2022)。Clark et al. (2022) 研究了稀疏专家模型在不同模型大小和专家数量下的扩展特性。此外,许多基准测试的最新结果目前由 ST-MoE 等稀疏专家模型持有(Zoph et al., 2022)。随着研究和工程的进步,该领域正在迅速发展。

这篇综述论文将调查范围缩小到狭义深度学习时代(从 2012 年开始)的稀疏专家模型,回顾了最近的进展并讨论了有希望的未来途径。

稀疏专家模型

机器学习中的 MoE 概念可以追溯到至少 30 年前,在早期的概念中,专家们定义了一个完整的神经网络,MoE 类似于一种集成方法。

Eigen et al. (2013) 提出在抖动(jittered)的 MNIST 上使用堆叠层专家混合架构,这项工作为后来模型的高效实现奠定了基础。

Shazeer et al. (2017)提出在两个 LSTM 层之间插入一个 MoE 层,由此产生的稀疏模型在机器翻译中实现 SOTA 性能。然而,此方法虽然取得了成功,但后续研究就像冬眠了一样,停滞不前,大部分研究都转向了 Transformer。

2020 到 2021 年間,GShard 和 Switch Transformer 發布,兩者都用專家層取代了 Transformer 中的前饋層。

儘管使用一層專家層的方法已經成為主導範式,但近兩年的研究重新審視了專家模型作為完全獨立模型的概念,以實現模組化和可組合性。

下圖 2 是 Shazeer et al. (2017) 提出的原始 top-k 路由機制,這是許多後續工作的基礎。這篇綜述論文在第四章中詳細講解了路由演算法的新進展。

30年歷史回顧,Jeff Dean:我們整理了一份「稀疏專家模型」研究綜述

硬體

現代稀疏專家模型已與用於訓練最大神經網路的分散式系統共同設計。

大型神經網路(Brown et al., 2020; Rae et al., 2021; Chowdhery et al., 2022)的研究顯示神經網路已經遠遠超過單一加速器的內存容量,因此權重,啟動函數,優化器變數等張量需要使用各種並行策略分片。

三種常見的平行方法包括:資料並行(複製模型權重,對資料進行分片)、張量模型並行(資料和權重張量跨裝置分片)和pipeline 並行(整個層或層組被跨裝置分片),混合專家模型通常能夠適應這些平行方案。

在MoE 模型的訓練和部署方面,Jaszczur et al. (2021)將Transformer 模型的所有層進行稀疏化,從而實現了37 倍的推理加速;Kossmann et al . (2022)透過RECOMPILE 函式庫解決了靜態專家批次大小的限制問題。

除了資料並行、模型並行和專家並行外,Rajbhandari et al.(2022) 提出DeepSpeed-MoE 庫,以支援ZeRO partitioning 和ZeRO-Offload,實現了10 倍推理提升和SOTA 翻譯性能,從而增加了模型在生產服務中的實用性。

稀疏專家模型的擴展特性

密集神經語言模型的交叉熵損失表現為一種關於模型參數計數、資料量和計算預算(Kaplan et al ., 2020)的冪律。冪律係數後來在 Hoffmann et al. (2022)中得到修正,這表明計算最優模型需要數據和參數擴展更緊密的平衡。相較之下,稀疏專家模型的早期研究以啟發式方式擴展獲得了強有力的實證結果,但沒有仔細描述擴展定律。此外,一些工作強調了上游(例如預訓練)和下游(例如微調)行為之間的差異(Fedus et al., 2021; Artetxe et al., 2021),進一步複雜化了對稀疏專家模型的理解。

上游擴展

#稀疏專家模型在大型資料集上訓練時表現出色。自然語言處理中的常見模式是先執行上游訓練(例如預訓練),然後對特定感興趣的資料分佈進行下游訓練(例如微調)。在上游階段,稀疏專家模型一直比密集對應模型產生更高的效益。 Shazeer et al. (2017) 在 10 億字語言建模基準(Chelba et al., 2013)上提出了關於模型參數和計算預算的擴展曲線,與密集版本相比取得了顯著收益。 Lepikhin et al. (2020)提出了模型擴展函數的改進版本,並在其最大的 600B 參數稀疏模型上獲得了 13.5 的 BLEU 分數增益。 Switch Transformer (Fedus et al., 2021) 在 T5 模型上使用相同的計算資源測量到 4-7 倍的 wall-time 加速。該工作還研究了作為參數計數函數的交叉熵損失擴展,但觀察到超過 256 位專家時,收益減少了。

下游擴充功能

然而,可靠的上游擴展並沒有立即在下游任務上產生一致的收益。在一項強調遷移挑戰的工作中,Fedus et al. (2021)使用低計算、高參數編碼器- 解碼器Transformer(1.6T 參數,每個稀疏層有2048 個專家)觀察到4 倍的預訓練改進,但它在SuperGLUE 等密集型推理任務上的微調效果不佳。這項發現暗示了進一步的必要研究以及計算和參數之間可能需要的平衡。

Du et al.(2021) 展示了稀疏 GLaM 模型的擴展,範圍從 1B-64B FLOP,每個稀疏層使用 64 位專家。 GLaM 取得了SOTA 結果,在zero-shot 和one-shot 性能方面優於175B 參數的GPT-3 模型(Brown et al., 2020),同時在推理時每個token使用的FLOP 減少了49%,功耗降低了65% (如下圖4(左)所示)。下圖 4 (右) 是稀疏模型在少樣本推理上表現良好的另一個例子。

30年歷史回顧,Jeff Dean:我們整理了一份「稀疏專家模型」研究綜述

Srivastava et al. (2022) 研究了稀疏模型在多項選擇BIG-Bench 任務上的校準,即度量預測機率與正確機率匹配的程度。研究結果如下圖 5 所示,雖然較大的密集模型和稀疏模型的校準都得到了改善,但稀疏模型與使用 10 倍以上 FLOP 的密集模型的校準相當。

30年歷史回顧,Jeff Dean:我們整理了一份「稀疏專家模型」研究綜述

#擴展專家層的數量、大小和頻率

有幾個重要的超參數控制稀疏專家模型的擴展,包括:1)專家數量,2)每個專家的大小,以及3)專家層的頻率。這些決策可能對上游和下游擴展產生重大影響。

許多早期的工作擴展到每層數千個相對較小的專家,從而產生了出色的預訓練和翻譯品質(Shazeer et al., 2017; Lepikhin et al ., 2020; Fedus et al., 2021)。然而,稀疏模型的質量在域偏移(Artetxe et al., 2021)或對不同任務分佈進行微調(Fedus et al., 2021)時不成比例地降低。為了使計算和參數獲得更好的平衡,用於小樣本推理(GLaM (Du et al., 2021)) 和微調(ST-MoE (Zoph et al., 2022)) 的SOTA 稀疏模型最多僅能使用64 個更大的專家。由於專家維度的增加,這些模型需要有針對加速器的特定係統級分片策略才能有效運作(Du et al., 2021; Rajbhandari et al., 2022)。

路由演算法

路由演算法是所有稀疏專家架構的關鍵特性,它決定了將樣本傳送到哪裡。該領域已被廣泛研究,包括使用固定的、非學習路由模式的反直覺方法(Roller et al., 2021)。由於要對選擇哪些專家做出離散決策,因此路由決策通常是不可微的。

專家選擇問題後來被重新定義為Bandit 問題,並且已有一些工作使用強化學習來學習專家選擇(Bengio et al., 2016; Rosenbaum et al., 2017; 2019; Clark et al., 2022)。 Shazeer et al. (2017) 提出了一種可微的啟發式演算法,以避免強化學習的困難。

這篇論文詳細闡述了路由演算法的分類,並進一步說明了該領域的關鍵問題—負載平衡。

稀疏專家模型的快速發展

稀疏專家模型的影響正在迅速蔓延到NLP以外的其他領域,包括電腦視覺、語音辨識和多模態應用。儘管領域不同,但模型的架構和演算法大致相同,下表 1 顯示了不同域的稀疏層輸入表徵。

30年歷史回顧,Jeff Dean:我們整理了一份「稀疏專家模型」研究綜述

稀疏專家模型近幾年的發展非常迅速。以NLP領域為例,Shazeer et al. (2017) 為 LSTM 語言建模和機器翻譯引入了混合專家層,這些層被插入到 LSTM 模型的標準層之間。

2020 年,Lepikhin et al. (2020)首次將MoE 層引入到Transformer,當研究人員將每個專家層擴展到2048 名專家時,模型在100 種不同語言上實現了SOTA 翻譯結果。

Fedus et al. (2021) 創建了一個稀疏的 1.6T 參數語言模型,實現了 SOTA 預訓練品質。

新研究正在推動小樣本學習推理和微調基準的發展。 Du et al. (2021) 訓練了一個純 MoE 解碼器語言模型,取得了小樣本上的 SOTA 結果,並且只需要訓練 GPT-3 所需的 1/3 計算量。 Zoph et al. (2022) 提出了 ST-MoE,這是一種稀疏編碼器 - 解碼器模型,在大量推理和生成任務中都實現了 SOTA。在 SuperGLUE 上進行微調時,ST-MoE 的表現優於 PaLM-540B ,同時僅使用約 1/20 的預訓練 FLOP 和 1/40 的推理 FLOP。

什麼時候使用稀疏模型

一個常見的問題是,如果給你一個固定的計算或FLOP 預算(例如100 個GPU 20 小時),你應該訓練什麼類型的模型來獲得最佳表現?

從根本上說,稀疏模型允許透過增加專家的數量來大幅增加模型中的參數數量,同時保持每個樣本的 FLOP 大致恆定。這種做法有好有壞,取決於模型的用途。

當你有許多加速器(例如 GPU/TPU)來承載使用稀疏性所帶來的所有附加參數時,稀疏性是很有利的。

使用稀疏性也需要仔細考慮下游任務。假如你有許多機器來進行預訓練,但是用來微調或服務的機器卻很少,那麼稀疏度(例如專家的數量)應該根據下游用例中可用的內存量進行調整。

在某些情況下,稀疏模型看起來總是比密集模型差。例如當所有參數都保存在加速器記憶體中,這種情況稀疏模型就不如密集模型了。當你有能力在多台機器上並行訓練或服務,以便託管來自專家的附加模型參數時,稀疏模型就非常合適。

此外,這篇綜述論文還介紹了對稀疏模型訓練的改進、可解釋性和未來的研究方向等,感興趣的小伙伴可以查看原始論文,了解更多研究內容。

以上是30年歷史回顧,Jeff Dean:我們整理了一份「稀疏專家模型」研究綜述的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:51cto.com。如有侵權,請聯絡admin@php.cn刪除