designing-federated-learning-architecture について
生データを各組織内に保ちながらモデルを共同学習する、連合学習システムの設計スキルです。アーキテクチャ、集約、プライバシー、通信効率、導入手順を扱います。
主な機能
- 01水平・垂直連合学習の構成
- 02FedAvg と FedProx の選択指針
- 03安全な集約と差分プライバシー
- 04勾配・モデルの通信手法
- 05実装から監視までの手順
活用シーン
- 01病院間の共同モデル学習を計画
- 02非 IID の参加者データに手法を選択
- 03プライバシーと通信のパラメーター設定
- 04連合学習の導入・監視計画を作成
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ mukul975/ privacy-data-protection-skills --skill designing-federated-learning-architectureインストール後、Claude Code で/designing-federated-learning-architectureを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
assets/template.mdreferences/standards.mdworkflows.mdscripts/process.py詳細
フェデレーテッドラーニングアーキテクチャの設計
概要
フェデレーテッドラーニング(FL)を利用すると、複数の当事者が生データを共有せずに機械学習モデルを共同でトレーニングできます。各参加者は自分のデータでローカルモデルをトレーニングし、モデルの更新(勾配またはパラメーター)のみを中央のアグリゲーターと共有します。集約されたモデルは、単一の当事者が他の当事者のデータセットにアクセスすることなく、すべての参加者のデータを活用できます。
FL は、GDPR 第 5 条 1 項(c)のデータ最小化(個人データではなく、モデルの更新のみを共有)、第 25 条 1 項のデータ保護バイデザイン(プライバシーをアーキテクチャに組み込む)を直接サポートし、第 V 章に基づく越境データ移転の必要性を減らすことができます(データは元の管轄区域内に留まります)。
FL アーキテクチャ
水平型フェデレーテッドラーニング
参加者は同じ特徴空間を共有しますが、異なるデータサンプルを保有します。各参加者は対象者の完全な記録を持ちますが、対象者は異なります。
┌──────────────────────────────────────────────────────────────┐
│ Central Aggregator │
│ (aggregates model updates only) │
│ │
│ Global Model = Aggregate(Local_1, Local_2, ..., Local_K) │
└─────────────┬──────────────┬──────────────┬──────────────────┘
│ │ │
┌─────────▼────┐ ┌──────▼──────┐ ┌────▼──────────┐
│ Hospital A │ │ Hospital B │ │ Hospital C │
│ 5,000 pts │ │ 8,000 pts │ │ 3,000 pts │
│ Same features│ │ Same features│ │ Same features │
│ Train locally│ │ Train locally│ │ Train locally │
└──────────────┘ └─────────────┘ └───────────────┘
ユースケース: 複数の病院が診断モデルをトレーニングするケース。各病院は完全な患者記録を持ちますが、患者は異なります。
垂直型フェデレーテッドラーニング
参加者は同じデータ対象を共有しますが、異なる特徴を保有します。特徴は参加者間に分散しています。
┌──────────────────────────────────────────────────────────────┐
│ Coordination Server │
│ (aligns features without exposing raw data) │
└─────────────┬──────────────┬──────────────┬──────────────────┘
│ │ │
┌─────────▼────┐ ┌──────▼──────┐ ┌────▼──────────┐
│ Bank │ │ Insurer │ │ Retailer │
│ Financial │ │ Claims │ │ Purchase │
│ features │ │ features │ │ features │
│ Same users │ │ Same users │ │ Same users │
└──────────────┘ └─────────────┘ └───────────────┘
ユースケース: 銀行が金融データを、保険会社が保険金請求履歴を、小売業者が購買行動データを保有し、それらが重複する顧客に関する信用スコアリング。
集約戦略
FedAvg(フェデレーテッドアベレージング)
FL の基本アルゴリズムです(McMahan ほか、2017 年)。各参加者が複数のローカルエポックでトレーニングした後、アグリゲーターは各参加者のデータセットサイズに比例させてモデルの重みを平均します。
For each communication round t:
1. Server sends global model w_t to selected participants
2. Each participant k trains locally for E epochs on their data:
w_k = LocalSGD(w_t, data_k, E epochs, learning_rate η)
3. Server aggregates:
w_{t+1} = Σ (n_k / n) * w_k
where n_k = participant k's sample count, n = total samples
| パラメーター | 推奨範囲 | 影響 |
|---|---|---|
| ローカルエポック数(E) | 1-5 | エポック数が多いほど通信量は減りますが、乖離のリスクが高まります |
| 参加率 | ラウンドごとに 10-100% | 高いほど収束性が向上しますが、通信量が増えます |
| 学習率(η) | 0.01-0.1 | 標準的な SGD の調整方法を適用できます |
| 通信ラウンド数 | 50-500 | データの異質性とモデルの複雑さによって異なります |
FedProx(フェデレーテッドプロキシマル)
異質な環境向けの FedAvg の拡張です。ローカルの目的関数に近接項を追加し、ローカルモデルがグローバルモデルからどれだけ離れるかを制限します。非 IID(独立同分布ではない)データを持つ参加者に適しています。
Local objective for participant k:
minimize F_k(w) + (μ/2) * ||w - w_t||^2
where μ controls the strength of the proximal regularization
| シナリオ | FedAvg の性能 | FedProx の性能 | 推奨 |
|---|---|---|---|
| 参加者間で IID データ | 良好 | 良好 | FedAvg(よりシンプル) |
| 軽度の非 IID(ラベルの偏り) | 普通 | 良好 | FedProx(μ=0.01) |
| 重度の非 IID(特徴のシフト) | 低い | 普通 | FedProx(μ=0.1)+参加率を高める |
| 計算能力が異なる参加者 | 不安定 | 安定 | FedProx(部分的な作業に対応) |
プライバシー保証
脅威モデル
| 脅威 | 説明 | 緩和策 |
|---|---|---|
| 勾配反転 | 攻撃者が共有された勾配からトレーニングデータを復元する | セキュアアグリゲーション+差分プライバシー |
| メンバーシップ推論 | 攻撃者が特定のレコードがトレーニングデータに含まれていたかを判定する | 差分プライバシー |
| モデル反転 | 攻撃者がトレーニング済みモデルから機微な特徴を復元する | 差分プライバシー+モデルのアクセス制御 |
| フリーライダー攻撃 | 参加者が正当な更新ではなくノイズを提供する | 貢献度の検証(FoolsGold、RFFL) |
| ポイズニング攻撃 | 悪意のある参加者がグローバルモデルを改ざんする | ビザンチン耐性のある集約(Krum、トリム平均) |
セキュアアグリゲーション
セキュアアグリゲーションにより、サーバーには参加者全員の更新の合計だけが見え、個々の更新は見えません。次の方法で実装します。
- ペアワイズマスキング(Bonawitz ら、2017 年)— 参加者の各ペアが共有のランダムマスクを生成します。マスクは合計時に相殺されますが、個々の更新は隠されたままです。
- しきい値秘密分散 — 各参加者が自身の更新を秘密分散し、サーバーは集約値のみを復元します。
- 準同型暗号 — 参加者が更新を暗号化し、サーバーが暗号文を集約します。
FL における差分プライバシー
共有前にモデル更新へ調整済みのノイズを加えることで、形式的なプライバシー保証を提供します。
DP-FedAvg:
1. Each participant clips gradients: ||g_k|| ≤ C (sensitivity bounding)
2. Each participant adds Gaussian noise: g_k' = g_k + N(0, σ²·C²·I)
3. Server aggregates noised updates: g_agg = (1/K) Σ g_k'
4. Privacy accounting: track cumulative (ε, δ) via Rényi DP composition
Prism Data Systems AG の FL 導入におけるプライバシー予算:
| パラメーター | 値 | 根拠 |
|---|---|---|
| クリッピングノルム(C) | 1.0 | DP-SGD における勾配クリッピングの標準値 |
| ノイズ倍率(σ) | 1.1 | 500 ラウンドのトレーニング実行あたり(ε=3、δ=1e-5)を提供 |
| 目標イプシロン(ε) | 3.0 | 特別カテゴリーに該当しないデータに対する中程度のプライバシー |
| 目標デルタ(δ) | 1e-5 | 合計レコード数 n ≈ 316,000 に対する標準値 |
| 合成方法 | Rényi DP | 基本的な合成よりも厳密な合成境界 |
通信効率
| 手法 | 圧縮率 | 精度への影響 | 説明 |
|---|---|---|---|
| 勾配量子化 | 8-32x | 最小限 | 勾配の精度を 32 ビットから 8 ビット以下に下げます |
| Top-k スパース化 | 10-100x | 中程度 | 勾配成分のうち、値の大きい k 個だけを送信します |
| フェデレーテッドドロップアウト | 2-10x | 最小限 | 各参加者がランダムなサブモデルをトレーニングします |
| 勾配圧縮(SignSGD) | 32x | 中程度 | 各勾配成分の符号のみを送信します |
| モデル蒸留 | 可変 | 中程度 | 参加者は勾配の代わりにソフト予測を共有します |
実装ワークフロー
-
ML タスクを定義する — モデルアーキテクチャ、トレーニング目標、評価指標を指定します。
-
データ分布を評価する — 参加者間の非 IID の度合いを評価します。これにより集約戦略が決まります(IID には FedAvg、非 IID には FedProx)。
-
プライバシー保護の仕組みを選択する — 勾配の機密性にはセキュアアグリゲーションを、形式的な保証には差分プライバシーを選択します。イプシロンの予算を設定します。
-
通信を構成する — 帯域幅の制約に基づいて勾配圧縮手法を選択します。通信ラウンドの予算を設定します。
-
ローカルトレーニングを実装する — 各参加者にローカルトレーニングパイプラインをデプロイします。DP 用の勾配クリッピングとノイズ注入を実装します。
-
集約サーバーをデプロイする — セキュアアグリゲーションプロトコルを備えた中央アグリゲーターをデプロイします。信頼できない参加者がいる場合は、ビザンチン耐性のある集約を実装します。
-
監視と評価を行う — モデルの収束、参加者ごとの貢献品質、プライバシー予算の消費量、通信オーバーヘッドを追跡します。
主な規制関連資料
- GDPR 第 5 条(1)(c)— データ最小化(共有するのはモデル更新のみ)
- GDPR 第 25 条(1)— 設計によるデータ保護
- GDPR 第 26 条 — 共同管理者の取り決め(FL コンソーシアムのガバナンス)
- GDPR 第 V 章 — 国境を越える移転(FL により移転の必要性を低減)
- GDPR 第 35 条 — 特別カテゴリーのデータを扱う FL に関する DPIA
- EDPB ガイドライン 4/2019「第 25 条に基づく設計時およびデフォルトでのデータ保護」