|
著者:Huang Jun、Alibaba Cloud シニアアルゴリズムエキスパート 画像ソース: GTC 2024 China AI Day オンライン セッションのプレゼンテーション「NVIDIA Megatron-Core に基づく MoE LLM 実装およびトレーニング最適化」。
画像ソース: GTC 2024 China AI Day オンライン セッションのプレゼンテーション「NVIDIA Megatron-Core に基づく MoE LLM 実装およびトレーニング最適化」。 2023年後半、Mistral AIはオープンソースのMoEアーキテクチャに基づく大規模言語モデル「Mixtral 8x7B」をリリースしました。わずか467億個のパラメータを持つこのモデルは、複数の下流タスクのリーダーボードにおいて、当時最高のオープンソース高密度モデルであったLlama-2 70Bを凌駕しました。右のグラフは、推論リソースを同一条件で使用した場合、MoEモデルが高密度モデルを大幅に上回るパフォーマンスを示していることを示しています。この成果はMoEモデルへの業界の強い関心を呼び起こし、Alibaba CloudとNVIDIA Megatron-Coreチームは、大規模モデル分野におけるMoE技術の応用についてさらに協力することになりました。 画像ソース: GTC 2024 China AI Day オンライン セッションのプレゼンテーション「NVIDIA Megatron-Core に基づく MoE LLM 実装およびトレーニング最適化」。 MoEアーキテクチャを用いて産業グレードのアプリケーションを実装する際に解決すべき問題を説明するため、本稿ではまずMoEの開発の歴史を振り返る。1990年代初頭に提案されたマルチエキスパートモデルの概念は、複数のエキスパートモデルを組み合わせて協調的にタスクを解決し、ゲートルーティングを用いてエキスパートを選択するというMoEの理論的基礎を築いた。 画像ソース: GTC 2024 China AI Day オンライン セッションのプレゼンテーション「NVIDIA Megatron-Core に基づく MoE LLM 実装およびトレーニング最適化」。 次に、MoEと深層学習を統合したSparsely-Gated MoEをはじめとするいくつかの画期的な研究を簡単に分析します。この研究では、RNNネットワークを複数のエキスパートサブネットワークに分割し、トークンルーティングを制御するためにSoftmax Gatingメカニズムを用いています。しかし、従来のSoftmax Gatingロジックは負荷の不均衡を引き起こす可能性があります。学習が進むにつれて、一部のエキスパートネットワークが過剰に活性化する一方で、他のエキスパートネットワークのパラメータが十分に学習されない可能性があります。 画像ソース: GTC 2024 China AI Day オンライン セッションのプレゼンテーション「NVIDIA Megatron-Core に基づく MoE LLM 実装およびトレーニング最適化」。 Google の Gshard プロジェクトは、MoE を Transformer アーキテクチャにさらに適用しており、その主な革新は次のとおりです。 画像ソース: GTC 2024 China AI Day オンライン セッションのプレゼンテーション「NVIDIA Megatron-Core に基づく MoE LLM 実装およびトレーニング最適化」。 実験結果によると、Gshard は Transformer パラメータの数を 150B から 600B に増加させましたが、計算コストは 50% しか増加しませんでした。これは、モデルのスケーラビリティにおける MoE の大きな利点を実証しています。 画像ソース: GTC 2024 China AI Day オンライン セッションのプレゼンテーション「NVIDIA Megatron-Core に基づく MoE LLM 実装およびトレーニング最適化」。 Switch Transformerのその後の研究では、MoE Transformerの学習プロセスを徹底的に最適化し、モデルパラメータサイズの最大スケーリングを実現しました。まず、より積極的なトップ1ルーティング戦略を採用しました。この戦略では、パラメータ更新のために一度に1つのエキスパートのみが選択されます。これにより、ルーティングの計算負荷が大幅に軽減され、トップ2戦略と比較して計算コストがほぼ半減するだけでなく、各エキスパートが処理するバッチサイズも削減され、通信コストがさらに軽減されます。 画像ソース: GTC 2024 China AI Day オンライン セッションのプレゼンテーション「NVIDIA Megatron-Core に基づく MoE LLM の実装とトレーニングの最適化」。 第二に、既存のエキスパート負荷分散問題に対処するため、本研究では補助的な損失関数を導入する。この関数において、Nはエキスパートの総数、fはi番目のエキスパートに割り当てられたトークンの割合、Pはルータがi番目のエキスパートにトークンを割り当てる確率を表す。最適化の目的は、トークンが各エキスパートに均等に分配されるようにすることである。損失関数を最小化することで、fとPは1/Nに近づく。この時点で、損失関数の調整パラメータαは通常0.01程度に設定され、比較的良好な負荷分散効果が得られる。 画像ソース: GTC 2024 China AI Day オンライン セッションのプレゼンテーション「NVIDIA Megatron-Core に基づく MoE LLM 実装およびトレーニング最適化」。 分散トレーニングに関しては、前述のデータ並列処理とエキスパート並列処理に加えて、この研究では非エキスパート アーキテクチャ用のモデル並列処理戦略を実装し、シングル カードのメモリ要件をさらに削減して、モデル パラメータの数を大幅に増やしています。 画像ソース: GTC 2024 China AI Day オンライン セッションのプレゼンテーション「NVIDIA Megatron-Core に基づく MoE LLM 実装およびトレーニング最適化」。 事前学習の安定性に関しては、エキスパートルーティングのランダム性と数値精度によって引き起こされる丸め誤差(つまり、ルーティングネットワークによって計算されるロジット値が過度に高いことによる学習の非収束問題)に対処するため、本研究ではz-loss関数を提案する。この関数において、Bはバッチ内のトークン数、Nはエキスパート数、Xはルーティングネットワークに入力されるロジットの次元に対応する。z-lossを導入することで、精度などの要因によって引き起こされるロジット値が過度に高い現象を効果的に抑制し、モデル学習の安定性を向上させる。z-lossは、高密度LLM学習の安定性向上にも適用できる。 画像ソース: GTC 2024 China AI Day オンライン セッションのプレゼンテーション「NVIDIA Megatron-Core に基づく MoE LLM 実装およびトレーニング最適化」。 さらに、本研究では、MoE トレーニングの安定性とパフォーマンスのバランスに影響を与えるさまざまな要因を詳しく調べ、詳細な実験を通じて一連のベスト プラクティスをまとめています。 画像ソース: GTC 2024 China AI Day オンライン セッションのプレゼンテーション「NVIDIA Megatron-Core に基づく MoE LLM 実装およびトレーニング最適化」。 MixtralモデルはMegablocksフレームワークから独自のアプローチを借用しており、その主な特徴はMoE層の計算をブロックスパース演算として表現することです。前述の動的ルーティング問題(異なるエキスパートが異なる数のトークンを処理する問題)に対処するため、ユーザーは計算中にトークンをドロップするかパディングするかを選択する必要があります。前者はモデルのパフォーマンスに影響を与え、後者は学習コストを増加させます。 画像ソース: GTC 2024 China AI Day オンライン セッションのプレゼンテーション「NVIDIA Megatron-Core に基づく MoE LLM 実装およびトレーニング最適化」。 前述のMoEの開発履歴には、開発中に解決する必要があった問題が詳述されています。以下では、これらの問題に対処するためにAlibaba CloudがNVIDIA Megatron-Coreチームと行った技術協力とその成果について簡単に紹介します。Megatron-Coreは、多様なモデル並列処理のサポート、演算子最適化、通信最適化、メモリ最適化、低精度トレーニング(例:FP8)などの高度な技術など、大規模LLMのトレーニングのためのコア技術を統合した、成熟した軽量の大規模LLMトレーニングフレームワークです。Megatron-CoreはMegatron-LMの優れた機能を継承し、コード品質、安定性、機能の完全性、テストカバレッジの点で包括的に改善されています。重要なのは、フレームワークの設計が分離とモジュール性を重視しており、二次開発を行う際や新しいモデルアーキテクチャを探索する際に開発者に高い柔軟性を提供していることです。そのため、私たちはMegatron-Coreチームとの協力を選択しました。 画像ソース: GTC 2024 China AI Day オンライン セッションのプレゼンテーション「NVIDIA Megatron-Core に基づく MoE LLM 実装およびトレーニング最適化」。 以下のセクションでは、MoEアーキテクチャにおけるMegatron-Coreの主なサポート機能について説明します。並列化に関しては、Megatron-Core MoEはエキスパート並列処理だけでなく、データ並列処理、テンソル並列処理、パイプライン並列処理、シーケンス並列処理を含む3D並列処理もサポートしています。超大規模MoEモデルの場合、エキスパート並列処理と他の並列処理戦略を柔軟に組み合わせることができます。 画像ソース: GTC 2024 China AI Day オンライン セッションのプレゼンテーション「NVIDIA Megatron-Core に基づく MoE LLM 実装およびトレーニング最適化」。 Alibaba Cloud AI Platform(PAI)チームは、Megatron-Coreをベースとした大規模モデルのトレーニングをシンプルかつ効率的に行うツールを開発しました。Alibaba CloudのLingjunコンピューティングサービスを活用し、チームはPAI-Megatron-Patchツールキットをリリースしました。このツールキットは、10種類を超える主流のオープンソース大規模モデル形式からMegatron-LMおよびMegatron-Coreへのシームレスな変換を可能にします。ユーザーは、PAI DSWやDLCなどの製品を使用することで、Megatron-LMおよびMegatron-Coreを簡単に起動し、大規模な高密度モデルやMoEモデルのトレーニングを行うことができます。 画像ソース: GTC 2024 China AI Day オンライン セッションのプレゼンテーション「NVIDIA Megatron-Core に基づく MoE LLM 実装およびトレーニング最適化」。 多くの大規模オープンソースモデルがMegatron学習フレームワークとは異なるHuggingFace形式を使用しているという問題に対処するため、PAI-Megatron-patchの主な機能は、HuggingFaceモデルからMegatronフレームワークへの重み変換サービスを提供することです。この変換は基本的にモデルの名前空間をマッピングし、層ノルム層、アテンション層、MLP層などのコアコンポーネントの定義変換をカバーします。PAI-Megatron-patchには簡潔な重み変換スクリプトが含まれており、ユーザーはモデル形式の変換操作を簡単に実行でき、移行プロセスを大幅に簡素化します。 画像ソース: GTC 2024 China AI Day オンライン セッションのプレゼンテーション「NVIDIA Megatron-Core に基づく MoE LLM 実装およびトレーニング最適化」。 MoEモデルの変換を行う際には、変換されたファイルが分散学習に直接使用できることを確認する必要があります。このため、広範な検証作業を実施しました。Mixtralモデルを例に挙げると、8人のエキスパートと16枚のカードを持つシナリオにおいて、TP=4、EP=4の分割戦略を採用しました。各TPパーティションには、フォルダ内に4つのファイルが含まれており、8人のエキスパート全員のFFN重みが格納されています。つまり、各ファイルには2人のエキスパートのFFN重み情報が含まれています。 画像ソース: GTC 2024 China AI Day オンライン セッションのプレゼンテーション「NVIDIA Megatron-Core に基づく MoE LLM 実装およびトレーニング最適化」。 de novo事前学習フェーズでは、以下のパラメータを設定しました:global_size=256、LR(学習率)=1e-4、seq_len=2048、TP=4。24時間、2.4Kステップの学習後、損失は約1.9に収束しました。 画像ソース: GTC 2024 China AI Day オンライン セッションのプレゼンテーション「NVIDIA Megatron-Core に基づく MoE LLM の実装とトレーニングの最適化」。 継続的な事前トレーニング段階では、global_size は 256、LR は 5e-5、seq_len は 2048、TP は 4 に設定されました。18 時間と 2,000 回のトレーニング ステップの後、損失関数は通常の収束動作を示しました。 画像ソース: GTC 2024 China AI Day オンライン セッションのプレゼンテーション「NVIDIA Megatron-Core に基づく MoE LLM 実装およびトレーニング最適化」。 finenetune フェーズでは、次の 3 セットのテストを行いました。 画像ソース: GTC 2024 China AI Day オンライン セッションのプレゼンテーション「NVIDIA Megatron-Core に基づく MoE LLM 実装およびトレーニング最適化」。 Finetuneの有効性をさらに検証するため、評価ベンチマークとしてコード生成タスクを選択しました。約8万件の公開コードサンプルを学習に使用し、前述のSFT設定に従ってHumanEvolプラットフォーム上でモデルを評価しました。2,500ステップの学習後、HumanEvolにおけるモデルのパフォーマンスは、学習開始時の45.73%から53.05%へと大幅に向上し、学習プロセスの合理性と有効性を強く示しました。さらに、速度面では、この手法は同様のリソース条件下で実行されたMegablocksを上回りました。 画像ソース: GTC 2024 China AI Day オンライン セッションのプレゼンテーション「NVIDIA Megatron-Core に基づく MoE LLM 実装およびトレーニング最適化」。 Alibaba CloudのAIプラットフォームPAIを通じて、公式のベストプラクティスガイドを提供しています。このガイドは、データ処理、トレーニング、推論、評価、オンラインサービスの展開に至るまで、AI開発プロセス全体におけるテスト結果をまとめたものです。 画像ソース: GTC 2024 China AI Day オンライン セッションのプレゼンテーション「NVIDIA Megatron-Core に基づく MoE LLM 実装およびトレーニング最適化」。 このベスト プラクティス ガイドでは、各ステップの操作方法をユーザーが明確に理解できるように、詳細な手順を段階的に説明します。 |