連合学習アグリゲーション(レンゴウガクシュウアグリゲーション)
連合学習アグリゲーションとは、複数の参加者がローカルで計算したモデル更新(勾配やパラメータ差分)を中央サーバーで統合する処理で、FedAvg・FedProx・SCAFFOLD・FedNovaなどのアルゴリズムが代表的である。
連合学習アグリゲーション(Federated Aggregation)
連合学習アグリゲーションとは、分散した参加者(クライアント)がそれぞれのローカルデータで計算したモデル更新を中央サーバーで統合し、グローバルモデルを改善する中核的な処理工程である。アグリゲーション戦略の選択がモデルの収束速度・最終精度・通信効率・ロバスト性を決定する。
概要
連合学習の各ラウンドは「配布→ローカル学習→アグリゲーション→再配布」のサイクルで構成される。アグリゲーションはこのサイクルの心臓部であり、参加者間のデータ量・分布・品質の違いをどう吸収するかが設計上の最重要課題となる。2026年現在、10以上のアグリゲーション手法が提案されており、タスクとデータ特性に応じた選択が必要である。
主要アルゴリズム比較
| アルゴリズム | 提案年 | Non-IID対応 | 通信効率 | Byzantine耐性 | 計算オーバーヘッド | 主な用途 |
|---|---|---|---|---|---|---|
| FedAvg | 2017 | 低 | 標準 | なし | 最小 | IIDデータ、プロトタイプ |
| FedProx | 2020 | 中 | 標準 | なし | 低(近接項のみ) | Non-IID環境全般 |
| SCAFFOLD | 2020 | 高 | 2倍(制御変量送信) | なし | 中 | 強Non-IID環境 |
| FedNova | 2020 | 中 | 標準 | なし | 低 | 異なるローカルステップ数 |
| FedBuff | 2022 | 中 | 標準 | なし | 低 | 非同期環境 |
| Krum | 2017 | 低 | 標準 | 高(f<n/3) | 高(距離計算) | 敵対的環境 |
| Trimmed Mean | 2018 | 低 | 標準 | 中 | 中 | 軽量Byzantine耐性 |
FedAvg の詳細
FedAvg(Federated Averaging)はMcMahanら(2017)が提案した最も基本的なアグリゲーション手法である。
アルゴリズム:
- サーバーがグローバルモデル w_t を全参加者に配布
- 各クライアント k がローカルデータで E エポック SGD を実行 → w_t+1^k を算出
- サーバーが加重平均で集約: w_t+1 = Σ(n_k / n) × w_t+1^k
- n_k: クライアント k のデータ量、n: 全データ量の合計
設定例(7B LLM ファインチューニング):
- ローカルエポック E = 1〜3
- ローカルバッチサイズ = 4〜8
- 学習率 = 2e-5〜5e-5
- 通信ラウンド = 100〜300(LoRA使用時は50〜100で収束)
限界: データ分布が非独立同一分布(Non-IID)の場合、各クライアントのローカル最適解がグローバル最適解から乖離し(client drift)、収束が遅延または発散する。
FedProx と SCAFFOLD
FedProx はFedAvgのローカル目的関数にグローバルモデルとの L2 正則化項を追加する:
L_k(w) = F_k(w) + (μ/2) ||w - w_t||^2
μの推奨値は0.001〜0.1で、データの非均一性が高いほど大きな値を設定する。計算オーバーヘッドは1〜3%程度と軽微。
SCAFFOLD はクライアントドリフトを制御変量(control variate)で直接補正する。各クライアントがローカル制御変量 c_k とグローバル制御変量 c を保持し、勾配更新時にドリフト方向を補正する。Non-IID環境でFedAvg比5〜15%、FedProx比3〜8%の精度向上が報告されているが、通信量が2倍(制御変量の送受信)になるトレードオフがある。
Byzantine耐性アグリゲーション
悪意ある参加者(Byzantine fault)がモデルポイズニング攻撃を仕掛ける場合の防御手法:
- Krum: 各クライアント更新間の幾何的距離を計算し、最も「中心的」な更新を選択。n人中f人までの攻撃者に耐性(f < n/2 - 1)
- Multi-Krum: Krum の上位 m 件を平均化。単一選択のKrumより安定
- Trimmed Mean: 各パラメータ次元で上下β%を除外し、残りを平均。β=10〜20%が一般的
- Bulyan: KrumとTrimmed Meanの組み合わせ。最も強い耐性を持つが計算コストが高い
実装上の注意点
- 通信圧縮: 勾配スパース化(Top-K, Random-K)や量子化(1-bit SGD, TernGrad)で通信量を10〜100倍削減可能。LLMではLoRA差分送信が最も実用的
- クライアント選択: 全参加者が毎ラウンド参加する必要はない。ランダムサンプリング(参加率10〜30%)でも収束品質は維持される
- 適応的学習率: サーバー側でAdamやAdagradを適用するFedAdam/FedAdagradが2024年以降の標準。クライアント側学習率とサーバー側学習率を独立に設定する
よくある質問(FAQ)
Q1: FedAvgとFedProxのどちらを選ぶべきですか? A: データ分布がIIDに近い場合はFedAvgで十分。Non-IID度が高い(各参加者が異なるドメインのデータを持つ)場合はFedProx(μ=0.01)から開始し、収束しなければSCAFFOLDに移行するのが推奨。
Q2: Byzantine耐性は常に必要ですか? A: クロスサイロ型(信頼できる組織間)では不要なことが多い。クロスデバイス型や参加者の信頼性が不明な場合は Trimmed Mean(低コスト)を最低限適用すべき。
Q3: 非同期アグリゲーションの欠点は? A: 古い勾配(staleness)による収束品質の低下が最大の課題。FedBuffではバッファサイズ K の設定が重要で、K が大きすぎると同期型に近づき遅延耐性が低下、小さすぎると古い更新の影響が増大する。K = 参加者数の10〜30%が目安。
まとめ
- FedAvgが基本、Non-IIDにはFedProx/SCAFFOLD、敵対環境にはKrum/Trimmed Meanを選択
- LLMではLoRA差分送信による通信効率化が事実上の標準
- サーバー側適応的学習率(FedAdam)との組み合わせが2025年以降のベストプラクティス
- Byzantine耐性はリスク評価に基づいて導入判断