ফেডারেটেড লার্নিং রিসার্চের জন্য TFF ব্যবহার করা

সংক্ষিপ্ত বিবরণ

TFF হল বাস্তবসম্মত প্রক্সি ডেটাসেটের উপর ফেডারেটেড গণনা অনুকরণ করে ফেডারেটেড লার্নিং (FL) গবেষণা পরিচালনার জন্য একটি এক্সটেনসিবল, শক্তিশালী কাঠামো। এই পৃষ্ঠাটি গবেষণা সিমুলেশনের জন্য প্রাসঙ্গিক মূল ধারণা এবং উপাদানগুলি বর্ণনা করে, পাশাপাশি TFF-তে বিভিন্ন ধরণের গবেষণা পরিচালনার জন্য বিস্তারিত নির্দেশিকাও বর্ণনা করে।

The typical structure of research code in TFF

TFF-তে বাস্তবায়িত একটি গবেষণা FL সিমুলেশন সাধারণত তিন ধরণের যুক্তি নিয়ে গঠিত।

  1. TensorFlow কোডের পৃথক অংশ, সাধারণত tf.function s, যা একটি একক স্থানে (যেমন, ক্লায়েন্ট বা সার্ভারে) চলমান লজিককে ধারণ করে। এই কোডটি সাধারণত কোনও tff.* রেফারেন্স ছাড়াই লেখা এবং পরীক্ষা করা হয় এবং TFF-এর বাইরে পুনরায় ব্যবহার করা যেতে পারে। উদাহরণস্বরূপ, ফেডারেটেড অ্যাভারেজিং-এ ক্লায়েন্ট প্রশিক্ষণ লুপ এই স্তরে বাস্তবায়িত হয়।

  2. TensorFlow ফেডারেটেড অর্কেস্ট্রেশন লজিক, যা 1. থেকে পৃথক tf.function s কে tff.tensorflow.computation s হিসাবে মোড়ানোর মাধ্যমে একত্রিত করে এবং তারপর federated_language.federated_broadcast এবং federated_language.federated_mean এর মতো বিমূর্তকরণ ব্যবহার করে একটি federated_language.federated_computation ভিতরে অর্কেস্ট্রেশন করে। উদাহরণস্বরূপ, Federated Averaging এর জন্য এই অর্কেস্ট্রেশনটি দেখুন।

  3. একটি বহিরাগত ড্রাইভার স্ক্রিপ্ট যা একটি প্রোডাকশন FL সিস্টেমের নিয়ন্ত্রণ যুক্তি অনুকরণ করে, একটি ডেটাসেট থেকে সিমুলেটেড ক্লায়েন্ট নির্বাচন করে এবং তারপর সেই ক্লায়েন্টগুলিতে 2. এ সংজ্ঞায়িত ফেডারেটেড গণনা সম্পাদন করে। উদাহরণস্বরূপ, একটি ফেডারেটেড EMNIST পরীক্ষা ড্রাইভার

Federated learning datasets

টেনসরফ্লো ফেডারেটেড একাধিক ডেটাসেট হোস্ট করে যা বাস্তব-বিশ্বের সমস্যার বৈশিষ্ট্যের প্রতিনিধিত্ব করে যা ফেডারেটেড লার্নিং দিয়ে সমাধান করা যেতে পারে।

Datasets include:

  • স্ট্যাকওভারফ্লো ভাষা মডেলিং বা তত্ত্বাবধানে থাকা শেখার কাজের জন্য একটি বাস্তবসম্মত টেক্সট ডেটাসেট, প্রশিক্ষণ সেটে 135,818,730টি উদাহরণ (বাক্য) সহ 342,477 জন অনন্য ব্যবহারকারী রয়েছে।

  • ফেডারেটেড EMNIST EMNIST অক্ষর এবং অঙ্ক ডেটাসেটের একটি ফেডারেটেড প্রাক-প্রক্রিয়াকরণ, যেখানে প্রতিটি ক্লায়েন্ট একটি ভিন্ন লেখকের সাথে সম্পর্কিত। সম্পূর্ণ ট্রেন সেটে 3400 জন ব্যবহারকারী রয়েছে এবং 62টি লেবেল থেকে 671,585টি উদাহরণ রয়েছে।

  • শেক্সপিয়ার উইলিয়াম শেক্সপিয়ারের সম্পূর্ণ কাজের উপর ভিত্তি করে একটি ছোট অক্ষর-স্তরের টেক্সট ডেটাসেট। ডেটা সেটটিতে 715 জন ব্যবহারকারী (শেক্সপিয়ারের নাটকের চরিত্র) রয়েছে, যেখানে প্রতিটি উদাহরণ একটি নির্দিষ্ট নাটকের চরিত্র দ্বারা উচ্চারিত লাইনের একটি সংলগ্ন সেটের সাথে মিলে যায়।

  • CIFAR-100 ৫০০ প্রশিক্ষণ ক্লায়েন্ট এবং ১০০ পরীক্ষা ক্লায়েন্টের জন্য CIFAR-100 ডেটাসেটের একটি ফেডারেটেড পার্টিশন। প্রতিটি ক্লায়েন্টের ১০০টি অনন্য উদাহরণ রয়েছে। ক্লায়েন্টদের মধ্যে আরও বাস্তবসম্মত বৈচিত্র্য তৈরি করার জন্য পার্টিশনটি করা হয়েছে। আরও বিস্তারিত জানার জন্য, API দেখুন।

  • গুগল ল্যান্ডমার্ক v2 ডেটাসেট ডেটাসেটে বিভিন্ন বিশ্বের ল্যান্ডমার্কের ছবি থাকে, যেখানে ফটোগ্রাফারদের দ্বারা তথ্যের একটি ফেডারেটেড পার্টিশন অর্জনের জন্য ছবিগুলিকে গোষ্ঠীভুক্ত করা হয়। ডেটাসেটের দুটি ধরণের উপলব্ধ: 233 ক্লায়েন্ট এবং 23080 চিত্র সহ একটি ছোট ডেটাসেট, এবং 1262 ক্লায়েন্ট এবং 164172 চিত্র সহ একটি বৃহত্তর ডেটাসেট।

  • CelebA সেলিব্রিটি মুখের উদাহরণের (ছবি এবং মুখের বৈশিষ্ট্য) একটি ডেটাসেট। ফেডারেটেড ডেটাসেটে প্রতিটি সেলিব্রিটির উদাহরণগুলিকে একত্রিত করে একটি ক্লায়েন্ট তৈরি করা হয়। 9343 জন ক্লায়েন্ট রয়েছে, প্রতিটিতে কমপক্ষে 5টি উদাহরণ রয়েছে। ডেটাসেটটি ক্লায়েন্ট দ্বারা বা উদাহরণ দ্বারা প্রশিক্ষণ এবং পরীক্ষামূলক গ্রুপে বিভক্ত করা যেতে পারে।

  • iNaturalist একটি ডেটাসেটে বিভিন্ন প্রজাতির ছবি থাকে। ডেটাসেটে ১,২০৩টি প্রজাতির ১,২০,৩০০টি ছবি থাকে। ডেটাসেটের সাতটি ফ্লেভার পাওয়া যায়। এর মধ্যে একটি ফটোগ্রাফার দ্বারা গোষ্ঠীভুক্ত করা হয় এবং এতে ৯২৫৭ জন ক্লায়েন্ট থাকে। বাকি ডেটাসেটগুলি ছবিটি তোলার ভৌগোলিক অবস্থান অনুসারে গোষ্ঠীভুক্ত করা হয়। ডেটাসেটের এই ছয়টি ফ্লেভারে ১১ - ৩,৬০৬ ক্লায়েন্ট থাকে।

High performance simulations

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

TFF for different research areas

Federated optimization algorithms

ফেডারেটেড অপ্টিমাইজেশন অ্যালগরিদম নিয়ে গবেষণা TFF-তে বিভিন্ন উপায়ে করা যেতে পারে, যা কাস্টমাইজেশনের পছন্দসই স্তরের উপর নির্ভর করে।

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

ফেডারেটেড অ্যাভারেজিংয়ের আরও সাধারণ বাস্তবায়ন এখানে পাওয়া যাবে। এই বাস্তবায়ন আরও পরিশীলিত অপ্টিমাইজেশন কৌশলের সুযোগ করে দেয়, যার মধ্যে রয়েছে সার্ভার এবং ক্লায়েন্ট উভয় ক্ষেত্রেই বিভিন্ন অপ্টিমাইজারের ব্যবহার। ফেডারেটেড কে-মিনস ক্লাস্টারিং সহ অন্যান্য ফেডারেটেড লার্নিং অ্যালগরিদম এখানে পাওয়া যাবে।

Model update compression

মডেল আপডেটের ক্ষতিকারক সংকোচনের ফলে যোগাযোগের খরচ কমে যেতে পারে, যার ফলে সামগ্রিক প্রশিক্ষণের সময় কমে যেতে পারে।

সাম্প্রতিক একটি গবেষণাপত্র পুনরুত্পাদন করতে, এই গবেষণা প্রকল্পটি দেখুন। একটি কাস্টম কম্প্রেশন অ্যালগরিদম বাস্তবায়ন করতে, উদাহরণ হিসেবে বেসলাইনের জন্য প্রকল্পে comparison_methods দেখুন, এবং যদি ইতিমধ্যেই পরিচিত না হন তবে TFF Aggregators টিউটোরিয়ালটি দেখুন।

Differential privacy

ডিফারেনশিয়াল গোপনীয়তা সহ মডেলগুলির ফেডারেটেড প্রশিক্ষণের জন্য নতুন অ্যালগরিদমে গবেষণা সক্ষম করার জন্য TFF TensorFlow Privacy লাইব্রেরির সাথে আন্তঃকার্যযোগ্য। মৌলিক DP-FedAvg অ্যালগরিদম এবং এক্সটেনশন ব্যবহার করে DP-এর সাথে প্রশিক্ষণের উদাহরণের জন্য, এই পরীক্ষা ড্রাইভারটি দেখুন।

যদি আপনি একটি কাস্টম DP অ্যালগরিদম বাস্তবায়ন করতে চান এবং ফেডারেটেড এভারেজিংয়ের সামগ্রিক আপডেটগুলিতে এটি প্রয়োগ করতে চান, তাহলে আপনি tensorflow_privacy.DPQuery এর একটি সাবক্লাস হিসাবে একটি নতুন DP গড় অ্যালগরিদম বাস্তবায়ন করতে পারেন এবং আপনার প্রশ্নের একটি উদাহরণ সহ একটি tff.aggregators.DifferentiallyPrivateFactory তৈরি করতে পারেন। DP-FTRL অ্যালগরিদম বাস্তবায়নের একটি উদাহরণ এখানে পাওয়া যাবে।

ফেডারেটেড GAN ( নীচে বর্ণিত) হল ব্যবহারকারী-স্তরের ডিফারেনশিয়াল গোপনীয়তা বাস্তবায়নকারী TFF প্রকল্পের আরেকটি উদাহরণ (যেমন, এখানে কোডে )।

Robustness and attacks

TFF ফেডারেটেড লার্নিং সিস্টেমের উপর লক্ষ্যবস্তু আক্রমণ এবং ক্যান ইউ রিয়েললি ব্যাক ডোর ফেডারেটেড লার্নিং? -এ বিবেচনা করা ডিফারেনশিয়াল গোপনীয়তা ভিত্তিক প্রতিরক্ষা অনুকরণ করতেও ব্যবহার করা যেতে পারে। এটি সম্ভাব্য ক্ষতিকারক ক্লায়েন্টদের সাথে একটি পুনরাবৃত্তিমূলক প্রক্রিয়া তৈরি করে করা হয় ( build_federated_averaging_process_attacked দেখুন)। targeted_attack ডিরেক্টরিতে আরও বিশদ রয়েছে।

  • নতুন আক্রমণাত্মক অ্যালগরিদমগুলি একটি ক্লায়েন্ট আপডেট ফাংশন লিখে বাস্তবায়িত করা যেতে পারে যা একটি টেনসরফ্লো ফাংশন, উদাহরণের জন্য ClientProjectBoost দেখুন।
  • 'tff.utils.StatefulAggregateFn' কাস্টমাইজ করে নতুন প্রতিরক্ষা বাস্তবায়ন করা যেতে পারে যা ক্লায়েন্ট আউটপুটগুলিকে একত্রিত করে বিশ্বব্যাপী আপডেট পায়।

সিমুলেশনের জন্য একটি উদাহরণ স্ক্রিপ্টের জন্য, emnist_with_targeted_attack.py দেখুন।

Generative Adversarial Networks

GAN গুলি একটি আকর্ষণীয় ফেডারেটেড অর্কেস্ট্রেশন প্যাটার্ন তৈরি করে যা স্ট্যান্ডার্ড ফেডারেটেড অ্যাভারেজিং থেকে একটু আলাদা দেখায়। এগুলিতে দুটি স্বতন্ত্র নেটওয়ার্ক (জেনারেটর এবং ডিসক্রিমিনেটর) জড়িত থাকে যাদের প্রত্যেকেই তাদের নিজস্ব অপ্টিমাইজেশন ধাপে প্রশিক্ষিত।

GAN-দের ফেডারেটেড প্রশিক্ষণের উপর গবেষণার জন্য TFF ব্যবহার করা যেতে পারে। উদাহরণস্বরূপ, সাম্প্রতিক কাজে উপস্থাপিত DP-FedAvg-GAN অ্যালগরিদমটি TFF-তে বাস্তবায়িত হয়েছে। এই কাজটি ফেডারেটেড লার্নিং, জেনারেটিভ মডেল এবং ডিফারেনশিয়াল গোপনীয়তার সমন্বয়ের কার্যকারিতা প্রদর্শন করে।

ব্যক্তিগতকরণ

ফেডারেটেড লার্নিং-এর ক্ষেত্রে ব্যক্তিগতকরণ একটি সক্রিয় গবেষণার ক্ষেত্র। ব্যক্তিগতকরণের লক্ষ্য হল বিভিন্ন ব্যবহারকারীদের জন্য বিভিন্ন অনুমান মডেল প্রদান করা। এই সমস্যার সম্ভাব্য ভিন্ন ভিন্ন পদ্ধতি রয়েছে।

একটি পদ্ধতি হল প্রতিটি ক্লায়েন্টকে তাদের স্থানীয় ডেটা দিয়ে একটি একক বৈশ্বিক মডেল (ফেডারেটেড লার্নিং ব্যবহার করে প্রশিক্ষিত) সূক্ষ্ম-টিউন করতে দেওয়া। এই পদ্ধতির মেটা-লার্নিংয়ের সাথে সংযোগ রয়েছে, উদাহরণস্বরূপ, এই গবেষণাপত্রটি দেখুন। এই পদ্ধতির একটি উদাহরণ emnist_p13n_main.py এ দেওয়া হয়েছে। বিভিন্ন ব্যক্তিগতকরণ কৌশল অন্বেষণ এবং তুলনা করতে, আপনি যা করতে পারেন:

  • একটি tf.function বাস্তবায়নের মাধ্যমে একটি ব্যক্তিগতকরণ কৌশল সংজ্ঞায়িত করুন যা একটি প্রাথমিক মডেল থেকে শুরু হয়, প্রতিটি ক্লায়েন্টের স্থানীয় ডেটাসেট ব্যবহার করে একটি ব্যক্তিগতকৃত মডেলকে প্রশিক্ষণ দেয় এবং মূল্যায়ন করে। build_personalize_fn দ্বারা একটি উদাহরণ দেওয়া হল।

  • একটি OrderedDict সংজ্ঞায়িত করুন যা সংশ্লিষ্ট ব্যক্তিগতকরণ কৌশলগুলির সাথে কৌশলের নামগুলি ম্যাপ করে এবং tff.learning.build_personalization_eval_computationpersonalize_fn_dict আর্গুমেন্ট হিসাবে এটি ব্যবহার করে।

আরেকটি পদ্ধতি হল সম্পূর্ণরূপে বিশ্বব্যাপী মডেল প্রশিক্ষণ এড়ানোর জন্য, একটি মডেলের কিছু অংশকে সম্পূর্ণ স্থানীয়ভাবে প্রশিক্ষণ দেওয়া। এই পদ্ধতির একটি তাৎপর্য এই ব্লগ পোস্টে বর্ণনা করা হয়েছে। এই পদ্ধতিটি মেটা লার্নিংয়ের সাথেও যুক্ত, এই প্রবন্ধটি দেখুন।