HUOXIU

MindStudioを使用して大規模モデルの開発プロセス全体を簡単に処理する方法

大規模モデルの規模と機能は急速に発展しており、パラメータの増大、シーケンスの長大化、モダリティの多様化は、大規模モデル技術の今後の発展傾向を象徴しています。モデルの大規模化はコンピューティングプラットフォームの大規模化を意味し、コンピューティング機器のコンポーネントとタスク間の複雑な関係は、デバッグと最適化の複雑さを増大させます。モデルの精度とパフォーマンスのボトルネックを迅速に特定し、大規模モデルのトレーニングを加速するには、トレーニング中に様々な次元からデータを体系的に管理・収集する必要があります。

MindStudioは、HuaweiがAscend AI開発者向けに提供するワンストップ開発環境およびツールセットです。大規模モデルの分散学習を伴う複雑なシナリオにおいて、MindStudioは大規模モデルの移行、精度調整、パフォーマンス最適化など、あらゆるニーズに対応する統合ツールを提供し、開発者が大規模モデル開発の秘訣を容易に理解できるよう支援します。

異なるハードウェア システム間でプロセッサ アーキテクチャとモデル スクリプトが異なるため、GPU ハードウェア システムに基づいてネイティブに開発された大規模なオープン ソース モデルは、Ascend プロセッサで実行できるように移行する必要があります。

では、モデル転送とは具体的に何でしょうか?

モデルスクリプトの基本コンポーネントは主に「演算子、API、サードパーティ製ライブラリ」です。通常、モデルスクリプトはフレームワークレベルでこれらのコア要素を使用して構築されます。したがって、モデルの移行は本質的に「演算子、API、サードパーティ製ライブラリ」の移行となります。

同一フレームワーク内での移行シナリオを例に挙げると、MindStudio移行ツールは「演算子、API、サードパーティ製ライブラリ」の互換性分析を自動でスキャンし、同時にスクリプトコードの置き換えも行います。移行が完了すると、置き換え情報を詳細に記述した評価レポートが生成され、ユーザー定義演算子など直接置き換えできない要素も特定されます。移行プロセス全体はわずか数分で完了します。

精度は大規模モデルによる予測の精度を決定するため、精度の調整は大規模モデルのトレーニングにおける重要なステップの 1 つです。

開発者がオペレータの精度問題を迅速に解決できるよう、MindStudioはオーバーフロー検出や精度比較といったコアツールを提供し、独自に実装したオペレータ操作結果と業界標準のオペレータ操作結果との精度差を多次元的に比較することを可能にします。これにより、トレーニング精度のデバッグ効率が向上し、単一マシンやクラスターにおける精度問題の特定にかかる時間を週単位に短縮します。

精度の事前検出により、大規模クラスターにおける一般的な精度評価ツールの限界、つまりデータダンプへの依存やネットワーク全体の累積誤差を把握できないといった問題を回避できます。事前検出では、軽量プロセスによって単一のAPI統計情報が抽出されます。同時に、これらの統計情報に基づいてデータがランダムに生成され、NPU上で実行されるため、実際のトレーニングシナリオの再現性が最大限に高まります。最後に、相対誤差や絶対誤差などの指標に基づいてAPI精度の包括的な評価が行われ、グラウンドトゥルース比較オプションが提供され、評価レポートが出力されます。この事前検出プロセスは数時間で完了し、トレーニング前にオペレーターとAPIの精度に関する問題の80%以上を解決できます。

オーバーフロー検出:大規模モデル開発中の頻繁なオーバーフローや、オーバーフローによって引き起こされるパラメータの継続的な更新といった複雑な問題に対処します。オーバーフロー問題の特性を自動分類し、典型的なオーバーフロー問題を自動分析することで、問題発生時のオペレータレポートを出力し、専門家による対処方法を提案します。

大規模モデル領域において、パフォーマンスは非常に重要な指標です。大規模モデルの学習には数百、数千のGPUが必要となり、完了までに数か月かかる場合があります。パフォーマンスの最適化は、学習コストを直接的に大幅に削減できます。

一方、大規模モデルの分野でのパフォーマンス チューニングには、データ取得量が大きい、解析時間が非常に長い、タイムライン データ量の制限がある、自動分解および比較ツールがない、カード間の同期、カードやリンクが遅いなど、多くの課題があります。

MindStudio はシステムレベルのクラスター パフォーマンス チューニング機能を提供し、パフォーマンスの問題の内訳、多次元プロファイリング、クラスター データのマルチインターフェース視覚化を通じて、開発者がパフォーマンスのボトルネックを迅速に特定できるようにします。

パフォーマンスの内訳:トレーニングデータは、通信、オペレータ、スケジューリング、メモリの4つの次元に分解されます。トレーニング時間とメモリ使用量を比較分析することで、パフォーマンスが低下している特定のオペレータを特定できます。これにより、パフォーマンスデータに含まれる膨大なタイムライン情報によってユーザーが理解しにくくなる問題や、オペレータ情報やメモリ転送情報の量が膨大になる問題を効果的に解決します。ユーザーは、主要なパフォーマンスボトルネックを直接特定できます。

多次元ビジュアルプロファイリング:この機能は、PyTorchフレームワーク内でパフォーマンスデータの収集と分析を行うためのAscend PyTorch Profilerパフォーマンス取得インターフェースを提供します。ユーザーは、Ascend PyTorch ProfilerインターフェースをPyTorchトレーニングスクリプトに挿入することで、トレーニング中にパフォーマンスデータを収集できます。トレーニング後には、可視化されたパフォーマンスデータファイルが直接出力され、複数のデータセットを一度にロードできるため、柔軟な比較が可能になります。メモリレベルのプロファイリングは、元のコミュニティの能力をはるかに超えるパフォーマンスを実現します。さらに、このツールはTensorboardの可視化と演算子レベルのメモリプロファイリングを提供し、コールスタックと演算子情報の相関関係をサポートすることで、開発者がきめ細かなコードレベルでパフォーマンスのボトルネックを特定するのに役立ちます。

複数のインターフェースにわたるクラスタデータの可視化:クラスタ可視化およびチューニングツールであるAscend Insightは、大規模モデルクラスタのパフォーマンスチューニングの効率を向上させます。Ascend Insightは、タイムライン、メモリ、オペレータ、サマリービューなどの多次元ビュー分析を提供し、ユーザーが異常やパフォーマンスのボトルネックを迅速に特定できるよう支援します。

1) タイムライン ビュー: 複数カードの集約、レイヤーごとのフィルタリング、データの比較、単一カードの時間キャリブレーション、オペレータ検索、統計情報をサポートします。

2) メモリビュー:プロセスレベルの予約、オペレータレベルの予約、オペレータレベルの使用量を含むメモリ使用量の折れ線グラフをサポートします。ユーザーは折れ線グラフに基づいてメモリ使用量のピークポイントを特定し、対応するオペレータの詳細情報を取得できます。

3) オペレーター ビュー: オペレーターの時間消費統計と詳細情報を分析することで、計算パフォーマンスのボトルネックを迅速に特定することをサポートします。

4) サマリービュー:通信/計算時間消費分析とPPシナリオ時間消費分析をサポートします。トポロジと並列戦略に基づき、視覚的な分析リンクを組み合わせてスケジューリング分析を実行し、通信速度の低下や計算速度の低下などのパフォーマンス問題を特定します。

結論

上記は、MindStudioのエンドツーエンド開発ツールチェーンが、大規模モデル(数百億から数千億)の学習パフォーマンスを迅速に向上させ、低コストで開発効率を高めるために、ユーザーをどのようにサポートするかについての完全な概要です。主な3つのステップは、大規模モデルの移行、精度チューニング、パフォーマンス最適化です。詳細については、MindStudio-Ascendコミュニティ(hiascend.com)をご覧ください。