現代のディープラーニングおよび人工知能技術の開発には、ディープニューラルネットワーク (DNN) を使用して、画像、ビデオ、オーディオ、自然言語処理、画像形式でのコンテンツ生成、または指定された形式のトピックに関するテキスト生成などのタスクなど、さまざまな問題を解決することが含まれます。 ロシアのスコルコボ科学技術研究所、リール大学、ボルドー大学、Inria、およびフランスの他の研究機関は、「大規模ニューラル ネットワーク トレーニングに関する調査」と題する論文を共同で発表しました。この論文が解決しようとしている問題は、モデルとコンピューティング プラットフォームが与えられた場合、どのように最も効率的にトレーニングするかということです。トレーニングを効率的に行うには、リソースの計算能力を最大限に活用する必要があり、並列処理の場合は情報伝送がボトルネックにならないようにする必要があります。トレーニングの効率は、基本的に、コンピューティング リソース (CPU、TPU、GPU) 上のコンピューティング カーネルの効率的な実装と、GPU 間および異なるメモリ間の通信の効率的な実装に依存します。 論文リンク: https://arxiv.org/abs/2202.10435 どちらの場合も、計算カーネルの演算強度を最適化し、ハードウェア ネットワークを介した通信を効率的に実装するために多くの作業が行われてきました。ユーザーにとっては、ハードウェアのボトルネックを特定するための強力な分析ツールが存在し、この調査で説明されているどの戦略を使用して、演算強度、メモリ、および制御交換データ量の問題に対処できるかを判断するために使用できます。 このレビュー研究では、これらの制限に対処するための一般的な手法について説明します。モデル、オプティマイザーの状態、およびアクティベーションがメモリに収まらないために事前に計算を実行できない場合は、メモリスワップ計算 (再実装) またはデータシフト (アクティベーションと重みのアンロード) のいずれかを使用できます。オプティマイザーの状態と勾配 (圧縮、プルーニング、量子化) を近似することで、メモリ使用量を圧縮することもできます。 並列方式 (データ並列処理、モデル並列処理、パイプライン モデル並列処理) では、メモリ要件を複数のコンピューティング リソースに分散することもできます。計算強度が GPU と TPU を十分に活用するのに十分でない場合 (通常はミニバッチが小さすぎるため)、上記の手法を使用してミニバッチ サイズを増やすこともできます。最後に、データ並列処理の使用によって発生する通信オーバーヘッドが計算速度を低下させるほどに大きい場合は、他の形式の並列処理 (モデル並列処理、パイプライン モデル並列処理) を使用することができ、勾配圧縮によってデータ交換の量を制限することもできます。 この調査では、研究者はこれらのさまざまな手法がどのように機能するかを説明し、提案された方法を評価および比較する文献について説明し、これらの手法を実装するいくつかのフレームワークを分析します。 以下の表 1 は、この記事で説明されているさまざまな手法と、それらが通信、メモリ、計算効率に与える影響を示しています。 研究者は、目的に応じて次の方法を区別しています。まず、GPU メモリ使用量の削減について議論し、次に GPU に適さないモデルの並列トレーニングの使用を検討し、最後に、複数のデバイスに保存されたトレーニング モデル用に開発されたオプティマイザーの設計について議論しています。 単一のGPUのメモリ使用量を削減順方向伝播中、ニューラル ネットワークは逆方向伝播を実行するために必要なアクティベーションを保存します。場合によっては、これらのアクティベーションによって大量のメモリが消費され、モデルをトレーニングできなくなります。メモリ使用量を削減する主な方法は、再実装 (チェックポイントとも呼ばれます) とオフロードの 2 つです。 アクティベーションの再実装再実装された戦略では、順方向伝播中にアクティベーションのごく一部のみを保存し、逆方向伝播中に残りを再計算します。再実装方法は、処理する計算グラフによって区別できます。最初のグループは自動微分化 (AD) から来ており、均質なシーケンシャル ネットワーク (複数のレイヤーが順次実行され、計算コストとメモリ コストが同じである DNN) の最適なスケジュールを見つけます。 2 番目のグループは、AD から異種設定にソリューションを適応させる、異種シーケンス ネットワーク (CNN、ResNet、いくつかのトランスフォーマーなど、任意の複雑なモジュールで構成された任意のシーケンス ニューラル ネットワーク) などの遷移モデルに焦点を当てています。 いくつかの方法では一般的な計算グラフを再実装できますが、以下の表 2 に示すように、正確な計算コストは指数関数的に増加する可能性があります。 アクティブ化 アンインストールオフロード (メモリ スワッピングとも呼ばれます) は、フォワード パス中にアクティベーションを CPU メモリに移動し、対応するバックワード計算のためにそれらを GPU メモリにプリフェッチすることで GPU メモリを節約する手法です。 CPU と GPU 間の PCI バスの帯域幅は限られているため、どの転送をアクティブにするか、いつ転送するかの選択を最適化する必要があります。 vDNN [Rhu et al., 2016]の研究では、著者らは、入力を畳み込み層にオフロードするだけでCNNにうまく機能するヒューリスティックなアプローチを採用しましたが、これは一般的なDNNにはうまく一般化されません。別の研究[Le et al., 2018]では、アクティベーションライフサイクルを考慮してオフロードするものを選択し、グラフ検索法を使用してオフロード/プリフェッチ操作を挿入する時間を特定しました。 AutoSwap [Zhang et al., 2019]は、各変数に優先度スコアを割り当てることで、どのアクティベーションをオフロードするかを決定します。 重量物の荷降ろし上記の方法の多くは、重みのオフロードにも適用されます。これは、重みのオフロードが、TFLMS、AutoSwap、SwapAdvisor など、任意のテンソルに適用される一般的な手法に依存しているためです。 単一のGPUに収まらないモデルの並列処理 モデル並列処理では、アクティベーション情報のみを通信する必要があり、転送は異なるプロセッサに割り当てられた連続するレイヤー間でのみ発生します。この章で言及した作業を以下の表4に示します。 複数のミニバッチをパイプライン化すると、モデルの並列化における実行速度を加速することができ、それによって[Huang et al., 2019]に示されているように、複数のトレーニング反復を同時にアクティブ化することができます。これらすべてのミニバッチで順方向フェーズと逆方向フェーズが計算されると、重みが更新されます。この方法は実装が非常に簡単ですが、コンピューティング リソースの大部分がアイドル状態になります。 [Narayanan et al., 2019]で提案されたPipeDream法は、特定のミニバッチに対して同じモデル重みを使用するように前方タスクと後方タスクのみを強制することで、このトレーニングプロセスを改善します。 更新の実行頻度を減らすことも、重みの有効期限を制限するのに役立つことが示されています (Narayanan et al.、2021a)。 [Yang et al., 2021]が提案したPipeMareは、パイプラインのステージに応じて学習率とモデルの重みを後方調整します。 パイプライン方式でのアクティベーションによって発生するストレージコストをモデル化することは困難な作業です (Beaumont et al.、2021b)。たとえば、[Fan et al., 2021]のDAPPLEや[Li and Hoefler, 2021]のChimeraは、1F1B(One-Forward-One-Backward)スケジューリングを使用して、アクティベーション関連のメモリ消費を削減します。 1F1B は、アクティベーションによって占有されているメモリを解放するために、各マイクロバッチの逆方向パスをできるだけ早くスケジュールする同期重み更新手法です。 いくつかの論文では、特に難しいトポロジーを扱っています。たとえば、高い通信コストと異種ネットワーク機能の問題に対処するために、[Zhan and Zhang, 2019]のPipe-torchは、計算と通信の間に重複がないことを前提とした更新された動的プログラミング戦略を提案しました。 [Park et al., 2020]のパイプは、異種GPUを仮想ワーカーに分割し、ワーカー間のデータ並列性に依存しながら各仮想ワーカー内でパイプラインを並列実行することで、異種GPUのその他の問題に対処します。 クロスデバイスモデルトレーニングのオプティマイザーゼロ冗長オプティマイザー2020 年、Rajbhandari, S. らは、論文「ZeRO: Memory Optimizations toward Training Trillion Parameter Models」の中で、メモリ使用量を削減するためのデータ並列化実装として、Zero Redundancy Optimizer (ZeRO) を提案しました。アルゴリズムには、デバイス間で分割されたテンソルに応じて、フェーズ 1 - オプティマイザーの状態、フェーズ 2 - オプティマイザーの状態と勾配、フェーズ 3 - オプティマイザーの状態、勾配、およびモデル ハイパーパラメータの 3 つのフェーズがあります。 2021 年、Ren, J. らは論文「ZeRO-Offload: 10 億規模のモデルトレーニングの民主化」で、ZeRO と Zero-Offload の内部パラメータ更新の CPU 側計算を統合しました。この論文では、勾配はパラメータのコピーが保存されている CPU に移行され、更新された重みは GPU に移行されました。 低精度オプティマイザーメモリ使用量をさらに削減するために、低精度のオプティマイザーが機能します。これらのメソッドは、低精度の形式を使用して、オプティマイザーの状態と状態の補助ベクトルを表します。さらに、エラー補正技術を使用して、追跡統計のおおよその精度を維持することもできます。 2021年、Dean, J.らは論文「Large Scale Distributed Deep Networks」の中で、32ビット形式使用時の全体的なパフォーマンスを維持しながら、Adamオプティマイザーを8ビットで保存する方法を提案しました。 2020 年、Sun、X. らは論文「ディープ ニューラル ネットワークの超低精度 4 ビット トレーニング」で、より積極的な精度削減を提案し、4 ビット表現を処理するための特定のパスを開発しました。 収束加速大規模なディープラーニング モデルを高速化するもう 1 つの方法は、ノード間の通信時間と、適切な局所最小値に収束するために必要なエポック数を削減することです。 通信コストの削減について。計算ノード間で勾配を移行する前に、勾配を圧縮する方法はいくつかあります。具体的には、スパース化、量子化、低ランク法の 3 つのカテゴリがあります。 分割方法では、完全な勾配要素の一部のサブセットのみを転送し、パラメーター ベクトル内の対応する要素を更新します。この近似法は、トレーニング モデルのパフォーマンスを維持しながら、通信コストを大幅に削減できます。代表的な研究としては、2017 年の Aji, AF と Heafield, K による論文「Sparse Communication for Distributed Gradient Descent」と、2019 年の Alistarh, D. らによる論文「The Convergence of Sparsified Gradient Methods」があります。 もう 1 つのアプローチは、移行された勾配の量子化に基づいており、特定の数のビットのみを移行し、これらのビットから勾配ベクトル全体を再構築し、パラメーター ベクトルのすべての要素を更新します。この方法は、いくつかのニューラル ネットワーク アーキテクチャと実験設定で良好な結果を達成しています。代表的な研究には、2017 年の論文「QSGD: 勾配量子化とエンコードによる通信効率の高い SGD」 (Alistarh, D. 他) があります。 通信コストを削減するための最後のアプローチは、低ランク法です。低ランク法では、勾配の低ランク近似が構築され、転送され、パラメータ ベクトルを更新する前に完全な形式で勾配を回復するために使用されます。低ランク近似は、ブロック電力法または最小化戦略によって構築できます。代表的な研究としては、Vogels et al. (2019) と Cho et al. (2019) があります。 大規模バッチトレーニング。オプティマイザーの収束を高速化するもう 1 つの方法は、バッチごとにより多くの例を使用することです。このトレーニング設定により、各エポックの反復回数が減り、GPU の使用率が向上します。 2017 年の Goyal, P らによる論文「Accurate, Large Minibatch SGD」では、研究者らは線形スケーリング ルールを使用して学習率とバッチ サイズを更新することを提案しました。この設定により、最適化プロセスが安定し、モデルの最終的なパフォーマンスが同じに収束します。 |
<<: 百度が「AI+X」を実践、AI教育が未来に向けて加速
チューリング賞受賞者のヤン・ルカン氏は、公開インタビューで、現在のAIモデルの学習効率は人間の赤ちゃ...
トラブルを起こせ! AI は、人間が GitHub で更新 (コミット) を送信する方法を「見て」、...
まず、一般的なビザンチン将軍問題からコンセンサスとは何かを理解しましょう。ビザンチン将軍問題ビザンチ...
機械学習は、車内外のセンサーからのデータを融合して、運転者の状態を評価し、運転シナリオを分類するため...
みなさんこんにちは。私はシュイです。気がつけば、またこの2日間で大学入試の時期になりました。私が大学...
[[272601]] 1. 対称暗号化アルゴリズムの概要対称暗号化アルゴリズムは、成熟した技術を備...
人工知能や脳の研究を考えるとき、人々はターミネーターマシンが世界を破壊するイメージを思い浮かべます。...
翻訳者 | ジン・ヤンレビュー | Chonglou 2023 年はテクノロジー業界にとってエキサイ...
[[417720]]人工知能は最先端の技術から人々の日常生活に組み込まれる技術へと急速に進化していま...
[[268251]] [51CTO.com 速訳] 人工知能の発展は希望と課題に満ちている。その「不...
[[357279]] WeChat パブリックアカウント: コンピューターとネットワークのセキュリテ...
ChatGPT ネットワーキング モードが正式に復活しました。そして、この波は有料ユーザーだけでなく...