ゼロ&がdeepspeed:トレーニングモデル以上千億パラメータ最適化(Microsoft)を持っていることができます

出典:AINLPerのマイクロチャネルパブリック数の
エディタ:ShuYiniの
校正:ShuYini
時間:2020年2月12日

論文アクセス:
1、:公式ウェブサイトのアドレスでダウンロードhttps://arxiv.org/abs/1910.02054を
2、ウォッチAINLPerの返信:ZERO

入門

    人工知能の最新の傾向はより高い精度を提供するために、より大きな自然言語モデルを持つことです。しかし、難しいトレーニング大きなモデルにつながる、コスト、時間、およびコードの統合が単純(特に最適化されていないコード)、へ。マイクロソフトは大幅に大規模なモデルのトレーニング、トレーニングの千億パラメータモデルを放出する能力を促進し、サイズ、スピード、コストと可用性を増やすことで、ライブラリのがdeepspeedと呼ばれるオープンソースのライブラリをリリースしましたPyTorchと互換性がdeepspeed。ゼロと呼ばれるライブラリの一部(それは新しい並列オプティマイザである)、それは非常に大きく、パラメータの数を増加させながら、並行してモデルデータに必要なリソースを低減訓練することができます。研究者はこれらのブレークスルーは最大の既知の言語モデルであるTuring- NLGを作成し使用し、170億パラメータがあります。
ここに画像を挿入説明

ZERO(ゼロ冗長性オプティマイザ)介绍

    ZERO(ゼロ冗長性オプティマイザ)は、大規模な分散奥行き研究のための新しいメモリ最適化技術ですゼロは現在の最良のシステムの3〜5倍のスループットであるGPUクラスタの現在のパラメータでは100億深い学習モデルを訓練することができます。また、深い学習システム技術は、前例のない飛躍を持っていることを示唆し、引数の兆してモデルを訓練するための明確なパスを提供します。我々は、高性能分散ライブラリーを研究し、訓練の深さを加速するために使用がdeepspeed、がdeepspeedの一部としてゼロを公開します。

大深度学習モデルのトレーニングの挑戦

    大規模なモデルでは、精度が大幅に改善されることができますが、引数の兆に十億のトレーニングは、多くの場合、ハードウェアの制限が発生しました。これらのメモリモデルをフィットさせるために、既存のソリューションは、コンピューティング、通信、開発効率の間のトレードオフが必要です

    •パラレル・データは、各デバイスのメモリフットプリントを削減する助けをしません:モデルパラメータは、以上の10億を持っていても32ギガバイトのメモリ、GPUにメモリ不足になります。

    •並列処理のきめの細かい、高価な通信モデルの計算が効果的に単一のノードを超えて拡張することはできませんので。並列モデルのフレームワークは、多くの場合、広範なコードの統合を必要とし、これらのコードの統合は、モデルアーキテクチャに特有であってもよいです。例えば、NVIDIAメガトロン-LM記録記録パラメータの83億新モデルサイズ。単一のノードに適した複数のモデルのためのGPUは、その伸縮性は良好であるが、ノード間で延伸する場合、パフォーマンスが低下します。あなたはNVIDIA DGX-2ノードに400億パラメータを実行すると、例えば、我々は5テラフロップス/ GPUについて観察しました。

並列処理とデータ並列モデルの限界を克服

    両方の利点を達成しながら、マイクロソフトは、制限ゼロの並列とデータ並列モデルを克服するために開発しました。ゼロそれによって並列処理に冗長データ記憶を排除し、代わりにそれらをコピーする、並列処理データにモデル状態(パラメータ、および傾斜状態を最適化する)を分割することによって。これは、計算されたトラフィックデータ及び粒度平行度を維持するために分散装置間の必要な状態を共有するためにトレーニングプログラム中の動的通信を使用します。

    ゼロは、直線状に延長並列度のデータを用いて、各デバイスのメモリ使用量を可能にし、データ並列同様のトラフィックを生成するデータ並列処理を、従動。ゼロは、長いポリマーデバイスメモリ十分な大きさとしてモデル状態に共有するよう、データ並列モデルに適した任意のサイズであってもよいサポート

その利点のゼロ三段階

    ゼロは、それぞれオプティマイザの分割された状態、及び勾配パラメータに対応する、(図1に示されている)最適化の三つの主要な段階を有します。累積有効:

    状態パーティション(POS)1.最適化- 4倍のメモリが低減され、通信容量と同じデータ並列
    2上昇勾配パーティション(順位+ G) - 8X減少メモリ、通信容量とデータ並列同じ
    3つのパラメータの増加パーティション(順位+ G + P) -データ並列と線形関係のメモリと複雑さを低減します。例えば、64 GPU(のNd = 64)を横切って64倍の分割メモリを減少します。50%程度の増加の通信容量。

    ゼロ冗長メモリを排除し、重合およびクラスタ全体のメモリ容量が利用可能です。すべての3つのフェーズを有効にすると、ゼロ兆パラメータモデルのみが1024 NVIDIA GPUで訓練することができます。同様に16ビットの精度を有するオプティマイザようアダム兆パラメトリックモデルは、オプティマイザの状態、及び勾配パラメータを保存するために、約16 TBのメモリを必要とします。1024 16TBは、合理的な範囲内のGPU内で、16ギガバイトです。

がdeepspeed:PyTorch互換性とシステムのパフォーマンス

    ゼロ(ゼロOSと呼ばれる状態オプティマイザパーティション())の第一段階を実施するには、モデルパラメータの千億電力のサポートを有しています。コード最適化ライブラリdeepspeedが私たちのトレーニングと一緒にリリースしました。deepspeedがたとえばゼロ、分散訓練、混合精度とチェックポイントのために、PyTorch軽量APIと互換性のある最新のトレーニング技術をもたらします。ただ、モデルを変更するコードのPyTorch数行に、あなたがdeepspeed解決潜在的なパフォーマンスの課題を使用して、トレーニングの速度と規模を向上させることができます。4(図2)で優れた性能をがdeepspeed:

    •最先进的大型模型,例如OpenAI GPT-2,NVIDIA Megatron-LM和Google T5,分别具有15亿,83亿和110亿个参数。 DeepSpeed的ZeRO第一阶段提供系统支持,以运行多达1000亿个参数的模型,该参数大10倍。 将来,我们计划增加对ZeRO第二和第三阶段的支持,从而释放将2000亿个参数训练为数万亿个参数的模型的能力。

    •速度: 在各种硬件上,我们观察到的吞吐量是最新技术的五倍。 例如,为了在GPT系列工作负载上训练大型模型,DeepSpeed将基于ZeRO的数据并行性与NVIDIA Megatron-LM模型并行性相结合。 在具有低带宽互连的NVIDIA GPU群集上(没有NVIDIA NVLink或Infiniband),与仅对具有15亿参数的标准GPT-2模型使用Megatron-LM相比,我们将吞吐量提高了3.75倍。 在具有高带宽互连的NVIDIA DGX-2群集上,对于20至800亿个参数的模型,速度要快三到五倍。 这些吞吐量的提高归因于DeepSpeed更高的内存效率以及使用较低的模型并行度和较大的批处理量来适应这些模型的能力。

    •成本: 吞吐量的提高可以转化为训练成本的大幅降低。 例如,要训练具有200亿个参数的模型,DeepSpeed需要的资源要少三倍。

    •可用性:只需几行代码更改,PyTorch模型就可以使用DeepSpeed和ZeRO。与当前的模型并行性库相比,DeepSpeed不需要重新设计代码或重构模型。它也没有对模型尺寸(例如注意头的数量、隐藏的大小和其他)、批量大小或任何其他训练参数进行限制。对于多达60亿个参数的模型,您可以方便地使用数据并行性(由0提供支持),而不需要模型并行性,相反,对于参数超过13亿个的模型,标准的数据并行性将耗尽内存。ZeRO第二和第三阶段将进一步增加仅通过数据并行性即可训练的模型大小。 此外,DeepSpeed支持ZeRO支持的数据并行性与模型并行性的灵活组合。

Turing-NLG和DeepSpeed大型模型训练

    在DeepSpeed中利用ZeRO-OS来训练一个170亿参数的Turing-NLG模型,其准确性和训练效率高于当前的最新方法。 具体可以点这里,其中显示了该模型建立的新准确性记录及其在自由格式文本生成,摘要和答案综合方面的广泛应用。

    ZeRO-OS与不同类型的模型并行性是互补的、兼容的,对于不适合单个节点(约200亿个参数或更多)的大型模型,与单独使用模型并行性相比,它提供了显著的性能收益、资源节省和模型设计灵活性。

    使用ZeRO-OS和NVIDIA的Megatron-LM在DeepSpeed中组合来训练Turning-NLG模型。与使用NVIDIA Megatron-LM相比,ZeRO-OS节省的内存使Turning-NLG模型的并行度降低了4倍,批处理大小增加了4倍。因此,我们实现了3倍的吞吐量增益。此外,与仅使用Megatron-LM所需的1024个GPU相比,我们仅需256个GPU即可以512个的批量训练。 最终,Megatron-LM无法运行此精确模型-不支持模型结构,因为其关注头(= 28)无法用模型并行度(= 16)整除。 DeepSpeed使模型从不可行运行变为可行而高效的训练!

GitHubのプロジェクト住所:https://github.com/microsoft/DeepSpeed

過去のイベント

【AAAI 2020]すべてが()論文リストを受け入れ
[AAAI 2020]すべての論文リスト(B)を受け付け
(C)すべての論文のリストを受け入れ[AAAI 2020]
[AAAI 2020]すべての論文リストを受け入れ(D)
[AAAI 2020は全てを受け入れます論文リスト(V)
受け入れられた論文(VI)の[AAAI 2020]全リスト
重いです!「自然言語処理(NLP)」グローバル産学「ビッグみんな」インベントリ情報()!
重いです!「自然言語処理(NLP)」グローバル産学「ビッグみんな」情報目録(2)!
重いです!「自然言語処理(NLP)」グローバル産学「ビッグみんな」インベントリ情報(C)!

公開された49元の記事 ウォンの賞賛3 ビュー9212

おすすめ

転載: blog.csdn.net/yinizhilianlove/article/details/104303425