NVIDIA FLAREを使った非IID CIFAR-10でのFedAvgとFedProxの構築と比較ステップバイステップガイド
このチュートリアルでは、NVIDIA FLAREを使用して高度な連合学習実験を構築し、非IID CIFAR-10データセット上でFedAvgとFedProxを比較します。ディリクレ分布を使ってクライアントのラベル不均衡をシミュレートし、NVFlare Job APIで連合タスクを定義・起動、Client APIでローカルトレーニングとモデル交換を処理します。完全なコード実装と実験結果の可視化を提供します。
記事インテリジェンス
要点
- NVIDIA FLAREで連合学習実験を構築し、FedAvgとFedProxを比較。
- ディリクレ分布(alpha=0.3)でCIFAR-10を3つの非IIDクライアントに分割。
- NVFlare Job APIでサーバー調整、Client APIでクライアントのローカルトレーニングとモデルアップロードを実装。
- 実験結果をグローバルテスト精度曲線で比較し、FedProxの非IIDデータでの有効性を示す。
重要な理由
このニュースが重要なのは、NVIDIA FLAREで連合学習実験を構築し、FedAvgとFedProxを比較ためです。
技術的影響
モデル選定、推論コスト、プロダクト能力、評価基準に影響する可能性があります。
連合学習では、非独立同一分布(non-IID)データへの対応が重要な課題です。本チュートリアルでは、NVIDIA FLAREフレームワークを使用して、CIFAR-10データセット上で2つの古典的な連合学習アルゴリズム、FedAvgとFedProxを比較する実践的なガイドを提供します。ディープラーニングの基礎知識を持つ開発者を対象としており、実際のコード例を通じて連合学習実験の構築と実行方法を示します。
まず、実験環境を準備します。必要なライブラリ(nvflare、torch、torchvision、matplotlib)をインストールし、実験パラメータを定義します。クライアント数は3、通信ラウンド数は5、ローカルエポック数は1、バッチサイズ64、学習率0.01、非IIDの度合いを制御するディリクレパラメータαは0.3とします。CIFAR-10データセットは指定ディレクトリにダウンロードされ、すべてのシミュレートクライアントで共有されます。
現実のラベル不均衡をシミュレートするため、ディリクレ分布を使用してトレーニングデータを各クライアントに分割します。固定シードを使用することで、各クライアントプロセスが独立して同じグローバル分割を生成できます。これにより、各クライアントは異なるラベル分布を持つデータを受け取り、実際の連合学習環境に近づきます。
クライアントトレーニングスクリプトは実験の中核です。CIFAR-10の10クラス分類用に、2つの畳み込み層と2つの全結合層からなる小型CNNモデルを定義します。スクリプトはNVFlareのClient APIを初期化し、サーバーからグローバルモデルパラメータを受信してローカルデータでトレーニングします。FedProxアルゴリズムでは、損失関数にモデルパラメータとグローバルモデルパラメータのL2距離ペナルティ項を追加することで、局所的な更新がグローバルモデルから逸脱するのを抑制します。チュートリアルではmuパラメータを0.0(FedAvg)と0.1(FedProx)に設定しています。
サーバー側では、NVFlareのJob APIを使用してFedAvgJobを作成します。ScriptRunnerを介してクライアントスクリプトを各シミュレートサイト(site-1、site-2、site-3)にアタッチし、統一された実験パラメータを渡します。その後、標準FedAvgと近接項付きFedProxの2つの実験をそれぞれ実行します。各実験後、トレーニングログがCSV形式で保存され、各通信ラウンド後のグローバルテスト精度が含まれます。
最後に、両実験の精度記録を読み込み、学習曲線をプロットします。曲線は、通信ラウンドの増加に伴う非IID CIFAR-10テストセットでのグローバルモデルのパフォーマンスを示します。比較により、FedProxがラベル不均衡シナリオでFedAvgに対して潜在的な優位性を持つことが視覚的に確認できます。さらに、チュートリアルでは最終的なグローバルモデルチェックポイントの場所も示しており、その後の分析や再利用が可能です。
結論として、本チュートリアルはデータ分割、クライアントトレーニング、サーバー調整、結果可視化までのエンドツーエンドの連合学習ワークフローを提供します。読者はこのテンプレートを基に、他の連合学習アルゴリズムを探求したり、パラメータを調整してより複雑な非IIDデータシナリオに対応することができます。