سرور محاسبات فدرال (FC) بخشی از آموزش فدرال ارائه شده توسط شخصیسازی روی دستگاه (ODP) است. هدف از این سند معرفی سرور محاسبات فدرال (FC Server)، اجزای آن و فناوری مورد استفاده است. این سند یک مرور کلی سطح بالا از معماری ارائه میدهد و سپس به تفصیل به هر جزء میپردازد. همچنین در مورد نحوه همکاری اجزا برای ارائه یک محیط یادگیری فدرال بحث میکند و استراتژیهایی برای مقیاسبندی و تقسیمبندی حجم کار ارائه میدهد.
جریان آموزش
آموزش شامل جریان دادهها بین کلاینت FC و سرور FC است. کلاینت FC یک ماژول اصلی اندروید است که مدلهای یادگیری ماشین را روی دستگاه آموزش میدهد و با سرور FC تعامل دارد. سرور FC نتایج کلاینت FC را به طور ایمن در یک محیط اجرای قابل اعتماد (TEE) پردازش و جمعآوری میکند.
آموزش شامل مراحل زیر است:
- کلاینت FC روی دستگاه، یک کلید رمزگذاری عمومی را از سرویسهای کلید دانلود میکند.
- کلاینت FC با سرور FC ارتباط برقرار میکند و یک وظیفه آموزشی دریافت میکند.
- کلاینت FC یک برنامه آموزشی به همراه آخرین نسخه مدل، نسخه N، را دانلود میکند.
- کلاینت FC با استفاده از دادههای محلی و طرح، آموزش میدهد.
- کلاینت FC، دادههای این دستگاه را با کلید عمومی بهدستآمده در مرحله ۰ رمزگذاری کرده و آن را در سرور FC آپلود میکند.
- کلاینت FC به سرور FC اطلاع میدهد که آموزش آن تکمیل شده است.
- سرور FC منتظر میماند تا تعداد کافی از کلاینتها، مشارکتهای خود را ارسال کنند.
- یک دور از تجمیع آغاز میشود.
- مشارکتهای رمزگذاریشده توسط تجمیعکننده در یک محیط اجرای قابل اعتماد (TEE) بارگذاری میشوند.
- تجمیعکننده، خود را مطابق با معماری رویههای گواهی از راه دور (RATS) RFC 9334 NIST، به هماهنگکنندهها گواهی میدهد. پس از گواهی موفقیتآمیز، سرویسهای کلید، کلیدهای رمزگشایی را به آن اعطا میکنند. این کلیدها ممکن است در یک طرح اشتراکگذاری راز شامیر ، بین چندین ارائهدهنده کلید تقسیم شوند.
- تجمیعکننده، تجمیع بین دستگاهی، کلیپها و نویزها را بر اساس مکانیسمهای مناسب حریم خصوصی تفاضلی (DP) انجام میدهد و نتایج نویزدار را خروجی میدهد.
- Aggregator، بهروزرسانیکنندهی مدل (Model Updater) را فعال میکند.
- بهروزرسانیکنندهی مدل، سهم تجمیعشده را بارگذاری کرده و آن را بر روی مدل نسخهی N اعمال میکند تا مدل نسخهی N + 1 ایجاد شود. مدل جدید به حافظهی مدل منتقل میشود.
سرور FC میتواند روی هر سرویس(های) ابری که از TEEها و ویژگیهای امنیتی مرتبط پشتیبانی میکند، مستقر شود. ما در حال ارزیابی ارائهدهندگان ابر عمومی و فناوریهای زیربنایی هستیم، اما فعلاً بخش زیر یک پیادهسازی نمونه از Google Cloud با استفاده از Confidential Space را ارائه میدهد.
معماری سطح بالا
سرور FC اجزای زیر را در Google Cloud مستقر کرده است:
| کامپوننت | توضیحات |
| سرویس مدیریت وظایف | یک سرویس وب برای مدیریت وظیفه آموزشی. شرکا باید از API مدیریت وظیفه برای ایجاد یک وظیفه آموزشی، فهرست کردن تمام وظایف آموزشی موجود، لغو یک وظیفه و بازیابی تمام وضعیتهای آموزشی استفاده کنند. |
| سرویس واگذاری وظیفه | یک سرویس وب مبتنی بر HTTPS که در آن دستگاههای کلاینت به صورت دورهای برای دریافت وظایف آموزشی و گزارش وضعیت آموزش، بررسی میشوند. |
| جمع کننده | یک سرویس پسزمینه که در فضای محرمانه اجرا میشود. این سرویس بارهای کاریِ نوشتهشده توسط ODP را اجرا میکند. باید به هماهنگکنندهها، که دسترسی به کلیدهای رمزگشایی را محافظت میکنند، گواهی دهد. فقط تجمیعکنندههای تأییدشدهی موفق میتوانند مشارکتهای ارسالشده توسط دستگاههای کلاینت را رمزگشایی کرده و تجمیع بین دستگاهی را انجام دهند. |
| بهروزرسانی مدل | یک سرویس پسزمینه که در فضای محرمانه اجرا میشود و گرادیانهای تجمیعشده را به مدل اعمال میکند. |
جزئیات اجزا
بخشهای زیر معماری سطح بالا را با جزئیات بیشتری بسط میدهند:
سرویس مدیریت وظایف
سرویس مدیریت وظایف شامل دو زیرمولفه است: سرویس وب مدیریت وظایف و سرویس زمانبندی وظایف که هر دو روی GKE مستقر شدهاند.
مدیریت وظایف
این مجموعهای از سرویسهای وب frontend است که درخواستهای HTTPS را دریافت کرده و وظایف را از پایگاه داده وظایف ایجاد یا دریافت میکند.
زمانبندی وظایف
یک سرویس پسزمینه که به طور مداوم پایگاه داده وظایف را اسکن میکند. این سرویس جریان آموزش را مدیریت میکند، به عنوان مثال، دورهای آموزشی و تکرارهای جدید ایجاد میکند.
پایگاه داده وظیفه
یک پایگاه داده سازگار با ANSI SQL که اطلاعات وظیفه، تکرار و تخصیص را ذخیره میکند. در این پیادهسازی، Google Cloud Spanner به عنوان سرویس پایگاه داده اصلی استفاده میشود.
سرویس واگذاری وظیفه
سرویس تخصیص وظایف، یک سرویس وب frontend است که بر روی GKE میزبانی میشود. این سرویس درخواستها را از کلاینتهای FC دریافت کرده و در صورت لزوم، وظایف آموزشی را توزیع میکند.
پایگاه داده وظایف در اینجا همان نمونه پایگاه داده پایگاه داده وظایف در سرویس مدیریت وظایف است.
خدمات تجمیع کننده
تجمیعکننده و بهروزرسانیکننده مدل
Aggregator و Model Updater مشابه هستند. آنها سرویسهای پسزمینهای هستند که دادهها را به صورت ایمن در فضای محرمانه پردازش میکنند. ارتباط بین کارهای آفلاین از طریق PubSub است.
گرادیانها، گرادیانهای تجمیعشده، مدل و طرح
- یک فضای ذخیرهسازی گرادیان برای گرادیانهای آپلود شده (رمزگذاری شده) توسط دستگاه کلاینت.
- یک حافظه گرادیان تجمیعی برای گرادیانهای تجمیعی، برش داده شده و نویزدار.
- یک فضای ذخیرهسازی مدل و طرح برای طرحهای آموزشی، مدلها و وزنها.
گردآورنده
جمعکننده یک سرویس پسزمینه است که به صورت دورهای تعداد دستگاههای ارسالی کلاینت را در طول یک دور آموزشی شمارش میکند. این سرویس به جمعکننده اطلاع میدهد که پس از رسیدن تعداد کافی از دستگاهها، تجمیع را آغاز کند.
میزبانهای سرویس
تمام سرویسهایی که به اطلاعات حساس دسترسی ندارند، روی GKE میزبانی میشوند.
تمام سرویسهایی که ممکن است با اطلاعات حساس در تماس باشند، در فضای محرمانه میزبانی میشوند.
تمام دادههای حساس با کلیدهای رمزگذاری که توسط سرویسهای کلید متعلق به چندین طرف مدیریت میشوند، رمزگذاری میشوند. فقط کد منبع باز ODP که با موفقیت تأیید شده و در نسخههای قانونی و دارای محاسبات محرمانه از Confidential Space اجرا میشود، میتواند به کلیدهای رمزگشایی دسترسی داشته باشد.
در یک واحد سرویس، منبع محاسباتی به شکل زیر است:
مقیاسپذیری
زیرساختی که قبلاً توضیح داده شد، بر یک واحد خدماتی تمرکز دارد.
یک واحد خدماتی از یک Cloud Spanner استفاده میکند. برای محدودیتهای قابل توجه ، به سهمیهها و محدودیتهای Spanner مراجعه کنید.
هر جزء از این معماری میتواند به طور مستقل مقیاسپذیر باشد. این کار با مقیاسبندی ظرفیت در فضای محرمانه یا در خوشه GKE با استفاده از مکانیسمهای مقیاسبندی استاندارد انجام میشود. به طور مؤثر، ظرفیت پردازش را میتوان با افزودن نمونههای بیشتر از موارد زیر افزایش داد:
- وب سرویس تخصیص وظیفه
- سرویس وب مدیریت وظایف
- نمونههای تجمیعکننده
- نمونههای بهروزرسانی مدل
تابآوری
انعطافپذیری یک سرور FC توسط بازیابی پس از سانحه با استفاده از فضای ذخیرهسازی تکثیر شده (replicated storage) مدیریت میشود. اگر به بازیابی پس از سانحه علاقهمند هستید، باید تکثیر دادههای بین منطقهای (cross-region data replication) را فعال کنید. این کار تضمین میکند که اگر فاجعهای رخ دهد (مانند یک رویداد آب و هوایی که یک مرکز داده را مختل میکند)، سرویس از آخرین دور آموزش از سر گرفته شود.
آچار
پیادهسازی پیشفرض FC Server از Google Cloud Spanner به عنوان پایگاه داده برای ذخیره وضعیت وظایف استفاده میکند که برای کنترل جریان آموزش استفاده میشود. شما باید قبل از انتخاب پیکربندی چند منطقهای، موازنه بین سازگاری و در دسترس بودن را با توجه به نیازهای تجاری خود ارزیابی کنید.
هیچ داده کاربری یا مشتقات آن، چه خام و چه رمزگذاری شده، در هیچ نمونهای از Spanner ذخیره نمیشود. میتوانید از هر یک از ویژگیهای بازیابی فاجعه ارائه شده توسط Spanner استفاده کنید.
Spanner تاریخچه تغییرات را ثبت میکند. Aggregator و Model Updater دادهها را در هر دور آموزش ذخیره میکنند و نتیجه هر دور به طور جداگانه و بدون بازنویسی یکدیگر ذخیره میشود. به همین دلیل، در صورت بروز فاجعه، سرویس میتواند از آخرین دور آموزش از سر گرفته شود.
فضای ذخیرهسازی ابری گوگل
پیادهسازی پیشفرض FC Server از فضای ذخیرهسازی ابری گوگل برای ذخیره دادههای بلاب مانند مدلها، برنامههای آموزشی و دادههای رمزگذاریشدهی دستگاهها استفاده میکند.
سه نمونه GCS در طراحی وجود دارد:
- مشارکتهای دستگاه: مشارکتهای رمزگذاریشده دستگاه که از دستگاهها آپلود شدهاند.
- مدلها: برنامههای آموزشی، مدلها و وزنهای آنها.
- گرادیانهای تجمیعشده: گرادیانهای تجمیعشدهای که توسط تجمیعکننده تولید میشوند.
دادههای ذخیره شده در GCS عبارتند از:
- دادههای ارائه شده توسط توسعهدهنده، مانند یک برنامه آموزشی یا
- دادههای بالقوه خصوصی، زیرا از سیگنالهای کاربر (محافظتشده توسط رمزگذاری چند هماهنگکننده) مانند گرادیانهای آپلود شده توسط دستگاه و گرادیانهای تجمیعشده یا مشتق شدهاند.
- دادههای غیرخصوصی مشتقشده از سیگنالهای کاربر اما پس از اعمال حریم خصوصی تفاضلی، مانند وزنهای مدل.
شما باید بین سازگاری و در دسترس بودن، تعادل برقرار کنید و ویژگیهای مناسب در دسترس بودن و دوام دادههای GCS را انتخاب کنید. شما باید سیاستهای نگهداری دادههای خود را مشخص کنید.
تکثیر و پشتیبانگیری
جدا از مکانیسمهای تکثیر دادهها که توسط Google Cloud ارائه میشود، میتوانید به صورت دورهای از دادهها در Spanner و GCS نیز پشتیبانگیری کنید. به عنوان مثال، میتوانید از خدمات و پیشنهادات تکثیر بین ابری استفاده کنید. ODP نمونهای ارائه نمیدهد زیرا این پیکربندیها به شدت وابسته به نیازهای تجاری هستند. طراحی فعلی، نیازهای بالقوه توسعهدهندگان را برای چنین تکثیرها و پشتیبانگیریهایی در نظر میگیرد. در نتیجه، با خدمات و محصولات تکثیر و پشتیبانگیری ارائه شده توسط شخص ثالث سازگار است.