連合学習研究のためのTFFの使用

概要

TFFは、現実的なプロキシデータセットで連合計算をシミュレートすることにより、連合学習(FL)研究を実施するための拡張可能で強力なフレームワークです。このページでは、研究シミュレーションに関連する主要な概念とコンポーネント、およびTFFでさまざまな種類の研究を実施するための詳細なガイダンスについて説明します。

TFFの研究コードの典型的な構造

TFFで実装されるリサーチFLシミュレーションは、通常、3つの主要なタイプのロジックで構成されます。

  1. 単一の場所(クライアントやサーバーなど)で実行されるロジックをカプセル化するTensorFlowコードの個々の部分(通常はtf.function )。このコードは通常、 tff.*参照なしで記述およびテストされ、TFFの外部で再利用できます。たとえば、FederatedAveragingのクライアントトレーニングループはこのレベルで実装されます。

  2. TensorFlowフェデレーションオーケストレーションロジック。1からの個々のtf.functionをtff.tf_computationとしてラップし、 tff.tf_computationtff.federated_broadcastなどの抽象化を使用してtff.federated_mean内でtff.federated_computationレーションします。たとえば、 FederatedAveragingのこのオーケストレーションを参照してください。

  3. 本番FLシステムの制御ロジックをシミュレートし、データセットからシミュレートされたクライアントを選択し、それらのクライアントで2.で定義されたフェデレーション計算を実行する外部ドライバースクリプト。たとえば、FederatedEMNIST実験ドライバー

連合学習データセット

TensorFlowフェデレーションは、フェデレーション学習で解決できる現実の問題の特性を表す複数のデータセットをホストします

データセットは次のとおりです。

  • StackOverflow言語モデリングまたは教師あり学習タスク用の現実的なテキストデータセット。トレーニングセットには135,818,730の例(文)を持つ342,477のユニークユーザーがいます。

  • フェデレーションEMNIST EMNIST文字および数字データセットの統合された前処理。各クライアントは異なるライターに対応します。フルトレインセットには、62のラベルからの671,585の例を持つ3400のユーザーが含まれています。

  • シェイクスピアウィリアムシェイクスピアの全集に基づく、より小さな文字レベルのテキストデータセット。データセットは715人のユーザー(シェイクスピア劇のキャラクター)で構成されており、各例は、特定の劇でキャラクターが話す連続した線のセットに対応しています。

  • CIFAR-100 500のトレーニングクライアントと100のテストクライアントにわたるCIFAR-100データセットのフェデレーションパーティション。各クライアントには10​​0の固有の例があります。パーティショニングは、クライアント間でより現実的な異質性を作成する方法で行われます。詳細については、 APIを参照してください。

  • Google Landmark v2データセットデータセットは、さまざまな世界のランドマークの写真で構成され、画像は写真家によってグループ化され、データの統合されたパーティション化を実現します。データセットには2つのフレーバーがあります。233クライアントと23080イメージの小さいデータセットと、1262クライアントと164172イメージの大きいデータセットです。

  • CelebA有名人の顔の例(画像と顔の属性)のデータセット。フェデレーションデータセットには、各有名人の例がグループ化されてクライアントを形成しています。 9343のクライアントがあり、それぞれに少なくとも5つの例があります。データセットは、クライアントまたは例のいずれかによって、トレーニンググループとテストグループに分割できます。

  • iNaturalistデータセットは、さまざまな種の写真で構成されています。データセットには、1,203種の120,300枚の画像が含まれています。データセットには7つのフレーバーがあります。それらの1つは写真家によってグループ化され、9257のクライアントで構成されています。残りのデータセットは、写真が撮影された地理的位置によってグループ化されています。データセットのこれらの6つのフレーバーは、11〜3,606のクライアントで構成されています。

高性能シミュレーション

FLシミュレーションの実時間はアルゴリズムの評価に関連するメトリックではありませんが(シミュレーションハードウェアは実際のFL展開環境を表していないため)、FLシミュレーションを迅速に実行できることは研究の生産性にとって重要です。したがって、TFFは、高性能のシングルおよびマルチマシンランタイムの提供に多額の投資を行ってきました。ドキュメントは現在作成中ですが、現時点では、 Kubernetesを使用した高性能シミュレーションのチュートリアル、アクセラレータを使用したTFFシミュレーションの手順、GCPでのTFFを使用したシミュレーションの設定の手順をご覧ください。高性能TFFランタイムはデフォルトで有効になっています。

さまざまな研究分野のTFF

フェデレーション最適化アルゴリズム

フェデレーション最適化アルゴリズムの研究は、カスタマイズの望ましいレベルに応じて、TFFでさまざまな方法で行うことができます。

ここでは、 FederatedAveragingアルゴリズムの最小限のスタンドアロン実装を提供します。このコードには、ローカル計算用のTF関数、オーケストレーション用のTFF計算、および例としてEMNISTデータセットのドライバースクリプトが含まれています。これらのファイルは、 READMEの詳細な手順に従って、カスタマイズされたアプリケーションやアルゴリズムの変更に簡単に適合させることができます。

Federated Averagingのより一般的な実装は、ここにあります。この実装により、サーバーとクライアントの両方で異なるオプティマイザーを使用するなど、より高度な最適化手法が可能になります。連合k-meansクラスタリングを含む他の連合学習アルゴリズムは、ここにあります

モデル更新の圧縮

モデル更新の非可逆圧縮は、通信コストの削減につながる可能性があり、その結果、全体的なトレーニング時間の短縮につながる可能性があります。

最近の論文を再現するには、この研究プロジェクトを参照してください。カスタム圧縮アルゴリズムを実装するには、例としてベースラインのプロジェクトのcomparation_methodsを参照してください。まだ慣れていない場合は、 TFFAggregatorsチュートリアルを参照してください。

差分プライバシー

TFFはTensorFlowプライバシーライブラリと相互運用可能であり、差分プライバシーを備えたモデルのフェデレーショントレーニングのための新しいアルゴリズムの研究を可能にします。基本的なDP-FedAvgアルゴリズム拡張機能を使用したDPでのトレーニングの例については、この実験ドライバーを参照してください。

カスタムDPアルゴリズムを実装し、それをフェデレーション平均の集計更新に適用する場合は、新しいDP平均アルゴリズムをtensorflow_privacy.DPQueryのサブクラスとしてtff.aggregators.DifferentiallyPrivateFactory tensorflow_privacy.DPQuery作成できます。 DP-FTRLアルゴリズムの実装例はここにあります

フェデレーションGAN(以下で説明)は、ユーザーレベルの差分プライバシーを実装するTFFプロジェクトの別の例です(たとえば、ここではコードで)。

堅牢性と攻撃

TFFを使用して、連合学習システムに対する標的型攻撃と、 「本当にバックドア連合学習ですか?」で検討されている差分プライバシーベースの防御をシミュレートすることもできます。 。これは、潜在的に悪意のあるクライアントを使用して反復プロセスを構築することによって行われます( build_federated_averaging_process_attackedを参照)。 targeted_attackディレクトリには詳細が含まれています。

  • 新しい攻撃アルゴリズムは、Tensorflow関数であるクライアント更新関数を作成することで実装できます。例についてはClientProjectBoostを参照してください。
  • 新しい防御は、クライアント出力を集約してグローバル更新を取得する「tff.utils.StatefulAggregateFn」をカスタマイズすることで実装できます。

シミュレーションのスクリプト例については、 emnist_with_targeted_attack.pyを参照してください。

生成的敵対的ネットワーク

GANは、標準のフェデレーション平均化とは少し異なって見える興味深いフェデレーションオーケストレーションパターンを作成します。これらには、それぞれ独自の最適化ステップでトレーニングされた2つの異なるネットワーク(ジェネレーターとディスクリミネーター)が含まれます。

TFFは、GANの連合トレーニングの研究に使用できます。たとえば、最近の研究で提示されたDP-FedAvg-GANアルゴリズムは、TFFに実装されています。この作業は、連合学習、生成モデル、および差分プライバシーを組み合わせる効果を示しています。

パーソナライズ

連合学習の設定におけるパーソナライズは、活発な研究分野です。パーソナライズの目標は、さまざまなユーザーにさまざまな推論モデルを提供することです。この問題には、潜在的に異なるアプローチがあります。

1つのアプローチは、各クライアントがローカルデータを使用して単一のグローバルモデル(連合学習を使用してトレーニングされた)を微調整できるようにすることです。このアプローチは、メタ学習と関係があります。たとえば、このペーパーを参照してください。このアプローチの例は、 emnist_p13n_main.pyにあります。さまざまなパーソナライズ戦略を調査および比較するには、次のことができます。

  • 初期モデルから開始し、各クライアントのローカルデータセットを使用してパーソナライズされたモデルをトレーニングおよび評価するtf.functionを実装することにより、パーソナライズ戦略を定義します。例はbuild_personalize_fnによって与えられます。

  • 戦略名を対応するパーソナライズ戦略にマップするOrderedDictを定義し、それをtff.learning.build_personalization_evalpersonalize_fn_dict引数として使用します。

もう1つのアプローチは、モデルの一部を完全にローカルでトレーニングすることにより、完全にグローバルなモデルのトレーニングを回避することです。このアプローチのインスタンス化については、このブログ投稿で説明されています。このアプローチはメタ学習にも関連しています。このペーパーを参照してください。部分的にローカルな連合学習を探索するには、次のことができます。