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

ওভারভিউ

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

TFF-এ গবেষণা কোডের সাধারণ কাঠামো

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

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

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

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

ফেডারেটেড লার্নিং ডেটাসেট

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

ডেটাসেট অন্তর্ভুক্ত:

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

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

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

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

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

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

  • iNaturalist একটি ডেটাসেট বিভিন্ন প্রজাতির ফটো নিয়ে গঠিত। ডেটাসেটে 1,203 প্রজাতির জন্য 120,300টি ছবি রয়েছে। ডেটাসেটের সাতটি স্বাদ পাওয়া যায়। তাদের মধ্যে একটি ফটোগ্রাফার দ্বারা গোষ্ঠীভুক্ত এবং এটি 9257 ক্লায়েন্ট নিয়ে গঠিত। বাকি ডেটাসেটগুলি জিও অবস্থান অনুসারে গোষ্ঠীভুক্ত করা হয়েছে যেখানে ছবিটি তোলা হয়েছে৷ ডেটাসেটের এই ছয়টি স্বাদে 11 - 3,606 ক্লায়েন্ট রয়েছে।

উচ্চ কর্মক্ষমতা সিমুলেশন

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

বিভিন্ন গবেষণা এলাকার জন্য TFF

ফেডারেটেড অপ্টিমাইজেশান অ্যালগরিদম

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

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

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

মডেল আপডেট কম্প্রেশন

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

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

ডিফারেনশিয়াল গোপনীয়তা

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

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

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

দৃঢ়তা এবং আক্রমণ

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

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

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

জেনারেটিভ অ্যাডভারসারিয়াল নেটওয়ার্ক

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

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

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

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

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

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

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

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

  • ফেডারেটেড রিকনস্ট্রাকশন এবং ফলো-আপ ব্যায়াম প্রয়োগ করার জন্য একটি সম্পূর্ণ কোড উদাহরণের জন্য টিউটোরিয়ালটি দেখুন।

  • tff.learning.reconstruction.build_training_process ব্যবহার করে একটি আংশিক স্থানীয় প্রশিক্ষণ প্রক্রিয়া তৈরি করুন, প্রক্রিয়া আচরণ কাস্টমাইজ করতে dataset_split_fn পরিবর্তন করুন।