در یادگیریِ فدرال، آموزش میان چند طرف سازماندهی میشود: سرور حالتِ مشترک میفرستد، هر طرف با دادهٔ خود بهروزرسانی میکند و نتیجه برای تجمیع برمیگردد. این الگو بهتنهایی محرمانگیِ کامل نمیسازد. برای فهمِ مسیر، دو دورِ آموزشیِ کوچک را واقعاً محاسبه کردهایم؛ همهٔ طرفهایِ تمرین داخلِ یک برنامه هستند، نه رویِ دستگاههایِ جدا.
چهار گامِ یک دور را جدا ببینیم
مرجعِ TensorFlow Federated میان ارسالِ حالت از سرور، بهروزرسانیِ محلی، ارسالِ نتیجه و بهروزرسانیِ سرور تمایز میگذارد. برنامهٔ ما این چهار مرحله را با عدد و دفترِ پیام نشان میدهد، اما خودِ TensorFlow یا TFF را نصب یا اجرا نکرده است. پیامهایِ دفتر، ساختارهایِ درونِ همان فرایندِ پایتون هستند؛ عبورِ واقعیِ شبکهای رخ نداده است.
مدلِ آموزشی فقط یک عددِ w دارد و همیشه همان عدد را پیشبینی میکند. طرفِ A دو مقدارِ صفر و دو دارد؛ طرفِ B شش مقدارِ چهار. تابعِ زیان، نصفِ میانگینِ مربعِ فاصلهٔ w تا مقدارهاست. هر طرف از همان وزنِ ارسالیِ سرور شروع میکند و فقط یک گام با نرخِ یکدوم برمیدارد.
دورِ اول؛ چرا میانگینِ ساده جوابِ دیگری دارد؟
وزنِ آغاز صفر است. میانگینِ دادهٔ A برابرِ یک است و گامِ محلی، وزنش را به یکدوم میرساند. میانگینِ B چهار است و وزنش به دو میرسد. اگر دو طرف را هموزن حساب کنیم، نتیجهٔ سرور ۵÷۴ میشود. اگر وزنِ هر طرف تعدادِ نمونهاش باشد، نتیجه برابرِ (۲×۰٫۵ + ۶×۲)÷۸، یعنی ۱۳÷۸ یا ۱٫۶۲۵ است.
| دور | وزنِ مشترکِ آغاز | نتیجهٔ وزندار | میانگینِ سادهٔ دو طرف |
|---|---|---|---|
| ۱ | ۰ | ۱۳÷۸ | ۵÷۴ |
| ۲ | ۱۳÷۸ | ۳۹÷۱۶ | ۳۳÷۱۶ |
در دورِ دوم، هر دو طرف دوباره از ۱۳÷۸ آغاز میکنند؛ نتیجهٔ محلیِ A برابرِ ۲۱÷۱۶ و B برابرِ ۴۵÷۱۶ است. کد همهٔ این کسرها را دقیق محاسبه میکند و فقط عددِ نهاییِ دستی چاپ نمیکند.
کنترلِ مرجع چه چیزی را ثابت میکند؟
برای همین زیان، همین آغازِ مشترک و یک گامِ کاملِ محلی، میانگینِ وزندار با یک گام رویِ مجموعهٔ ادغامشده برابر میشود؛ برنامه این برابری را در هر دو دور کنترل کرده است. این یک خاصیتِ همین مثال است. چند گامِ محلی، دادههایِ متفاوت، انتخابِ طرفها یا بهینهسازِ دیگر میتوانند رفتار را تغییر دهند؛ از این نمونه برابریِ همیشگیِ آموزشِ متمرکز و فدرال نتیجه نمیگیریم.
در مرجعِ رسمیِ MeanFactory، میانگینِ وزندار نسبتِ مجموعِ مقدارهایِ وزنخورده به مجموعِ وزنهاست. ما همین محاسبهٔ عددی را خودمان نوشتهایم؛ خروجی، اجرایِ واقعیِ آن API نیست.
چه چیزی در دفترِ پیام دیده میشود؟
برای هر طرف، وزنِ ورودیِ سرور و وزنِ محلیِ خروجی همراهِ تعدادِ نمونه ثبت شده است. مقدارهایِ خامِ آموزشی در پیامِ ساختگیِ بازگشت نیستند؛ بااینحال در خودِ فایلِ تمرین حضور دارند، چون همه چیز یک فرایند است. این مشاهده ثابت نمیکند در یک استقرارِ واقعی، داده از دستگاه خارج نمیشود یا پیامِ مدل هیچ اطلاعاتی دربارهٔ آن ندارد.
امنبودنِ تجمیع، محدودیتِ دسترسی و سازوکارِ حریمِ خصوصیِ تفاضلی در این کد پیاده نشدهاند. نامِ «فدرال» جایِ بررسیِ محتوایِ پیام، لاگ، پشتیبان و تنظیماتِ واقعی را نمیگیرد. این مطلب دربارهٔ مجازبودنِ انتقالِ داده حکمِ حقوقی نمیدهد.
برای بررسیِ یک پیشنهادِ واقعی چه بپرسیم؟
محلِ ذخیره و دسترسی یک نقشهٔ جدا میخواهد؛ این صفحه خودِ update و تجمیع را اجرا کرد. پرسشهایِ داده از ارائهدهنده نیز برای وصلکردنِ پاسخ به همان خدمت و حساب مفید است. بپرسید کدام پارامتر، آمار و گزارش جابهجا میشود و شاهدِ پاسخ چیست.
برای کاربردِ پاسخگویی یا پیگیری، نیاز و مرزِ داده را در بررسیِ راهکارهایِ اپرا مطرح کنید. این تمرین، معماریِ فدرال یا تضمینِ خاصی در محصولاتِ اپرا را اعلام نمیکند.
فایل تمرین و منبع
شبیهسازیِ واقعیِ دو دورِ آموزش و تجمیعِ وزندار · دفترِ پیامِ هر طرف و مقایسهٔ میانگینِ ساده با وزندار
- مرجع اصلی؛ چهار مرحلهٔ دورِ آموزشِ فدرال
- مرجع اصلی؛ قراردادِ میانگینِ وزندار؛ API اینجا اجرا نشده است
منابع در 2026-11-04 خوانده شدند؛ این تاریخ، تاریخ انتشار منبع نیست. مثالها و فایلهای این راهنما آموزشی و ساختهٔ تحریریهاند.