TensorFlow Federated: למידת מכונה על נתונים מבוזרים
import collections 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. keras_model = tf.keras.models.Sequential([ tf.keras.layers.Dense( 10, tf.nn.softmax, input_shape=(784,), kernel_initializer='zeros') ]) tff_model = tff.learning.models.functional_model_from_keras( keras_model, loss_fn=tf.keras.losses.SparseCategoricalCrossentropy(), input_spec=train_data[0].element_spec, metrics_constructor=collections.OrderedDict( accuracy=tf.keras.metrics.SparseCategoricalAccuracy)) # Simulate a few rounds of training with the selected client devices. trainer = tff.learning.algorithms.build_weighted_fed_avg( tff_model, client_optimizer_fn=tff.learning.optimizers.build_sgdm(learning_rate=0.1)) state = trainer.initialize() for _ in range(5): result = trainer.next(state, train_data) state = result.state metrics = result.metrics print(metrics['client_work']['train']['accuracy'])
-
TensorFlow Federated (TFF) היא מסגרת קוד פתוח ללמידת מכונה וחישובים אחרים על נתונים מבוזרים. TFF פותח כדי לאפשר מחקר פתוח וניסוי עם Federated Learning (FL) , גישה ללמידת מכונה שבה מאומן מודל גלובלי משותף על פני לקוחות משתתפים רבים השומרים על נתוני ההדרכה שלהם באופן מקומי. לדוגמה, נעשה שימוש ב-FL כדי להכשיר מודלים של חיזוי עבור מקלדות ניידות מבלי להעלות נתוני הקלדה רגישים לשרתים.
TFF מאפשר למפתחים לדמות את אלגוריתמי הלמידה המאוחדים הכלולים על המודלים והנתונים שלהם, כמו גם להתנסות באלגוריתמים חדשים. החוקרים ימצאו נקודות התחלה ודוגמאות מלאות לסוגים רבים של מחקרים. ניתן להשתמש באבני הבניין שסופק על ידי TFF גם ליישום חישובים שאינם לומדים, כגון ניתוח מאוחד . הממשקים של TFF מאורגנים בשתי שכבות עיקריות:
-
API של Federated Learning (FL).
שכבה זו מציעה קבוצה של ממשקים ברמה גבוהה המאפשרים למפתחים ליישם את ההטמעות הכלולים של אימון והערכה מאוחדים על המודלים הקיימים של TensorFlow. -
API של Federated Core (FC).
בליבת המערכת נמצאת קבוצה של ממשקים ברמה נמוכה יותר לביטוי תמציתי של אלגוריתמים מאוחדים חדשים על ידי שילוב של TensorFlow עם מפעילי תקשורת מבוזרת בתוך סביבת תכנות פונקציונלית עם הקלדה חזקה. שכבה זו משמשת גם כבסיס שעליו בנינו למידה פדרית. -
TFF מאפשר למפתחים לבטא באופן הצהרתי חישובים מאוחדים, כך שניתן יהיה לפרוס אותם בסביבות זמן ריצה מגוונות. כלול ב-TFF זמן ריצה של סימולציית ריבוי מכונות ביצועית עבור ניסויים. אנא בקר במדריכים ונסה זאת בעצמך!
לשאלות ותמיכה, מצא אותנו בתג המאוחד של tensorflow ב-StackOverflow.