Assistez au symposium Women in ML le 7 décembre Inscrivez-vous maintenant
Restez organisé à l'aide des collections Enregistrez et classez les contenus selon vos préférences.

TensorFlow Federated : Machine Learning sur des données décentralisées

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) est un framework open source pour l'apprentissage automatique et d'autres calculs sur des données décentralisées. TFF a été développé pour faciliter la recherche ouverte et l'expérimentation avec l'apprentissage fédéré (FL) , une approche de l'apprentissage automatique où un modèle global partagé est formé entre de nombreux clients participants qui conservent leurs données de formation localement. Par exemple, FL a été utilisé pour former des modèles de prédiction pour les claviers mobiles sans télécharger de données de frappe sensibles sur les serveurs.

    TFF permet aux développeurs de simuler les algorithmes d'apprentissage fédéré inclus sur leurs modèles et leurs données, ainsi que d'expérimenter de nouveaux algorithmes. Les chercheurs trouveront des points de départ et des exemples complets pour de nombreux types de recherche. Les blocs de construction fournis par TFF peuvent également être utilisés pour mettre en œuvre des calculs sans apprentissage, tels que l'analyse fédérée . Les interfaces de TFF sont organisées en deux couches principales :

  • Cette couche offre un ensemble d'interfaces de haut niveau qui permettent aux développeurs d'appliquer les implémentations incluses de formation et d'évaluation fédérées à leurs modèles TensorFlow existants.
  • Au cœur du système se trouve un ensemble d'interfaces de niveau inférieur pour exprimer de manière concise de nouveaux algorithmes fédérés en combinant TensorFlow avec des opérateurs de communication distribués dans un environnement de programmation fonctionnelle fortement typé. Cette couche sert également de base sur laquelle nous avons construit l'apprentissage fédéré.
  • TFF permet aux développeurs d'exprimer de manière déclarative des calculs fédérés, afin qu'ils puissent être déployés dans divers environnements d'exécution. Inclus avec TFF est un environnement d'exécution de simulation multi-machine performant pour les expériences. S'il vous plaît visitez les tutoriels et essayez-le vous-même!

    Pour toute question et assistance, retrouvez-nous sur la balise fédérée tensorflow sur StackOverflow.