このドキュメントでは、フェデレーション ラーニングのユースケースの実装について説明します。このドキュメントでは、マルチクラウド環境とハイブリッド環境の両方で行う必要のあるセキュリティと分離に関する考慮事項について説明します。ここでは、フェデレーション ラーニング システムの実装に関心がある IT 管理者、IT アーキテクト、データ サイエンティストを対象としています。
フェデレーション ラーニング
フェデレーション ラーニングとは、組織のグループまたは同じ組織内のグループが、共有するグローバル ML モデルを共同で繰り返しトレーニングし、改善できるようにする機械学習(ML)手法です。この手法では、個々のデバイスやグループ外でデータが共有されることはありません。参加する組織は、地理的なリージョンやタイムゾーン、または同じ組織内の事業単位間など、さまざまな構成の連携を形成します。
フェデレーション ラーニングでは、同質で同一の分散データ、または独立しておらず、まったく分散されていない可能性のあるデータで ML モデルをトレーニングすることに焦点を当てています。フェデレーションに参加する組織間で固有のデータは交換されません。フェデレーション ラーニングでは、プライバシー、規制、技術的制約により、組織間でデータを共有することが一般的に難しい業界やユースケースで ML を実装できます。ユースケースの一例として、同じ臨床試験に参加する世界中の病院グループが挙げられます。通常、個々の病院が患者に関して収集するデータは、その管理や病院環境を離れることはできません。そのため、病院は患者データを第三者に転送することができません。提携する病院はフェデレーション ラーニングで、各病院内の患者データの管理を維持しながら、共有 ML モデルをトレーニングできます。
フェデレーション ラーニングのユースケースを実装する
Google Cloud にフェデレーション ラーニングのユースケースを実装するには、次の最低限の前提条件を満たす必要があります。詳細については、以降のセクションをご覧ください。
- フェデレーション ラーニング コンソーシアムを確立します。
- フェデレーション ラーニング コンソーシアムのコラボレーション モデルを決定し、コンソーシアムの各参加者の責任を実装して決定します。
これらの前提条件に加えて、フェデレーションのオーナーは、以下のようなアクションを行う必要があります(このドキュメントでは扱いません)。
- フェデレーション ラーニング コンソーシアムの管理。
- コラボレーション モデルの設計と実装。
- モデルのトレーニング データと、フェデレーション オーナーがトレーニングするモデルの準備、管理、操作。
- フェデレーション ラーニング ワークフローの作成、コンテナ化、オーケストレーション。
- フェデレーション ラーニング ワークロードのデプロイと管理。
- データを安全に転送するための参加組織の通信チャネルの設定。
フェデレーション ラーニング コンソーシアムを確立する
フェデレーション ラーニング作業に参加する組織のグループは、フェデレーション ラーニング コンソーシアムを確立します。組織は ML モデルのパラメータのみを共有します。また、プライバシーを強化するために、これらのパラメータは暗号化されます。フェデレーション ラーニング コンソーシアムで許可されている場合は、組織は個人情報(PII)を含まないデータを集約することもできます。
フェデレーション ラーニング コンソーシアムのコラボレーション モデルを決定する
フェデレーション ラーニング コンソーシアムは、次のようなさまざまなコラボレーション モデルを実装できます。
- フェデレーション オーナーまたはオーケストレーターと呼ばれる 1 つの調整組織と、参加組織またはデータオーナーのセットで構成される集中モデル。
- グループとして調整される組織で構成される分散モデル。
- 多様な参加組織のコンソーシアムで構成される異種モデル(すべての組織が異なるリソースをコンソーシアムに導入する)。
このドキュメントでは、コラボレーション モデルが集中モデルであることを前提としています。
参加組織の責任を決定する
フェデレーション ラーニングのコラボレーション モデルを選択したら、フェデレーション オーナーは参加組織の責任を決める必要があります。
フェデレーション オーナーは、フェデレーション ラーニング コンソーシアムの構築時に、以下のことも行う必要があります。
- フェデレーション ラーニング作業を調整する。
- グローバル ML モデルと、参加組織と共有する ML モデルを設計して実装する。
- フェデレーション ラーニング ラウンド(ML トレーニング プロセスのイテレーションの手法)を定義する。
- 特定のフェデレーション ラーニング ラウンドに参加する参加者の組織を選択する。この選択はコホートと呼ばれます。
- 参加者組織のコンソーシアムのメンバーシップ確認手順を設計して実装する。
- グローバル ML モデルと ML モデルを更新して、参加組織と共有する。
- フェデレーション ラーニング コンソーシアムがプライバシー、セキュリティ、規制の要件を満たしていることを確認するツールを参加組織に提供する。
- 安全で暗号化された通信チャネルを参加組織に提供する。
- 各フェデレーション ラーニング ラウンドを完了するために必要となる、機密情報でない集計データを参加組織に提供する。
参加組織に次の責任を担う必要があります。
- 安全な隔離環境(サイロ)を用意し、維持する。サイロは、参加組織が独自のデータを保存し、ML モデルのトレーニングを実装する場所です。
- 独自のコンピューティング インフラストラクチャと独自のローカルデータを使用して、フェデレーション オーナーから提供されるモデルをトレーニングする。
- PII を削除した後、モデルのトレーニング結果を集計データの形式でフェデレーション オーナーと共有する。
フェデレーション オーナーと参加組織は、要件を満たすまで ML モデル トレーニングを改良します。
Google Cloud にフェデレーション ラーニングを実装する
フェデレーション ラーニング コンソーシアムを確立し、コラボレーションの方法を決定したら、参加組織で以下を行うことをおすすめします。
- フェデレーション ラーニング コンソーシアムに必要なインフラストラクチャをプロビジョニングして構成する
- コラボレーション モデルを実装する。
- フェデレーション ラーニング作業を開始する。
フェデレーション ラーニング コンソーシアムのインフラストラクチャをプロビジョニングして構成する
フェデレーション ラーニング コンソーシアムのインフラストラクチャをプロビジョニングして構成する場合、フェデレーション ML モデルをトレーニングするワークロードを作成して参加組織に配信するのは、フェデレーション オーナーの責任です。サードパーティ(フェデレーション オーナー)がワークロードを作成して提供しているため、参加組織は、それらのワークロードをランタイム環境にデプロイする際に注意が必要です。
参加組織は、個々のセキュリティのベスト プラクティスに従って環境を構成し、各ワークロードに付与されるスコープと権限を制限するコントロールを適用する必要があります。個々のセキュリティのベスト プラクティスに従うことに加えて、フェデレーション オーナーと参加組織は、フェデレーション ラーニングに固有の脅威ベクターを検討することをおすすめします。
Google Cloud 上のフェデレーション ラーニング ワークロード間のアクセスと分離を制御できる安全なランタイム環境を実装するために、参加しているすべての組織が Google Kubernetes Engine(GKE)を使用することをおすすめします。
フェデレーション ラーニングに必要なすべての機能とセキュリティ制御を提供するように GKE クラスタをプロビジョニングおよび構成する方法については、サードパーティによって配布されるアプリ用の GKE クラスタの準備をご覧ください。このアプローチでは、マルチテナント アーキテクチャを使用し、フェデレーション モデルをトレーニングするワークロードは GKE クラスタ内のテナントとして扱われます。テナントは専用の Kubernetes Namespace にグループ化され、Namespace は専用の GKE クラスタノードで相互に分離されます。このアプローチでは、テナント ワークロードをホストするノードと Namespace にセキュリティ制御とポリシーを適用できます。
コラボレーション モデルを実装する
フェデレーション ラーニング コンソーシアム インフラストラクチャを準備した後、フェデレーション オーナーは、参加組織が相互にやり取りできるメカニズムを設計して実装します。この手法は、フェデレーション オーナーがフェデレーション ラーニング コンソーシアムに選択したコラボレーション モデルに沿っています。
さまざまなコラボレーション モデルの設計と実装については、このドキュメントでは扱いません。
フェデレーション ラーニング作業を開始する
コラボレーション モデルの実装後、フェデレーション オーナーはトレーニングするグローバル ML モデルと、参加者の組織と共有する ML モデルを実装します。これらの ML モデルの準備ができたら、フェデレーション オーナーはフェデレーション ラーニング作業の最初のラウンドを開始します。フェデレーション ラーニングの各ラウンド中に、フェデレーション オーナーは次のことを行います。
- 個人情報(PII)が漏れるのを防ぐため、トレーニング データを前処理して参加組織と共有する。
- 参加組織と共有する ML モデルを、必要なトレーニング データとともに配布する。
- 参加組織が、フェデレーション オーナーによって共有されている ML モデルのトレーニングの結果を提供するのを待機する。
- 参加組織が生成したトレーニング結果を収集して処理する。
- 参加組織から適切なトレーニング結果を受け取ったときに、グローバル ML モデルを更新する。
- 必要に応じて、ML モデルを更新してコンソーシアムの他のメンバーと共有する。
- フェデレーション ラーニングの次のラウンド用にトレーニング データを準備する。
- フェデレーション ラーニングの次のラウンドを開始する。
セキュリティ上の考慮事項
厳格なデータ共有モデルにもかかわらず、フェデレーション ラーニングは、すべての標的型攻撃に対して本質的に安全ではありません。また、ML モデルやモデル トレーニング データに関する意図しない情報の漏洩のリスクもあります。たとえば、攻撃者は、グローバルな ML モデルやフェデレーション ラーニングの取り組みのラウンドを意図的に侵害したり、タイミング攻撃(一種のサイドチャネル攻撃)を使用して、トレーニング データセットのサイズに関する情報を収集する可能性があります。
フェデレーション ラーニングの実装に対する最も一般的な脅威は次のとおりです。
- 意図的または非意図的なトレーニング データの記録。フェデレーション ラーニングの実装または攻撃者が、意図的または意図せずにデータを操作しにくい方法で保存している場合があります。攻撃者が、保存されたデータをリバース エンジニアリングして、グローバル ML モデルやフェデレーション ラーニングの過去のラウンドに関する情報を収集できる場合があります。
- グローバル ML モデルの更新からの情報の抽出。フェデレーション ラーニング作業のラウンドの最中に、フェデレーション オーナーが参加組織から収集したグローバル ML モデルの更新を、攻撃者がリバース エンジニアリングする場合があります。
- フェデレーション オーナーがラウンドを損なう可能性がある。侵害を受けたフェデレーション オーナーが不正なサイロを制御し、フェデレーション ラーニング作業のラウンドを開始する場合があります。ラウンドの最後に、侵害を受けたフェデレーション オーナーは、不正なサイロが生成した更新と比較することで、正規の参加組織から収集した更新に関する情報を集められます。
- 参加組織がグローバル ML モデルを損なう可能性がある。組織は、フェデレーション ラーニング作業のラウンドの最中に、不正な更新や非論理的な更新を生成して、グローバル ML モデルのパフォーマンス、品質、整合性に悪影響を及ぼす場合があります。
このセクションで説明する脅威の影響を軽減するために、コンソーシアムのすべての関係者が以下を行うことをおすすめします。
- トレーニング データの記録を調整して、最小限に抑える。
- プライバシー保護メカニズムを実装する。
- グローバル ML モデル、共有する ML モデル、トレーニング データ、フェデレーション ラーニングを実現するために実装したインフラストラクチャを定期的に監査する。
- Secure Aggregation アルゴリズムを実装して、参加組織が生成するトレーニング結果を処理する。
- 公開鍵基盤を使用して、データ暗号鍵を安全に生成および配布する。
- 信頼できるコンピューティング プラットフォームにインフラストラクチャをデプロイする。
フェデレーション オーナーは、次の追加手順も行う必要があります。
- 各参加組織の ID と各サイロの整合性を確認する。
- 参加組織が生成できるグローバル ML モデルの更新スコープを制限する。
次のステップ
- サードパーティによって配布されるアプリ用の GKE クラスタを準備する方法を確認する。
- TensorFlow Federated プラットフォームにフェデレーション ラーニング アルゴリズムを実装する方法を確認する。
- フェデレーション ラーニングの進歩と未解決の問題を確認する。
- Google AI ブログでフェデレーション ラーニングについて確認する。
- プライバシー保護の方法で ML モデルを改善するために、Google が匿名化された集計情報を使用してフェデレーション ラーニングを使用する方法を確認する。
- データ保護ツールキットを使用して HIPAA の調整されたワークロードを設定する。
- Google Cloud に関するリファレンス アーキテクチャ、図、ベスト プラクティスを確認する。Cloud アーキテクチャ センター をご覧ください。