টেনসরফ্লো ফেডারেটেড: বিকেন্দ্রীভূত ডেটাতে মেশিন লার্নিং

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.models.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['client_work']['train']['loss'])
  • TensorFlow Federated (TFF) হল একটি ওপেন-সোর্স ফ্রেমওয়ার্ক যা মেশিন লার্নিং এবং বিকেন্দ্রীভূত ডেটার অন্যান্য গণনার জন্য। TFF ফেডারেটেড লার্নিং (FL) এর সাথে উন্মুক্ত গবেষণা এবং পরীক্ষা-নিরীক্ষার সুবিধার্থে তৈরি করা হয়েছে, মেশিন লার্নিংয়ের একটি পদ্ধতি যেখানে একটি শেয়ার্ড গ্লোবাল মডেল অনেক অংশগ্রহণকারী ক্লায়েন্টদের মধ্যে প্রশিক্ষিত হয় যারা তাদের প্রশিক্ষণের ডেটা স্থানীয়ভাবে রাখে। উদাহরণস্বরূপ, সার্ভারে সংবেদনশীল টাইপিং ডেটা আপলোড না করে মোবাইল কীবোর্ডের ভবিষ্যদ্বাণী মডেল প্রশিক্ষণের জন্য FL ব্যবহার করা হয়েছে৷

    TFF বিকাশকারীদের তাদের মডেল এবং ডেটাতে অন্তর্ভুক্ত ফেডারেটেড লার্নিং অ্যালগরিদমগুলি অনুকরণ করতে, সেইসাথে নতুন অ্যালগরিদমগুলির সাথে পরীক্ষা করতে সক্ষম করে। গবেষকরা অনেক ধরণের গবেষণার জন্য শুরুর পয়েন্ট এবং সম্পূর্ণ উদাহরণ খুঁজে পাবেন। TFF দ্বারা প্রদত্ত বিল্ডিং ব্লকগুলি নন-লার্নিং কম্পিউটেশন, যেমন ফেডারেটেড অ্যানালিটিক্স প্রয়োগ করতে ব্যবহার করা যেতে পারে। TFF এর ইন্টারফেস দুটি প্রধান স্তরে সংগঠিত হয়:

  • এই স্তরটি উচ্চ-স্তরের ইন্টারফেসের একটি সেট অফার করে যা বিকাশকারীদের তাদের বিদ্যমান টেনসরফ্লো মডেলগুলিতে ফেডারেটেড প্রশিক্ষণ এবং মূল্যায়নের অন্তর্ভুক্ত বাস্তবায়ন প্রয়োগ করতে দেয়।
  • সিস্টেমের মূল অংশে একটি দৃঢ়ভাবে টাইপ করা কার্যকরী প্রোগ্রামিং পরিবেশের মধ্যে টেনসরফ্লোকে বিতরণকৃত যোগাযোগ অপারেটরগুলির সাথে একত্রিত করে অভিনব ফেডারেটেড অ্যালগরিদমগুলিকে সংক্ষিপ্তভাবে প্রকাশ করার জন্য নিম্ন-স্তরের ইন্টারফেসের একটি সেট। এই স্তরটি ভিত্তি হিসাবেও কাজ করে যার উপর আমরা ফেডারেটেড লার্নিং তৈরি করেছি।
  • TFF ডেভেলপারদের ঘোষণামূলকভাবে ফেডারেটেড গণনা প্রকাশ করতে সক্ষম করে, যাতে তারা বিভিন্ন রানটাইম পরিবেশে স্থাপন করা যেতে পারে। TFF এর সাথে অন্তর্ভুক্ত হল পরীক্ষার জন্য একটি পারফরম্যান্ট মাল্টি-মেশিন সিমুলেশন রানটাইম। অনুগ্রহ করে টিউটোরিয়াল দেখুন এবং নিজে চেষ্টা করুন!

    প্রশ্ন এবং সমর্থনের জন্য, StackOverflow-এ tensorflow-federated ট্যাগে আমাদের খুঁজুন।