टेन्सरफ़्लो फ़ेडरेटेड: विकेंद्रीकृत डेटा पर मशीन लर्निंग

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 फ़ेडरेटेड (TFF) मशीन लर्निंग और विकेंद्रीकृत डेटा पर अन्य गणनाओं के लिए एक ओपन-सोर्स फ्रेमवर्क है। TFF को फेडरेटेड लर्निंग (FL) के साथ खुले अनुसंधान और प्रयोग की सुविधा के लिए विकसित किया गया है, मशीन सीखने के लिए एक दृष्टिकोण जहां एक साझा वैश्विक मॉडल को कई भाग लेने वाले ग्राहकों में प्रशिक्षित किया जाता है जो अपने प्रशिक्षण डेटा को स्थानीय रूप से रखते हैं। उदाहरण के लिए, सर्वर पर संवेदनशील टाइपिंग डेटा अपलोड किए बिना मोबाइल कीबोर्ड के लिए पूर्वानुमान मॉडल को प्रशिक्षित करने के लिए FL का उपयोग किया गया है।

    TFF डेवलपर्स को अपने मॉडल और डेटा पर शामिल फ़ेडरेटेड लर्निंग एल्गोरिदम का अनुकरण करने के साथ-साथ उपन्यास एल्गोरिदम के साथ प्रयोग करने में सक्षम बनाता है। कई प्रकार के शोध के लिए शोधकर्ता शुरुआती बिंदु और पूर्ण उदाहरण पाएंगे। TFF द्वारा प्रदान किए गए बिल्डिंग ब्लॉक्स का उपयोग गैर-शिक्षण संगणनाओं को लागू करने के लिए भी किया जा सकता है, जैसे कि फ़ेडरेटेड एनालिटिक्स । TFF के इंटरफेस दो मुख्य परतों में व्यवस्थित हैं:

  • यह परत उच्च-स्तरीय इंटरफेस का एक सेट प्रदान करती है जो डेवलपर्स को अपने मौजूदा टेन्सरफ्लो मॉडल में फ़ेडरेटेड प्रशिक्षण और मूल्यांकन के सम्मिलित कार्यान्वयन को लागू करने की अनुमति देती है।
  • सिस्टम के मूल में दृढ़ता से टाइप किए गए कार्यात्मक प्रोग्रामिंग वातावरण के भीतर वितरित संचार ऑपरेटरों के साथ TensorFlow को जोड़कर उपन्यास फ़ेडरेटेड एल्गोरिदम को संक्षिप्त रूप से व्यक्त करने के लिए निचले स्तर के इंटरफेस का एक सेट है। यह परत उस नींव के रूप में भी काम करती है जिस पर हमने फ़ेडरेटेड लर्निंग का निर्माण किया है।
  • टीएफएफ डेवलपर्स को संघीय गणनाओं को घोषित रूप से व्यक्त करने में सक्षम बनाता है, ताकि उन्हें विविध रनटाइम वातावरण में तैनात किया जा सके। TFF के साथ प्रयोगों के लिए एक प्रदर्शनकारी बहु-मशीन सिमुलेशन रनटाइम शामिल है। कृपया ट्यूटोरियल पर जाएँ और इसे स्वयं आज़माएँ!

    प्रश्नों और समर्थन के लिए, हमें StackOverflow पर टेंसरफ़्लो-फ़ेडरेटेड टैग पर खोजें।