AI・機械学習
上級

連合学習アグリゲーション(レンゴウガクシュウアグリゲーション)

連合学習アグリゲーションとは、複数の参加者がローカルで計算したモデル更新(勾配やパラメータ差分)を中央サーバーで統合する処理で、FedAvg・FedProx・SCAFFOLD・FedNovaなどのアルゴリズムが代表的である。

0 回閲覧
0 いいね

連合学習アグリゲーション(Federated Aggregation)

連合学習アグリゲーションとは、分散した参加者(クライアント)がそれぞれのローカルデータで計算したモデル更新を中央サーバーで統合し、グローバルモデルを改善する中核的な処理工程である。アグリゲーション戦略の選択がモデルの収束速度・最終精度・通信効率・ロバスト性を決定する。

概要

連合学習の各ラウンドは「配布→ローカル学習→アグリゲーション→再配布」のサイクルで構成される。アグリゲーションはこのサイクルの心臓部であり、参加者間のデータ量・分布・品質の違いをどう吸収するかが設計上の最重要課題となる。2026年現在、10以上のアグリゲーション手法が提案されており、タスクとデータ特性に応じた選択が必要である。

主要アルゴリズム比較

アルゴリズム提案年Non-IID対応通信効率Byzantine耐性計算オーバーヘッド主な用途
FedAvg2017低標準なし最小IIDデータ、プロトタイプ
FedProx2020中標準なし低(近接項のみ)Non-IID環境全般
SCAFFOLD2020高2倍(制御変量送信)なし中強Non-IID環境
FedNova2020中標準なし低異なるローカルステップ数
FedBuff2022中標準なし低非同期環境
Krum2017低標準高(f<n/3)高(距離計算)敵対的環境
Trimmed Mean2018低標準中中軽量Byzantine耐性

FedAvg の詳細

FedAvg(Federated Averaging)はMcMahanら(2017)が提案した最も基本的なアグリゲーション手法である。

アルゴリズム:

  1. サーバーがグローバルモデル w_t を全参加者に配布
  2. 各クライアント k がローカルデータで E エポック SGD を実行 → w_t+1^k を算出
  3. サーバーが加重平均で集約: 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耐性はリスク評価に基づいて導入判断