استخدام TFF لأبحاث التعلم الموحدة

ملخص

TFF هو إطار عمل قوي وقابل للتوسيع لإجراء أبحاث التعلم الفيدرالي (FL) من خلال محاكاة الحسابات الموحدة على مجموعات بيانات وكيل واقعية. تصف هذه الصفحة المفاهيم والمكونات الرئيسية ذات الصلة بمحاكاة البحث ، بالإضافة إلى إرشادات مفصلة لإجراء أنواع مختلفة من البحث في TFF.

الهيكل النموذجي لرمز البحث في TFF

تتكون محاكاة البحث العلمي المنفذة في TFF عادةً من ثلاثة أنواع رئيسية من المنطق.

  1. الأجزاء الفردية من كود tf.function ، عادةً وظائف tf ، التي تغلف المنطق الذي يتم تشغيله في مكان واحد (على سبيل المثال ، على العملاء أو على الخادم). عادةً ما يتم كتابة هذا الرمز واختباره بدون أي tff.* ، ويمكن إعادة استخدامه خارج TFF. على سبيل المثال ، يتم تنفيذ حلقة تدريب العميل في Federated Averaging على هذا المستوى.

  2. منطق التزامن الموحد TensorFlow ، والذي يربط معًا tf.function الفردية من 1. عن طريق تغليفها كـ tff.tf_computation s ثم تنسيقها باستخدام تجريدات مثل tff.federated_broadcast و tff.federated_mean داخل tff.federated_computation . انظر ، على سبيل المثال ، هذا التناغم للمعدل الفدرالي .

  3. برنامج نصي خارجي لبرنامج التشغيل يحاكي منطق التحكم في نظام FL للإنتاج ، ويحدد العملاء المحاكين من مجموعة بيانات ثم تنفيذ العمليات الحسابية الموحدة المحددة في 2. على هؤلاء العملاء. على سبيل المثال ، برنامج تشغيل تجربة EMNIST الفيدرالي .

مجموعات بيانات التعلم الموحدة

تستضيف TensorFlow الموحدة مجموعات بيانات متعددة تمثل خصائص مشاكل العالم الحقيقي التي يمكن حلها من خلال التعلم الموحد.

تتضمن مجموعات البيانات:

  • StackOverflow . مجموعة بيانات نصية واقعية لنمذجة اللغة أو مهام التعلم تحت الإشراف ، مع 342،477 مستخدمًا فريدًا مع 135،818،730 مثالًا (جمل) في مجموعة التدريب.

  • EMNIST الموحدة . معالجة مسبقة موحدة لحرف EMNIST ومجموعة البيانات الرقمية ، حيث يتوافق كل عميل مع كاتب مختلف. تحتوي مجموعة القطار الكاملة على 3400 مستخدم مع 671585 مثالًا من 62 ملصق.

  • شكسبير . مجموعة بيانات نصية أصغر حجمًا على مستوى الحرف تستند إلى الأعمال الكاملة لوليام شكسبير. تتكون مجموعة البيانات من 715 مستخدمًا (شخصيات من مسرحيات شكسبير) ، حيث يتوافق كل مثال مع مجموعة متجاورة من الأسطر التي تتحدثها الشخصية في مسرحية معينة.

  • سيفار 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 بكثافة في توفير أوقات تشغيل عالية الأداء فردية ومتعددة الأجهزة. التوثيق قيد التطوير ، ولكن يمكنك الآن الاطلاع على المحاكاة عالية الأداء باستخدام البرنامج التعليمي Kubernetes ، وإرشادات حول محاكاة TFF مع المسرعات ، وإرشادات حول إعداد عمليات المحاكاة باستخدام TFF على GCP . يتم تمكين وقت تشغيل TFF عالي الأداء افتراضيًا.

TFF لمجالات البحث المختلفة

خوارزميات التحسين الموحدة

يمكن إجراء البحث حول خوارزميات التحسين الموحدة بطرق مختلفة في TFF ، اعتمادًا على المستوى المطلوب من التخصيص.

يتوفر هنا الحد الأدنى من التنفيذ المستقل لخوارزمية المتوسطات الموحدة . يشتمل الرمز على وظائف TF للحساب المحلي ، وحسابات TFF للتزامن ، وبرنامج نصي لبرنامج التشغيل على مجموعة بيانات EMNIST كمثال. يمكن تكييف هذه الملفات بسهولة لتلائم التطبيقات المخصصة والتغييرات الحسابية باتباع الإرشادات التفصيلية في التمهيدي .

يمكن العثور على تطبيق أكثر عمومية للمتوسطات الفيدرالية هنا . يسمح هذا التنفيذ بتقنيات تحسين أكثر تعقيدًا ، بما في ذلك استخدام أدوات تحسين مختلفة على كل من الخادم والعميل. يمكن العثور هنا على خوارزميات التعلم الموحدة الأخرى ، بما في ذلك مجموعة الوسائل k الموحدة.

ضغط تحديث النموذج

يمكن أن يؤدي الضغط الفاشل لتحديثات النموذج إلى انخفاض تكاليف الاتصال ، مما قد يؤدي بدوره إلى تقليل وقت التدريب الإجمالي.

لإعادة إنتاج ورقة حديثة ، راجع مشروع البحث هذا . لتنفيذ خوارزمية ضغط مخصصة ، راجع طرق المقارنة في المشروع لمعرفة الخطوط الأساسية كمثال ، والبرنامج التعليمي TFF Aggregators إذا لم يكن مألوفًا بالفعل.

الخصوصية التفاضلية

TFF قابل للتشغيل البيني مع مكتبة خصوصية TensorFlow لتمكين البحث في خوارزميات جديدة للتدريب الموحد للنماذج ذات الخصوصية التفاضلية. للحصول على مثال للتدريب مع DP باستخدام خوارزمية DP-FedAvg الأساسية والإضافات ، انظر برنامج التجربة هذا .

إذا كنت ترغب في تنفيذ خوارزمية DP مخصصة وتطبيقها على التحديثات الإجمالية للمتوسط ​​الموحد ، فيمكنك تنفيذ خوارزمية متوسط ​​DP جديدة كفئة فرعية من tensorflow_privacy.DPQuery وإنشاء tff.aggregators.DifferentiallyPrivateFactory مع مثيل الاستعلام الخاص بك. يمكن العثور هنا على مثال على تنفيذ خوارزمية DP-FTRL

تعد شبكات GAN الموحدة (الموضحة أدناه ) مثالاً آخر على مشروع TFF الذي ينفذ الخصوصية التفاضلية على مستوى المستخدم (على سبيل المثال ، هنا في الكود ).

المتانة والهجمات

يمكن أيضًا استخدام TFF لمحاكاة الهجمات المستهدفة على أنظمة التعلم الفيدرالية والدفاعات القائمة على الخصوصية التفاضلية التي تم أخذها في الاعتبار في Can You Back Door Federated Learning؟ . يتم ذلك عن طريق بناء عملية تكرارية مع عملاء يحتمل أن يكونوا ضارين (انظر build_federated_averaging_process_attacked ). يحتوي دليل target_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 .

نهج آخر هو تجنب تدريب نموذج عالمي بالكامل عن طريق تدريب جزء من نموذج محليًا بالكامل. تم وصف إنشاء مثيل لهذا الأسلوب في منشور المدونة هذا . يرتبط هذا النهج أيضًا بالتعلم التلوي ، انظر هذه الورقة . لاستكشاف التعلم الفيدرالي المحلي جزئيًا ، يمكنك: