谷歌開源大規模神經網絡模型高效訓練庫 GPipe

2021-01-08 雷鋒網

雷鋒網(公眾號:雷鋒網) AI 科技評論按:谷歌昨日在博客中宣布開源大規模神經網絡模型高效訓練庫 GPipe,這是一款分布式機器學習庫,可以讓研究員在不調整超參數的情況下,部署更多的加速器以對大規模模型進行訓練,有效擴展了模型性能。雷鋒網 AI 科技評論對此進行編譯如下。

深度神經網絡(DNNs)推進諸多機器學習任務的進步,其中包括語音識別、視覺識別和語言處理等。BigGan、Bert 、GPT2.0 等最新成果表明,DNN 的模型越大,任務處理的表現就越好,而該結論也在過去的視覺識別任務中得到了驗證,表明模型大小與分類準確性之間存在很強的關聯性。舉個例子,2014 年 ImageNet 視覺識別挑戰賽的冠軍 GoogleNet 通過對 400 萬參數進行調整,最終取得 74.8 % 的精確度成績;僅僅過了三年,2017 年 ImageNet 挑戰賽冠軍 Squeeze-and-Excitation Networks 調整的參數便高達 1.458 億(36 倍以上),最終取得了 82.7% 的精確度成績。與此對應的是,市面的 GPU 內存僅僅提高了 3 倍左右,目前最先進的圖像模型早已達到雲 TPUv2 可用內存的極限。因此,我們迫切需要一種高效、可擴展的基礎設施,以實現大規模的深度學習訓練,並克服當前的加速器內存受限問題。

最具有代表性的圖像分類模型體現出了 ImageNet 精確度結果與模型大小的強關聯性

在《GPipe: Efficient Training of Giant Neural Networks using Pipeline Parallelism》一文中,我們展示了如何通過流水並行技術(pipeline parallelism)對 DNN 的訓練進行擴展以克服這一限制。簡單來說,GPipe 是一款分布式機器學習庫,基於同步隨機梯度下降與流水並行技術進行模型訓練,適用於由多個連續層組成的任意 DNN。最重要的是,GPipe 可以讓研究員在不調整超參數的情況下,部署更多的加速器以訓練大規模模型,由此有效擴展了性能。為了證明 GPipe 的能力,我們在 Google Cloud TPUv2s 上訓練了一個具有 5.57 億模型參數、 480 x 480 輸入圖像尺寸的 AmoebaNet-B。該模型在多個流行數據集上表現良好,取得的成就包括:single-crop ImageNet 的精確度提高至 84.3%、 CIFAR-10 的精確度提高至 99%、CIFAR-100 的精確度提高至 91.3%。

核心 GPipe 庫已在 Lingvo 框架下進行開源:

https://github.com/tensorflow/lingvo/blob/master/lingvo/core/gpipe.py

從小批次至微批次

目前存在兩種標準方法可以對中等規模的 DNN 模型進行加速。數據並行方法(The data parallelism)可以納入更多的機器,並將輸入的數據區分開來。另一種方法則是將模型置於加速器上(比如 GPU 或 TPU)——這些加速器的特殊硬體可加速模型的訓練進程。然而加速器卻面臨著內存與主機通信帶寬兩方面受限的問題。因此,通過將模型進行分區,並根據分區配置相應的加速器,模型並行技術可以讓我們在加速器上訓練更大規模的 DNN 模型。由於 DNN 存在順序性,這種策略最後可能變成計算期間只有一個加速器處於活躍狀態,未能將加速器的計算能力充分利用起來。此外,標準的數據並行技術只允許在多個加速器上同時訓練具有不同輸入數據的相同模型,卻無法提升加速器所能支持的最大模型規模。

為了實現跨加速器的高效訓練,GPipe 先按照加速器對模型進行劃分,然後自動將小批次的訓練示例拆分為更小的微批次。通過在微批次中執行流水管理,加速器得以並行運行。此外,梯度將在微批次中持續累積,以免分區的數量影響到模型的質量。

上圖:由於網絡存在順序性,模型並行策略導致嚴重的利用不充分問題。 每次都只有一個加速器處於活動狀態。 

下圖:GPipe 將輸入的小批次拆成更小的微批次,使不同的加速器可以同時在單獨的微批次上運作。

內存和效率的最大化

GPipe 會對模型參數的內存分配進行最大化處理。我們在每個 TPUv2 均配有 8 個加速器核心以及 64 GB 內存(每個加速器 8 GB)的雲 TPUv2 上做了相關實驗。如果沒有 GPipe,由於內存的限制,單個加速器頂多只能訓練 8200 萬個模型參數。而通過反向傳播以及批量分割技術進行重新計算的 GPipe ,成功將中間激活內存從 6.26 GB 減至 3.46GB,由此實現單個加速器上訓練 3.18 億個參數的成果。此外,我們還發現在流水並行技術的作用下,模型的最大規模與分區數量成正比,正如事前所預料的那樣。總的來說,GPipe 使 AmoebaNet 能在雲 TPUv2 的 8 個加速器上納入 18 億個參數,比起之前高出了 25 倍。

為了測試模型的效率,我們研究了 GPipe 對 AmoebaNet-D 模型吞吐量的影響情況。由於訓練過程需要至少兩個加速器以適應模型尺寸,因此我們只能對沒有實施流水並行技術的兩個分區案例的加速情況進行觀察。我們發現訓練過程存在近乎線性的加速效果。與兩個分區案例相比,將模型分布在四倍數量的加速器上能有效實現 3.5 倍的加速效果。我們的實驗均使用了雲 TPUv2,但我們了解到最新的的雲 TPUv3 由於每個 TPUv3 均配備了 16 個加速器核心以及 256 GB(每個加速器 16 GB),因此擁有更理想的表現性能。當我們在所有 16 個加速器上對模型進行分發,GPipe 能讓基於 1024-token 句子的 80 億參數 Transformer 語言模型的訓練速度提高 11 倍。

通過 GPipe 對 AmoebaNet-D 進行加速。這種模型不適用於單個加速器。naive-2 基線是將模型拆分為兩個分區,最終取得的性能結果。Pipeline-k 對應的是 GPipe 將模型分成帶有 k 個加速器的 k 個分區的最終性能結果。

在無需更改超參數的情況下,GPipe 還能通過使用更多加速器來擴展訓練結果。因此,它可以與數據並行技術相結合,通過互補的方式使用更多的加速器來擴展神經網絡的訓練規模。

精準度測試

我們試圖通過 GPipe 證明,對現有的神經網絡進行擴展,可以實現更理想的模型質量。為此,我們在 ImageNet ILSVRC-2012 數據集上訓練一個模型參數為 5.57 億、輸入圖像尺寸為 480 x 480 的 AmoebaNet-B。該網絡被分為 4 個分區,在模型與數據上執行了並行訓練程序。該巨型模型在沒有任何外部數據的情況下,最終達到了最先進的 84.3% top-1 / 97% top-5 的single-crop 驗證準確度結果。這說明大型的神經網絡不僅適用於 ImageNet 等數據集,還能通過遷移學習的方式作用於其他數據集。事實證明,更好的 ImageNet 模型擁有更理想的傳輸效果。我們在 CIFAR10 和 CIFAR100 數據集上進行了遷移學習實驗。我們的巨型模型成功將 CIFAR-10 的精確度提高至到 99%、CIFAR-100 的精確度提高到 91.3%。

結論

當下許多機器學習應用(如自動駕駛和醫學成像)得以持續發展並取得成功的原因,在於實現了儘可能高的模型精確度。然而這也意味著我們需要構建一個更大、更複雜的模型,我們很高興能夠為研究社區提供 GPipe,我們希望未來它可以成為高效訓練大規模 DNN 的基礎設施。

via https://ai.googleblog.com/2019/03/introducing-gpipe-open-source-library.html

雷鋒網 AI 科技評論

雷鋒網原創文章,未經授權禁止轉載。詳情見轉載須知。

相關焦點

  • Facebook開源差分隱私庫Opacus,可保護數據隱私且高效訓練Prytorch模型
    如何保護數據集隱私,是深度學習訓練必須要解決的問題之一。近日,Facebook開源了一個名為Opacus的高速庫,該庫可用於訓練具有差分隱私的PyTorch模型。在此之前,谷歌、微軟等也陸續開源了其核心產品使用的差分隱私庫。不同的是,與現有方法相比,Opacus具有可擴展性,支持大多數類型的PyTorch模型,並且只需對神經網絡進行最少的代碼更改。同時它允許客戶端實時監控任何給定時間花費的隱私預算(Privacy Budget,DP中的核心數學概念)。
  • 谷歌重磅開源新技術:5行代碼打造無限寬神經網絡模型
    但是,問題來了:推導有限網絡的無限寬度限制需要大量的數學知識,並且必須針對不同研究的體系結構分別進行計算。對工程技術水平的要求也很高。谷歌最新開源的Neural Tangents,旨在解決這個問題,讓研究人員能夠輕鬆建立、訓練無限寬神經網絡。
  • 谷歌,DeepMind,微軟和Uber大規模訓練深度學習模型框架簡介
    大規模訓練是在現實世界中構建深度學習解決方案最具挑戰性的方面之一。從訓練到優化,深度學習程序的生命周期需要健壯的基礎設施構建塊,以便能夠並行化和擴展計算工作負載。儘管深度學習框架正在快速發展,但相應的基礎架構模型仍處於初期階段。
  • 谷歌開源 TensorFlow Quantum,用於訓練量子模型的機器學習框架
    谷歌在其官方 AI 博客宣布推出 TensorFlow Quantum(TFQ),這是一個開源的量子機器學習庫,可將量子計算與機器學習結合在一起,訓練量子模型。谷歌表示,這種量子機器學習模型能夠處理量子數據,並能夠在量子計算機上執行。
  • 谷歌大腦開源多種新型神經網絡優化器,AutoML探索新架構
    谷歌大腦團隊希望用類似於 AutoML 發現新神經網絡架構的方法,探索自動發現新優化器的實現。他們發現了多種性能優異的優化器,並已將其開源。開源地址(TensorFlow):https://www.tensorflow.org/api_docs/python/tf/contrib/opt深度學習模型已在谷歌的眾多產品中部署,如搜索、翻譯和圖片。優化方法的選擇在深度學習模型的訓練中發揮著重要作用。
  • iPhone 11 訓練神經網絡的開源項目曝光:準確率可與 i7 MacBook...
    前幾天有人發布了一個可以在 iOS 設備上直接訓練神經網絡的開源項目 MNIST-CoreML-Training,引起熱議。項目使用 MNIST 手寫數字數據集部署圖像分類模型,不需要在其他 ML 框架中訓練,而是基於 Core ML 直接本地訓練出一個卷積神經網絡(LeNet CNN) 模型。
  • 谷歌推出新開源框架:添加 5 行代碼,帶來更強大的神經網絡模型
    根據科技網站 Venturebeat 的報導,Google 今天推出了神經結構化學習(Neural Structured Learning,以下簡稱 NSL)。據悉,這是一個開源框架,它使用神經圖它使用神經圖學習方法,來訓練帶有圖(Graph)和結構化數據的神經網絡,帶來強大的模型。
  • 預訓練圖神經網絡模型
    原文:Strategies for Pre-training Graph neural networks 預訓練是通過大量無標註的數據進行模型的訓練,得到一套模型參數,利用這套參數對模型進行初始化,再根據具體任務在現有語言模型的基礎上進行精調
  • 開源神經網絡框架Caffe2全介紹
    這是現在業界主流的翻譯模型。我們使用Caffe2做大規模的訓練,並在GPU/CPU上都對相應的計算做了優化。在這些優化中,最值得一提的是我們對循環神經網絡的內存優化。循環神經網絡的單元,英文裡稱之為Cell,往往需要把自己的輸出,當作自己的輸入,循環執行。所以,我們稱之為循環。在真實實現的過程中,這就好比把同樣的單元展開很多遍。
  • 既保護隱私又快速訓練,Facebook開源Opacus庫
    那麼,如何方便地使用差分隱私來訓練機器學習模型呢?近日,Facebook 開源了 Opacus 庫,支持以這種方式訓練 PyTorch 模型。近日,Facebook 開源了一個新型庫 Opacus,它支持使用差分隱私來訓練 PyTorch 模型,擴展性優於目前的 SOTA 方法。
  • 連接機器學習和量子計算,谷歌發布開源庫TensorFlow Quantum
    近日,谷歌就在其官網宣布,與滑鐵盧大學、Alphabet X 和大眾汽車公司合作發布 TensorFlow Quantum (TFQ)。TFQ 是一個用於快速構建量子機器學習模型的開源庫,將能提供必要的工具,把量子計算和機器學習研究領域結合起來,控制和模擬自然或人工量子系統。例如有 50 - 100 個量子位的嘈雜中型量子 (NISQ) 處理器。
  • TensorLayer 2.0:保有最多官方神經網絡層的通用Python庫
    從搭建神經網絡模型,到動態模型,再到複雜的訓練流程和任務管理,這使得通過輕量級工具全面管理深度學習開發的需求也越發強大。TensorLayer 開源社區正是希望打造一個不隸屬於任何企業的深度學習開發框架。
  • 谷歌推出開源 Python 庫「Tangent」,支持前向模式自動微分
    雷鋒網 AI科技評論消息,日前,Google Research Blog 推出開源 Python 庫「Tangent」。據介紹,這個庫與現有的機器學習庫相比,存在諸多優勢,可以大大改善了用戶的使用體驗。雷鋒網 AI科技評論編譯整理如下:Tangent 是一個全新的免費開源 Python 庫,可以用於自動微分。
  • 微軟更新DeepSpeed 開源庫 讓模型訓練變得更普及
    今年2月時,微軟發布了名為DeepSpeed 開源庫,而近日微軟對這一開源庫進行了更新,附加的4項DeepSpeed技術能夠同時提高存儲器、吞吐量和網絡的運作效率。無論是在超級計算機上還是在單個GPU上,都能夠縮短訓練時間。
  • 開源圖神經網絡框架DGL升級:GCMC訓練時間從1天縮到1小時
    這次,是紐約大學、亞馬遜聯手推出圖神經網絡框架DGL。不僅全面上線了對異構圖的支持,復現並開源了相關異構圖神經網絡的代碼,在GCMC、RCGN等業內知名的模型實現上,取得更好效果。還發布了訓練知識圖譜嵌入(Knowledge Graph Embedding)專用包DGL-KE,在許多經典的圖嵌入模型上都獲得了性能提升。
  • 既保護隱私又快速訓練,Facebook開源Opacus庫,利用差分隱私訓練Py...
    那麼,如何方便地使用差分隱私來訓練機器學習模型呢?近日,Facebook 開源了 Opacus 庫,支持以這種方式訓練 PyTorch 模型。近日,Facebook 開源了一個新型庫 Opacus,它支持使用差分隱私來訓練 PyTorch 模型,擴展性優於目前的 SOTA 方法。
  • 26億參數,智源、清華開源中文大規模預訓練模型
    機器之心報導機器之心編輯部近日,北京智源人工智慧研究院和清華大學研究團隊聯合發布了以中文為核心的大規模預訓練語言模型 CPM-LM,參數規模達 26 億,預訓練中文數據規模 100 GB。
  • Google展示AI新實力:讓神經網絡設計神經網絡
    這臺超級計算機被稱作「TPU艙」,帶來了每秒11.5千萬億次浮點運算的能力,可用於訓練單一的大型機器學習模型,或多個較小的模型。為了證明TPU艙的性能,谷歌表示,如果想要訓練最新的大規模翻譯模型,那麼使用32顆全球最強大的商用GPU需要一整天時間。作為對比,TPU艙只需1/8的性能,就能在6小時內完成對該模型的訓練。
  • 北大、微軟亞洲研究院:高效的大規模圖神經網絡計算
    新智元報導 來源:arXiv編輯:肖琴【新智元導讀】第一個支持圖神經網絡的並行處理框架出現了!北京大學、微軟亞洲研究院的研究人員近日發表論文,提出NGra,這是第一個支持大規模GNN的系統。GNN(圖神經網絡)代表了一種新興的計算模型,這自然地產生了對在大型graph上應用神經網絡模型的需求。但是,由於GNN固有的複雜性,這些模型超出了現有深度學習框架的設計範圍。此外,這些模型不容易在並行硬體(如GPU)上有效地加速。
  • RK3399六核人工智慧開源主板,支持多種網絡訓練模型
    RK3399(AI)六核人工智慧開源主板,採用Rockchip六核高性能處理器,板載模塊化深度神經網絡學習加速器NPU,無需外部緩存,擁有強勁算力與超高效能,支持 PyTorch , Caffe 深度學習框架,提供完整易用的模型訓練工具、網絡訓練模型實例,可快速應用在移動邊緣計算、智能家居、人臉檢測識別、人工智慧伺服器等領域。