سرور محاسبات فدرال (FC) بخشی از آموزش فدرال است که توسط شخصی سازی روی دستگاه (ODP) ارائه می شود. هدف این سند معرفی سرور محاسباتی فدرال (FC Server)، اجزای آن و فناوری مورد استفاده است. این سند یک نمای کلی در سطح بالایی از معماری ارائه می دهد و سپس به جزئیات هر جزء می پردازد. همچنین در مورد چگونگی کار اجزاء با یکدیگر برای ارائه یک محیط یادگیری فدرال بحث می کند و استراتژی هایی را برای مقیاس بندی و تقسیم بارهای کاری ارائه می دهد.
جریان آموزشی
آموزش شامل جریان داده بین FC Client و FC Server است. FC Client یک ماژول اصلی اندروید است که مدلهای ML را روی دستگاه آموزش میدهد و با سرور FC تعامل دارد. سرور FC نتایج حاصل از FC Client را به طور ایمن در یک محیط اجرای مورد اعتماد (TEE) پردازش و جمعآوری میکند.
آموزش شامل مراحل زیر است:
- FC Client روی دستگاه یک کلید رمزگذاری عمومی را از Key Services دانلود می کند.
- مشتری FC با سرور FC چک می کند و یک کار آموزشی دریافت می کند.
- FC Client یک طرح آموزشی را به اضافه آخرین نسخه مدل، نسخه N دانلود می کند.
- FC Client با استفاده از داده های محلی و طرح تمرین می کند.
- FC Client مشارکت های این دستگاه را با کلید عمومی به دست آمده در مرحله 0 رمزگذاری می کند و آن را در سرور FC آپلود می کند.
- مشتری FC به سرور FC اطلاع می دهد که آموزش آن به پایان رسیده است.
- سرور FC منتظر می ماند تا تعداد زیادی از مشتریان مشارکت خود را ارسال کنند.
- دور تجمیع آغاز می شود.
- مشارکت های رمزگذاری شده توسط جمع کننده در یک محیط اجرای مورد اعتماد (TEE) بارگذاری می شوند.
- Aggregator خود را با پیروی از معماری RFC 9334 RFC 9334 Remote ATtestationS Architecture (RATS) به هماهنگ کننده ها تأیید می کند. پس از تأیید موفقیت آمیز، خدمات کلید کلیدهای رمزگشایی را به آن می دهد. این کلیدها ممکن است در چندین ارائه دهنده کلید در یک طرح اشتراک مخفی Shamir تقسیم شوند.
- Aggregator بر اساس مکانیسمهای Differential Privacy (DP) تجمیع بین دستگاهها، کلیپها و نویزها را انجام میدهد و نتایج نویزدار را خروجی میدهد.
- Aggregator به روز رسانی مدل را راه اندازی می کند.
- بهروزرسانیکننده مدل سهم جمعآوریشده را بارگیری میکند و آن را برای نسخه مدل N اعمال میکند تا نسخه مدل N + 1 ایجاد کند. مدل جدید به ذخیرهسازی مدل منتقل میشود.
سرور FC را می توان بر روی هر سرویس(های) ابری که از TEE و ویژگی های امنیتی مرتبط پشتیبانی می کند مستقر کرد. ما در حال ارزیابی ارائهدهندگان ابر عمومی و فناوریهای زیربنایی هستیم، اما در حال حاضر بخش زیر نمونه اجرای Google Cloud با استفاده از فضای محرمانه را ارائه میکند.
معماری سطح بالا
سرور FC دارای اجزای زیر است که در Google Cloud مستقر شده اند:
جزء | توضیحات |
سرویس مدیریت وظایف | یک وب سرویس برای مدیریت کار آموزشی. شرکا باید از Task Management API برای ایجاد یک کار آموزشی، فهرست کردن تمام وظایف آموزشی موجود، لغو یک کار، و بازیابی همه وضعیت های آموزشی استفاده کنند. |
سرویس تعیین تکلیف | یک سرویس وب مبتنی بر HTTPS که در آن دستگاه های سرویس گیرنده به طور دوره ای برای دریافت وظایف آموزشی و گزارش وضعیت آموزش بررسی می کنند. |
جمع کننده | یک سرویس پس زمینه در حال اجرا در فضای محرمانه. بارهای کاری نوشته شده توسط ODP را اجرا می کند. این باید به هماهنگ کننده ها، که دسترسی به کلیدهای رمزگشایی را محافظت می کنند، تأیید کند. فقط جمعآوریکنندههایی که با موفقیت تأیید شدهاند میتوانند مشارکتهای ارسالشده توسط دستگاههای سرویس گیرنده را رمزگشایی کنند و تجمیع بین دستگاهها را انجام دهند. |
به روز رسانی مدل | یک سرویس پسزمینه در حال اجرا در فضای محرمانه که گرادیانهای انبوه را روی مدل اعمال میکند. |
جزئیات کامپوننت
بخش های زیر معماری سطح بالا را به جزئیات بیشتر گسترش می دهند:
سرویس مدیریت وظایف
Task Management Service شامل دو جزء فرعی است: Task Management Web Service و Task Scheduler Service که هر دو در GKE مستقر هستند.
مدیریت وظایف
این مجموعه ای از خدمات وب پیشانی است که درخواست های HTTPS را دریافت می کند و وظایفی را از پایگاه داده Task ایجاد می کند یا دریافت می کند.
Task Scheduler
یک سرویس پس زمینه که به طور مداوم پایگاه داده وظایف را اسکن می کند. جریان آموزشی را مدیریت می کند، به عنوان مثال ایجاد دورهای آموزشی و تکرارهای جدید.
پایگاه داده وظایف
یک پایگاه داده سازگار با ANSI SQL که اطلاعات Task، Iteration و Assignment را ذخیره می کند. در این پیاده سازی، Google Cloud Spanner به عنوان سرویس پایگاه داده زیربنایی استفاده می شود.
سرویس تعیین تکلیف
Task Assignment Service یک سرویس وب پیشانی است که در GKE میزبانی می شود. درخواستهای مشتریان FC را دریافت میکند و در صورت لزوم وظایف آموزشی را توزیع میکند.
پایگاه داده وظایف در اینجا همان نمونه پایگاه داده ای است که پایگاه داده وظایف در سرویس مدیریت وظایف است.
خدمات جمع آوری
Aggregator و Model Updater
Aggregator و Model Updater مشابه هستند. آنها خدمات پس زمینه ای هستند که داده ها را به صورت ایمن در فضای محرمانه پردازش می کنند. ارتباط بین مشاغل آفلاین از طریق PubSub است.
گرادیان ها، گرادیان های تجمیعی، مدل و پلان
- فضای ذخیرهسازی گرادیان برای شیبهای بارگذاری شده (رمزگذاریشده) دستگاه کلاینت.
- یک ذخیرهسازی گرادیان جمعآوری شده برای گرادیانهای جمعشده، بریدهشده و نویزدار.
- ذخیره سازی مدل و طرح برای برنامه های آموزشی، مدل ها و وزنه ها.
گردآورنده
Collector یک سرویس پس زمینه است که به صورت دوره ای ارسالی دستگاه مشتری را در طول دوره آموزشی شمارش می کند. به جمعآور اطلاع میدهد که به محض اینکه ارسالهای کافی در دسترس هستند، جمعآوری را آغاز کند.
میزبان خدمات
همه سرویس هایی که به اطلاعات حساس دسترسی ندارند در GKE میزبانی می شوند.
همه خدماتی که ممکن است اطلاعات حساس را لمس کنند در فضای محرمانه میزبانی می شوند.
تمام دادههای حساس با کلیدهای رمزگذاری که توسط سرویسهای کلیدی متعلق به چند حزب مدیریت میشوند، رمزگذاری میشوند. فقط کد منبع باز تأیید شده توسط ODP که در نسخههای محاسباتی محرمانه و قانونی فعال شده از Confidential Space اجرا میشود، میتواند به کلیدهای رمزگشایی دسترسی داشته باشد.
در یک واحد خدمات، منبع محاسباتی به صورت زیر است:
مقیاس پذیری
زیرساختی که قبلاً توضیح داده شد بر یک واحد خدماتی متمرکز است.
یک واحد خدماتی از یک Cloud Spanner استفاده می کند. برای محدودیت های قابل توجه، به سهمیه ها و محدودیت های آچار مراجعه کنید.
هر جزء از این معماری را می توان به طور مستقل مقیاس بندی کرد. این کار با مقیاس بندی ظرفیت در فضای محرمانه یا درون خوشه GKE با استفاده از مکانیسم های مقیاس بندی استاندارد انجام می شود. به طور موثر، ظرفیت پردازش را می توان با افزودن نمونه های بیشتری از موارد زیر افزایش داد:
- سرویس وب تعیین تکلیف
- سرویس وب مدیریت وظایف
- نمونه های جمع کننده
- نمونه های به روز رسانی مدل
تاب آوری
انعطاف پذیری سرور FC با بازیابی فاجعه با استفاده از ذخیره سازی تکراری کنترل می شود. اگر به بازیابی فاجعه علاقه دارید، باید تکرار داده های بین منطقه ای را فعال کنید. این تضمین می کند که اگر یک فاجعه اتفاق بیفتد (مانند یک رویداد آب و هوایی که یک مرکز داده را مختل می کند)، سرویس از آخرین دور آموزشی از سر گرفته می شود.
آچار
اجرای پیشفرض FC Server از Google Cloud Spanner به عنوان پایگاه داده برای ذخیره وضعیت وظیفه استفاده میکند که برای کنترل جریان آموزشی استفاده میشود. قبل از انتخاب یک پیکربندی چند منطقه ، باید مبادله بین ثبات و در دسترس بودن را با توجه به نیازهای تجاری خود ارزیابی کنید.
هیچ داده کاربر یا مشتقات آن، چه خام و چه رمزگذاری شده، در هیچ نمونه Spanner ذخیره نشده است. به راحتی می توانید از هر یک از ویژگی های بازیابی فاجعه موجود توسط Spanner استفاده کنید.
Spanner تاریخچه تغییرات را ثبت می کند. Aggregator و Model Updater داده ها را در هر دور آموزشی ذخیره می کنند و نتیجه هر دور به طور جداگانه بدون بازنویسی روی یکدیگر ذخیره می شود. به همین دلیل، در صورت بروز فاجعه، سرویس می تواند از آخرین دور آموزش از سر گرفته شود.
Google Cloud Storage
اجرای پیشفرض FC Server از Google Cloud Storage برای ذخیره دادههای حباب مانند مدلها، برنامههای آموزشی و مشارکتهای دستگاه رمزگذاری شده استفاده میکند.
سه نمونه GCS در طراحی وجود دارد:
- مشارکتهای دستگاه: مشارکتهای دستگاه رمزگذاریشده آپلود شده از دستگاهها.
- مدل ها: طرح های آموزشی، مدل ها و وزن آنها.
- گرادیان های انباشته: گرادیان های انباشته ای که توسط تجمیع کننده تولید می شود.
داده های ذخیره شده در GCS عبارتند از:
- برنامهنویس دادههایی مانند یک طرح آموزشی OR ارائه میکند
- دادههای بالقوه خصوصی، زیرا از سیگنالهای کاربر (محافظتشده توسط رمزگذاری با پشتوانه هماهنگکنندههای متعدد) مانند گرادیانهای آپلود شده دستگاه و گرادیانهای انبوه یا
- دادههای غیرخصوصی که از سیگنالهای کاربر به دست میآیند، اما برنامههای Differential Privacy را ارسال میکنند، مانند وزنهای مدل.
شما باید مبادلات بین سازگاری و در دسترس بودن را ارزیابی کنید و ویژگی های در دسترس بودن و دوام داده GCS مناسب را انتخاب کنید. شما باید سیاست های حفظ داده های خود را مشخص کنید.
تکرار و پشتیبان گیری
جدا از مکانیسمهای تکثیر داده ارائه شده توسط Google Cloud، میتوانید به صورت دورهای از دادهها در Spanner و GCS نسخه پشتیبان تهیه کنید. به عنوان مثال، می توانید از خدمات و پیشنهادات تکرار ابری استفاده کنید. ODP نمونه ای ارائه نمی دهد زیرا این پیکربندی ها به شدت به نیازهای تجاری وابسته هستند. طراحی فعلی نیازهای بالقوه توسعه دهندگان را برای چنین تکرارها و نسخه های پشتیبان در نظر می گیرد. در نتیجه، با خدمات و محصولات مشابه و پشتیبان ارائه شده توسط شخص ثالث سازگار است.