بررسی اجمالی
TFF یک چارچوب توسعهیافته و قدرتمند برای انجام تحقیقات یادگیری فدرال (FL) با شبیهسازی محاسبات فدرال روی مجموعه دادههای پراکسی واقعی است. این صفحه مفاهیم و مؤلفههای اصلی مرتبط با شبیهسازی تحقیق و همچنین راهنمایی دقیق برای انجام انواع مختلف تحقیق در TFF را شرح میدهد.
ساختار معمول کد تحقیق در TFF
یک شبیهسازی تحقیقاتی FL که در TFF اجرا میشود، معمولاً از سه نوع منطق اصلی تشکیل شده است.
تکههای منفرد کد TensorFlow، معمولاً
tf.function
، که منطقی را که در یک مکان اجرا میشود (مثلاً روی کلاینتها یا روی سرور) دربرمیگیرد. این کد معمولاً بدون هیچ مرجعtff.*
نوشته و آزمایش می شود و می تواند در خارج از TFF دوباره استفاده شود. به عنوان مثال، حلقه آموزش مشتری در میانگین گیری فدرال در این سطح پیاده سازی می شود.منطق ارکستراسیون فدرال TensorFlow، که با قرار دادن آنها به عنوان
tff.tensorflow.computation
و سپس هماهنگ کردن آنها با استفاده از انتزاعاتی مانندtff.federated_broadcast
وtff.federated_mean
در داخل یکtff.federated_computation
به هم متصلtf.function
شود. برای مثال، این ارکستراسیون را برای میانگینگیری فدرال ببینید.یک اسکریپت درایور بیرونی که منطق کنترل یک سیستم FL تولیدی را شبیهسازی میکند، مشتریان شبیهسازیشده را از یک مجموعه داده انتخاب میکند و سپس محاسبات فدرال تعریفشده در 2. را روی آن کلاینتها اجرا میکند. به عنوان مثال، یک راننده آزمایش فدرال EMNIST .
مجموعه داده های یادگیری فدرال
TensorFlow فدرال میزبان مجموعه داده های متعددی است که نماینده ویژگی های مشکلات دنیای واقعی است که می تواند با یادگیری فدرال حل شود.
مجموعه داده ها عبارتند از:
سرریز پشته . مجموعه داده متنی واقعی برای مدلسازی زبان یا وظایف یادگیری تحت نظارت، با 342477 کاربر منحصر به فرد با 135818730 مثال (جملات) در مجموعه آموزشی.
EMNIST فدرال یک پیش پردازش فدرال از کاراکتر و مجموعه رقمی EMNIST، که در آن هر مشتری با نویسنده متفاوتی مطابقت دارد. مجموعه کامل قطار شامل 3400 کاربر با 671585 نمونه از 62 برچسب است.
شکسپیر . مجموعه داده متنی در سطح کاراکتر کوچکتر بر اساس آثار کامل ویلیام شکسپیر. مجموعه داده شامل 715 کاربر (شخصیتهای نمایشنامههای شکسپیر) است که هر نمونه مربوط به مجموعهای از خطوط به هم پیوسته است که توسط شخصیت در یک نمایشنامه مشخص گفته میشود.
CIFAR-100 . پارتیشن بندی فدرال مجموعه داده CIFAR-100 در بین 500 مشتری آموزشی و 100 مشتری آزمایشی. هر مشتری 100 نمونه منحصر به فرد دارد. پارتیشن بندی به گونه ای انجام می شود که ناهمگونی واقعی تری بین مشتریان ایجاد کند. برای جزئیات بیشتر، به API مراجعه کنید.
مجموعه داده Google Landmark v2 مجموعه داده شامل عکسهایی از مکانهای دیدنی مختلف جهان است، با تصاویر گروهبندی شده توسط عکاس برای دستیابی به پارتیشن بندی فدرال دادهها. دو نوع مجموعه داده موجود است: یک مجموعه داده کوچکتر با 233 مشتری و 23080 تصویر، و یک مجموعه داده بزرگتر با 1262 مشتری و 164172 تصویر.
CelebA مجموعهای از نمونهها (تصویر و ویژگیهای چهره) از چهرههای مشهور. مجموعه داده فدرال دارای نمونههای هر فرد مشهور برای تشکیل یک مشتری است. 9343 مشتری وجود دارد که هر کدام حداقل 5 نمونه دارند. مجموعه داده را می توان به گروه های آموزشی و آزمایشی یا توسط مشتریان یا با نمونه تقسیم کرد.
مجموعه داده iNaturalist از عکس های گونه های مختلف تشکیل شده است. مجموعه داده شامل 120300 تصویر برای 1203 گونه است. هفت طعم از مجموعه داده موجود است. یکی از آنها توسط عکاس گروه بندی شده است و شامل 9257 مشتری است. بقیه مجموعه داده ها بر اساس مکان جغرافیایی که عکس گرفته شده است گروه بندی می شوند. این شش طعم از مجموعه داده شامل 11 - 3606 مشتری است.
شبیه سازی با کارایی بالا
در حالی که زمان ساعت دیواری یک شبیهسازی FL معیار مناسبی برای ارزیابی الگوریتمها نیست (زیرا سختافزار شبیهسازی نماینده محیطهای استقرار FL واقعی نیست)، توانایی اجرای سریع شبیهسازیهای FL برای بهرهوری تحقیق بسیار مهم است. از این رو، TFF سرمایه گذاری هنگفتی را در ارائه زمان های اجرای تک و چند ماشینی با کارایی بالا انجام داده است. مستندات در حال توسعه است، اما در حال حاضر دستورالعملهای مربوط به شبیهسازی TFF با شتابدهندهها و دستورالعملهای مربوط به تنظیم شبیهسازی با TFF در GCP را ببینید. زمان اجرا TFF با کارایی بالا به طور پیش فرض فعال است.
TFF برای حوزه های مختلف تحقیقاتی
الگوریتم های بهینه سازی فدرال
تحقیق در مورد الگوریتم های بهینه سازی فدرال بسته به سطح دلخواه سفارشی سازی می تواند به روش های مختلفی در TFF انجام شود.
حداقل پیاده سازی مستقل از الگوریتم میانگین فدرال در اینجا ارائه شده است. کد شامل توابع TF برای محاسبات محلی، محاسبات TFF برای ارکستراسیون، و یک اسکریپت درایور در مجموعه داده EMNIST به عنوان مثال است. این فایلها را میتوان به راحتی برای اعمال سفارشی و تغییرات الگوریتمی به دنبال دستورالعملهای دقیق در README تطبیق داد.
یک پیاده سازی کلی تر از میانگین گیری فدرال را می توان در اینجا یافت. این پیاده سازی تکنیک های بهینه سازی پیچیده تری را امکان پذیر می کند، از جمله استفاده از بهینه سازهای مختلف در سرور و کلاینت. سایر الگوریتمهای یادگیری فدرال، از جمله خوشهبندی k-means فدرال، را میتوانید در اینجا بیابید.
فشرده سازی به روز رسانی مدل
فشرده سازی از دست دادن به روز رسانی مدل می تواند منجر به کاهش هزینه های ارتباطی شود که به نوبه خود می تواند منجر به کاهش زمان کلی آموزش شود.
برای بازتولید مقاله اخیر، این پروژه تحقیقاتی را ببینید. برای پیادهسازی یک الگوریتم فشردهسازی سفارشی، بهعنوان مثال، comparation_methods را در پروژه برای خطوط پایه، و آموزش TFF Aggregators را اگر قبلاً با آن آشنایی ندارید، ببینید.
حریم خصوصی متفاوت
TFF با کتابخانه TensorFlow Privacy قابل همکاری است تا امکان تحقیق در الگوریتمهای جدید برای آموزش فدرال مدلهای با حریم خصوصی متفاوت را فراهم کند. برای مثالی از آموزش با DP با استفاده از الگوریتم و برنامه های افزودنی اولیه DP-FedAvg، این درایور آزمایش را ببینید.
اگر میخواهید یک الگوریتم DP سفارشی پیادهسازی کنید و آن را روی بهروزرسانیهای کلی میانگینگیری فدرال اعمال کنید، میتوانید یک الگوریتم میانگین DP جدید را به عنوان زیرکلاس tensorflow_privacy.DPQuery
پیادهسازی کنید و یک tff.aggregators.DifferentiallyPrivateFactory
را با نمونهای از پرس و جو خود ایجاد کنید. نمونه ای از پیاده سازی الگوریتم DP-FTRL را می توان در اینجا یافت
GAN های فدرال (که در زیر توضیح داده شده است) نمونه دیگری از پروژه TFF هستند که حریم خصوصی دیفرانسیل در سطح کاربر را پیاده سازی می کند (به عنوان مثال، در اینجا در کد ).
استحکام و حملات
TFF همچنین میتواند برای شبیهسازی حملات هدفمند به سیستمهای یادگیری فدرال و دفاعهای متمایز مبتنی بر حریم خصوصی در نظر گرفته شده در Can You Really Back Door Federated Learning استفاده شود؟ . این کار با ساخت یک فرآیند تکراری با کلاینتهای بالقوه مخرب انجام میشود (به build_federated_averaging_process_attacked
مراجعه کنید). فهرست targeted_attack حاوی جزئیات بیشتری است.
- الگوریتم های حمله جدید را می توان با نوشتن یک تابع به روز رسانی مشتری که یک تابع Tensorflow است پیاده سازی کرد، برای مثال
ClientProjectBoost
را ببینید. - دفاعهای جدید را میتوان با سفارشیسازی «tff.utils.StatefulAggregateFn» که خروجیهای مشتری را جمعآوری میکند تا بهروزرسانی جهانی دریافت کند، پیادهسازی کرد.
برای نمونهای از اسکریپت شبیهسازی، به emnist_with_targeted_attack.py
مراجعه کنید.
شبکه های متخاصم مولد
GAN ها یک الگوی ارکستراسیون فدرال جالب را ایجاد می کنند که کمی متفاوت از میانگین فدرال استاندارد به نظر می رسد. آنها شامل دو شبکه مجزا (مولد و متمایز کننده) هستند که هر کدام با مرحله بهینه سازی خاص خود آموزش دیده اند.
TFF می تواند برای تحقیق در مورد آموزش فدرال GAN ها استفاده شود. به عنوان مثال، الگوریتم DP-FedAvg-GAN ارائه شده در کار اخیر در TFF پیاده سازی شده است. این کار اثربخشی ترکیب یادگیری فدرال، مدلهای تولیدی و حریم خصوصی متفاوت را نشان میدهد.
شخصی سازی
شخصی سازی در محیط یادگیری فدرال یک حوزه تحقیقاتی فعال است. هدف شخصی سازی ارائه مدل های مختلف استنتاج به کاربران مختلف است. رویکردهای بالقوه متفاوتی برای این مشکل وجود دارد.
یک رویکرد این است که به هر مشتری اجازه دهید یک مدل جهانی واحد (آموزش داده شده با استفاده از یادگیری فدرال) را با داده های محلی خود تنظیم کند. این رویکرد با فرا یادگیری ارتباط دارد، به عنوان مثال، این مقاله را ببینید. نمونه ای از این رویکرد در emnist_p13n_main.py
آورده شده است. برای بررسی و مقایسه استراتژیهای شخصیسازی مختلف، میتوانید:
یک استراتژی شخصیسازی را با اجرای یک
tf.function
تعریف کنید که از یک مدل اولیه شروع میشود، یک مدل شخصیشده را با استفاده از مجموعه دادههای محلی هر مشتری آموزش و ارزیابی میکند. یک مثال توسطbuild_personalize_fn
ارائه شده است.OrderedDict
را تعریف کنید که نام استراتژی ها را به استراتژی های شخصی سازی مربوطه نگاشت می کند و از آن به عنوان آرگومانpersonalize_fn_dict
درtff.learning.build_personalization_eval_computation
استفاده کنید.
رویکرد دیگر این است که با آموزش بخشی از یک مدل کاملاً محلی، از آموزش یک مدل کاملاً جهانی اجتناب کنید. نمونه ای از این رویکرد در این پست وبلاگ توضیح داده شده است. این رویکرد همچنین با فرا یادگیری مرتبط است، این مقاله را ببینید. برای کشف یادگیری فدرال محلی، میتوانید:
آموزش نمونه کامل کد مربوط به اعمال بازسازی فدرال و تمرینات بعدی را بررسی کنید.
با استفاده از
tff.learning.reconstruction.build_training_process
، یک فرآیند آموزشی جزئی محلی ایجاد کنید، وdataset_split_fn
برای سفارشی کردن رفتار فرآیند تغییر دهید.