12 月 7 日の Women in ML シンポジウムに参加する今すぐ登録する
コレクションでコンテンツを整理 必要に応じて、コンテンツの保存と分類を行います。

TensorFlow Federated:分散データでの機械学習

import tensorflow as tf
import tensorflow_federated as tff

# Load simulation data.
source, _ = tff.simulation.datasets.emnist.load_data()
def client_data(n):
  return source.create_tf_dataset_for_client(source.client_ids[n]).map(
      lambda e: (tf.reshape(e['pixels'], [-1]), e['label'])
  ).repeat(10).batch(20)

# Pick a subset of client devices to participate in training.
train_data = [client_data(n) for n in range(3)]

# Wrap a Keras model for use with TFF.
def model_fn():
  model = tf.keras.models.Sequential([
      tf.keras.layers.Dense(10, tf.nn.softmax, input_shape=(784,),
                            kernel_initializer='zeros')
  ])
  return tff.learning.from_keras_model(
      model,
      input_spec=train_data[0].element_spec,
      loss=tf.keras.losses.SparseCategoricalCrossentropy(),
      metrics=[tf.keras.metrics.SparseCategoricalAccuracy()])

# Simulate a few rounds of training with the selected client devices.
trainer = tff.learning.algorithms.build_weighted_fed_avg(
  model_fn,
  client_optimizer_fn=lambda: tf.keras.optimizers.SGD(0.1))
state = trainer.initialize()
for _ in range(5):
  result = trainer.next(state, train_data)
  state = result.state
  metrics = result.metrics
  print(metrics['train']['loss'])
  • TensorFlow Federated(TFF)は、分散データでの機械学習やその他の計算のためのオープンソースフレームワークです。 TFFは、トレーニングデータをローカルに保持する多くの参加クライアント間で共有グローバルモデルがトレーニングされる機械学習へのアプローチである連合学習(FL)を使用したオープンな調査と実験を容易にするために開発されました。たとえば、FLは、機密性の高いタイピングデータをサーバーにアップロードせずに、モバイルキーボードの予測モデルをトレーニングするために使用されてきました。

    TFFを使用すると、開発者は、モデルとデータに含まれている連合学習アルゴリズムをシミュレートしたり、新しいアルゴリズムを実験したりできます。研究者は、多くの種類の研究の出発点と完全な例を見つけるでしょう。 TFFが提供するビルディングブロックは、フェデレーション分析などの非学習計算を実装するためにも使用できます。 TFFのインターフェースは、次の2つの主要なレイヤーで構成されています。

  • このレイヤーは、開発者がフェデレーショントレーニングと評価の含まれている実装を既存のTensorFlowモデルに適用できるようにする一連の高レベルのインターフェースを提供します。
  • システムの中核となるのは、強力に型指定された関数型プログラミング環境内でTensorFlowと分散通信オペレーターを組み合わせることにより、新しいフェデレーションアルゴリズムを簡潔に表現するための一連の低レベルインターフェイスです。このレイヤーは、連合学習を構築するための基盤としても機能します。
  • TFFを使用すると、開発者はフェデレーション計算を宣言的に表現できるため、さまざまなランタイム環境にデプロイできます。 TFFには、実験用の高性能なマルチマシンシミュレーションランタイムが含まれています。チュートリアルにアクセスして、自分で試してみてください。

    質問とサポートについては、StackOverflowのtensorflow-federatedタグをご覧ください。