הצטרף ל-TensorFlow ב-Google I/O, 11-12 במאי הירשם עכשיו

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.build_federated_averaging_process(
  model_fn,
  client_optimizer_fn=lambda: tf.keras.optimizers.SGD(0.1))
state = trainer.initialize()
for _ in range(5):
  state, metrics = trainer.next(state, train_data)
  print(metrics['train']['loss'])
  • TensorFlow Federated (TFF) היא מסגרת קוד פתוח ללמידת מכונה וחישובים אחרים על נתונים מבוזרים. TFF פותח כדי להקל על מחקר והתנסות פתוח עם למידת Federated (FL) , גישה למערכות לומדים שם מודל הגלובלי משותף מאומן פני לקוחות רבים שהשתתפו ששומרים נתונים הכשרתם מקומיים. לדוגמא, FL שמש הרכבת מודלים לחיזוי עבור מקלדות ניידות מבלי להעלות נתוני הקלדה רגישים לשרתים.

    TFF מאפשר למפתחים לדמות את אלגוריתמי הלמידה המאוחדים הכלולים על המודלים והנתונים שלהם, כמו גם להתנסות באלגוריתמים חדשים. חוקרים ימצאו נקודה התחלת דוגמא מלאות עבור סוגים רבים של מחקר. אבני הבניין שמספקת TFF יכול לשמש גם כדי ליישם חישובים שאינם למידה, כגון ניתוחי Federated . הממשקים של TFF מאורגנים בשתי שכבות עיקריות:

  • שכבה זו מציעה סט של ממשקים ברמה גבוהה המאפשרים למפתחים ליישם את ההטמעות הכלולים של הדרכה והערכה מאוחדים על המודלים הקיימים של TensorFlow.
  • בליבת המערכת קבוצה של ממשקים ברמה נמוכה יותר לביטוי תמציתי של אלגוריתמים מאוחדים חדשים על ידי שילוב של TensorFlow עם מפעילי תקשורת מבוזרת בתוך סביבת תכנות פונקציונלית עם הקלדה חזקה. שכבה זו משמשת גם כבסיס שעליו בנינו פדרציית למידה.
  • TFF מאפשר למפתחים לבטא באופן הצהרתי חישובים מאוחדים, כך שניתן יהיה לפרוס אותם בסביבות זמן ריצה מגוונות. כלול ב-TFF זמן ריצה של סימולציית ריבוי מכונות ביצועית עבור ניסויים. בקר הדרכות ולנסות את זה בעצמך!

    שאלות ותמיכה, למצוא אותנו תג Federated-tensorflow על StackOverflow.