شعار زيفيرنت

التعلم الموحد على AWS باستخدام FedML وAmazon EKS وAmazon SageMaker | خدمات الويب الأمازون

التاريخ:

تمت كتابة هذا المنشور بالاشتراك مع Chaoyang He وAl Nevarez وSalman Avestimehr من FedML.

تطبق العديد من المؤسسات التعلم الآلي (ML) لتعزيز عملية صنع القرار في أعمالها من خلال الأتمتة واستخدام مجموعات البيانات الموزعة الكبيرة. مع زيادة الوصول إلى البيانات، يتمتع تعلم الآلة بالقدرة على توفير رؤى وفرص أعمال لا مثيل لها. ومع ذلك، فإن مشاركة المعلومات الحساسة الأولية وغير المنقحة عبر مواقع مختلفة يشكل مخاطر أمنية وخصوصية كبيرة، خاصة في الصناعات الخاضعة للتنظيم مثل الرعاية الصحية.

لمعالجة هذه المشكلة، يعد التعلم الموحد (FL) أسلوبًا تدريبيًا لامركزيًا وتعاونيًا على تعلم الآلة يوفر خصوصية البيانات مع الحفاظ على الدقة والإخلاص. على عكس تدريب ML التقليدي، يتم تدريب FL داخل موقع عميل معزول باستخدام جلسة آمنة مستقلة. يشارك العميل فقط معلمات نموذج الإخراج الخاص به مع خادم مركزي، يُعرف باسم منسق التدريب أو خادم التجميع، وليس البيانات الفعلية المستخدمة لتدريب النموذج. يخفف هذا النهج من العديد من المخاوف المتعلقة بخصوصية البيانات مع تمكين التعاون الفعال في التدريب النموذجي.

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

في هذا المنشور، نشارك نهج FL باستخدام FedML, خدمة أمازون مطاطا Kubernetes (أمازون إي كي إس)، و الأمازون SageMaker لتحسين نتائج المرضى مع معالجة خصوصية البيانات والمخاوف الأمنية.

الحاجة إلى التعلم الموحد في مجال الرعاية الصحية

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

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

نظرة عامة على حالة الاستخدام

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

مجموعة بيانات أمراض القلب من مستودع التعلم الآلي بجامعة كاليفورنيا في إيرفين، وهي مجموعة بيانات مستخدمة على نطاق واسع لأبحاث القلب والأوعية الدموية والنمذجة التنبؤية. وتتكون من 303 عينة، تمثل كل منها مريضًا، وتحتوي على مجموعة من السمات السريرية والديموغرافية، بالإضافة إلى وجود أمراض القلب أو عدم وجودها.

تحتوي مجموعة البيانات متعددة المتغيرات هذه على 76 سمة في معلومات المريض، منها 14 سمة تُستخدم بشكل شائع لتطوير وتقييم خوارزميات التعلم الآلي للتنبؤ بوجود أمراض القلب بناءً على السمات المحددة.

إطار عمل FedML

هناك مجموعة واسعة من أطر عمل FL، لكننا قررنا استخدام إطار عمل FedML لحالة الاستخدام هذه لأنها مفتوحة المصدر وتدعم العديد من نماذج FL. يوفر FedML مكتبة شعبية مفتوحة المصدر ومنصة MLOps ونظامًا بيئيًا للتطبيقات لـ FL. هذه تسهل تطوير ونشر حلول فلوريدا. يوفر مجموعة شاملة من الأدوات والمكتبات والخوارزميات التي تمكن الباحثين والممارسين من تنفيذ وتجربة خوارزميات FL في بيئة موزعة. يعالج FedML تحديات خصوصية البيانات والتواصل وتجميع النماذج في فلوريدا، مما يوفر واجهة سهلة الاستخدام ومكونات قابلة للتخصيص. ومن خلال تركيزه على التعاون وتبادل المعرفة، يهدف FedML إلى تسريع اعتماد لغة البرمجة وتحفيز الابتكار في هذا المجال الناشئ. إطار عمل FedML لا يعتمد على النماذج، بما في ذلك الدعم المُضاف مؤخرًا لنماذج اللغات الكبيرة (LLMs). لمزيد من المعلومات، راجع إطلاق FedLLM: قم ببناء نماذج لغوية كبيرة خاصة بك على بيانات الملكية باستخدام منصة FedML.

الأخطبوط FedML

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

FedML Octopus عبارة عن منصة من الدرجة الصناعية لـ cross-silo FL للتدريب عبر المنظمات والتدريب عبر الحسابات. إلى جانب FedML MLOps، فهو يمكّن المطورين أو المؤسسات من إجراء تعاون مفتوح من أي مكان وعلى أي نطاق وبطريقة آمنة. يدير FedML Octopus نموذجًا تدريبيًا موزعًا داخل كل صومعة بيانات ويستخدم تدريبات متزامنة أو غير متزامنة.

عمليات FedML MLOs

يتيح FedML MLOps التطوير المحلي للتعليمات البرمجية التي يمكن نشرها لاحقًا في أي مكان باستخدام أطر عمل FedML. قبل بدء التدريب، يجب عليك إنشاء حساب FedML، بالإضافة إلى إنشاء وتحميل حزم الخادم والعميل في FedML Octopus. لمزيد من التفاصيل، راجع سلم و تقديم FedML Octopus: توسيع نطاق التعلم الموحد إلى الإنتاج باستخدام MLOps المبسطة.

حل نظرة عامة

نقوم بنشر FedML في مجموعات EKS متعددة مدمجة مع SageMaker لتتبع التجارب. نحن نستخدم مخططات Amazon EKS لـ Terraform لنشر البنية التحتية المطلوبة. تساعد مخططات EKS في إنشاء مجموعات EKS كاملة تم تشغيلها بالكامل مع برنامج التشغيل اللازم لنشر أعباء العمل وتشغيلها. باستخدام مخططات EKS، يتم وصف التكوين للحالة المرغوبة لبيئة EKS، مثل مستوى التحكم وعقد العامل ووظائف Kubernetes الإضافية، على أنه مخطط بنية تحتية للتعليمات البرمجية (IaC). بعد تكوين المخطط، يمكن استخدامه لإنشاء بيئات متسقة عبر حسابات AWS ومناطق متعددة باستخدام أتمتة النشر المستمر.

يعكس المحتوى الذي تمت مشاركته في هذا المنشور مواقف وتجارب من الحياة الواقعية، ولكن من المهم ملاحظة أن نشر هذه المواقف في مواقع مختلفة قد يختلف. على الرغم من أننا نستخدم حساب AWS واحدًا مع VPCs منفصلة، ​​فمن المهم أن نفهم أن الظروف والتكوينات الفردية قد تختلف. ولذلك، ينبغي استخدام المعلومات المقدمة كدليل عام وقد تحتاج إلى تعديل بناءً على متطلبات محددة وظروف محلية.

يوضح الرسم البياني التالي بنية الحلول لدينا.

بالإضافة إلى التتبع الذي يوفره FedML MLOps لكل دورة تدريبية، نستخدم تجارب Amazon SageMaker لتتبع أداء كل نموذج عميل والنموذج المركزي (المجمع).

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

نرسل ما يلي إلى SageMaker Experiments لكل عملية تشغيل:

  • مقاييس التقييم النموذجية - فقدان التدريب والمنطقة تحت المنحنى (AUC)
  • معلمات هايبر – العصر، معدل التعلم، حجم الدفعة، المحسن، وتسوس الوزن

المتطلبات الأساسية المسبقة

لمتابعة هذا المنشور ، يجب أن يكون لديك المتطلبات الأساسية التالية:

انشر الحل

للبدء، انسخ المستودع الذي يستضيف نموذج التعليمات البرمجية محليًا:

git clone git@ssh.gitlab.aws.dev:west-ml-sa/fl_fedml.ai.git

ثم قم بنشر البنية التحتية لحالة الاستخدام باستخدام الأوامر التالية:

terraform init
terraform apply

قد يستغرق قالب Terraform من 20 إلى 30 دقيقة ليتم نشره بالكامل. بعد نشره، اتبع الخطوات الواردة في الأقسام التالية لتشغيل تطبيق FL.

قم بإنشاء حزمة نشر MLOps

كجزء من وثائق FedML، نحتاج إلى إنشاء حزم العميل والخادم، والتي ستقوم منصة MLOps بتوزيعها على الخادم والعملاء لبدء التدريب.

لإنشاء هذه الحزم، قم بتشغيل البرنامج النصي التالي الموجود في الدليل الجذر:

. ./build_mlops_pkg.sh

سيؤدي هذا إلى إنشاء الحزم المعنية في الدليل التالي في الدليل الجذر للمشروع:

mlops/dist-packages

قم بتحميل الحزم إلى منصة FedML MLOps

أكمل الخطوات التالية لتحميل الحزم:

  1. في واجهة مستخدم FedML، اختر تطبيقاتي في جزء التنقل.
  2. اختار تطبيق جديد.
  3. قم بتحميل حزم العميل والخادم من محطة العمل الخاصة بك.
  4. يمكنك أيضًا ضبط المعلمات الفائقة أو إنشاء معلمات جديدة.

إطلاق التدريب المتحد

لتشغيل التدريب الموحد، أكمل الخطوات التالية:

  1. في واجهة مستخدم FedML، اختر قائمة المشاريع في جزء التنقل.
  2. اختار قم بإنشاء مشروع جديد.
  3. أدخل اسم المجموعة واسم المشروع، ثم اختر OK.
  4. اختر المشروع الذي تم إنشاؤه حديثًا واختر إنشاء تشغيل جديد لبدء تشغيل التدريب.
  5. حدد أجهزة عميل Edge وخادم التجميع المركزي لتشغيل التدريب هذا.
  6. اختر التطبيق الذي قمت بإنشائه في الخطوات السابقة.
  7. قم بتحديث أي من المعلمات الفائقة أو استخدم الإعدادات الافتراضية.
  8. اختار آبدأ لبدء التدريب.
  9. اختيار حالة التدريب علامة التبويب وانتظر حتى يكتمل تشغيل التدريب. يمكنك أيضًا الانتقال إلى علامات التبويب المتاحة.
  10. عند اكتمال التدريب، اختر System انقر فوق علامة التبويب لمعرفة فترات التدريب على خوادم الحافة وأحداث التجميع.

عرض النتائج وتفاصيل التجربة

عند اكتمال التدريب، يمكنك عرض النتائج باستخدام FedML وSageMaker.

على واجهة مستخدم FedML، على الموديلات علامة التبويب، يمكنك رؤية نموذج المجمع والعميل. يمكنك أيضًا تنزيل هذه النماذج من الموقع.

يمكنك أيضا تسجيل الدخول إلى أمازون ساجميكر ستوديو واختر التجارب في جزء التنقل.

توضح لقطة الشاشة التالية التجارب المسجلة.

تجربة كود التتبع

في هذا القسم، نستكشف التعليمات البرمجية التي تدمج تتبع تجربة SageMaker مع التدريب على إطار عمل FL.

في محرر من اختيارك، افتح المجلد التالي لرؤية التعديلات على التعليمات البرمجية لإدخال تعليمات برمجية لتتبع تجربة SageMaker كجزء من التدريب:

cd fl_fedml.ai/

لتتبع التدريب، نحن إنشاء تجربة SageMaker مع المعلمات والمقاييس المسجلة باستخدام log_parameter و log_metric الأمر كما هو موضح في نموذج التعليمات البرمجية التالي.

إدخال في config/fedml_config.yaml يعلن الملف عن بادئة التجربة، والتي يتم الرجوع إليها في الكود لإنشاء أسماء تجارب فريدة: sm_experiment_name: "fed-heart-disease". يمكنك تحديث هذا إلى أي قيمة من اختيارك.

على سبيل المثال، راجع التعليمة البرمجية التالية لـ heart_disease_trainer.py، والذي يستخدمه كل عميل لتدريب النموذج على مجموعة البيانات الخاصة به:

# Add this code before the for loop on epochs
# We are passing the experiment prefix & client-rank from the config
# to the function to create a unique name
experiment_name = unique_name_from_base(args.sm_experiment_name + "-client-" + str(args.rank))
print(f"Sagemaker Experiment Name: {experiment_name}")

بالنسبة لكل تشغيل عميل، يتم تتبع تفاصيل التجربة باستخدام الكود التالي في heart_disease_trainer.py:

# create an experiment and start a new run
with Run(experiment_name=experiment_name, run_name=run_name, sagemaker_session=Session()) as run:
run.log_parameters(
{ "Train Data Size": str(len(train_data.dataset)),
"device": "cpu",
"center": args.rank,
"learning-rate": args.lr,
"batch-size": args.batch_size,
"client-optimizer" : args.client_optimizer,
"weight-decay": args.weight_decay
}
)
run.log_metric(name="Validation:AUC", value=epoch_auc)
run.log_metric(name="Training:Loss", value=epoch_loss)

وبالمثل، يمكنك استخدام الكود الموجود في heart_disease_aggregator.py لإجراء اختبار على البيانات المحلية بعد تحديث أوزان النموذج. يتم تسجيل التفاصيل بعد كل اتصال يتم مع العملاء.

# create an experiment and start a new run
with Run(experiment_name=experiment_name, run_name=run_name, sagemaker_session=Session()) as run:
run.log_parameters(
{ "Train Data Size": str(len(test_data_local_dict[i])),
"device": "cpu",
"round": i,
"learning-rate": args.lr,
"batch-size": args.batch_size,
"client-optimizer" : args.client_optimizer,
"weight-decay": args.weight_decay
}
)
run.log_metric(name="Test:AUC", value=test_auc_metrics)
run.log_metric(name="Test:Loss", value=test_loss_metrics)

تنظيف

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

terraform destroy -target=module.m_fedml_edge_server.module.eks_blueprints_kubernetes_addons -auto-approve
terraform destroy -target=module.m_fedml_edge_client_1.module.eks_blueprints_kubernetes_addons -auto-approve
terraform destroy -target=module.m_fedml_edge_client_2.module.eks_blueprints_kubernetes_addons -auto-approve

terraform destroy -target=module.m_fedml_edge_client_1.module.eks -auto-approve
terraform destroy -target=module.m_fedml_edge_client_2.module.eks -auto-approve
terraform destroy -target=module.m_fedml_edge_server.module.eks -auto-approve

terraform destroy

نبذة عامة

باستخدام Amazon EKS كبنية أساسية وFedML كإطار عمل لـ FL، نحن قادرون على توفير بيئة قابلة للتطوير وإدارتها للتدريب ونشر النماذج المشتركة مع احترام خصوصية البيانات. بفضل الطبيعة اللامركزية لتعلم اللغات، يمكن للمؤسسات التعاون بشكل آمن، وإطلاق العنان لإمكانات البيانات الموزعة، وتحسين نماذج تعلم الآلة دون المساس بخصوصية البيانات.

كما هو الحال دائمًا، ترحب AWS بتعليقاتك. يرجى ترك أفكارك وأسئلتك في قسم التعليقات.


حول المؤلف

راندي ديفوراندي ديفو هو مهندس الحلول الرئيسي الأول في AWS. وهو حاصل على ماجستير الهندسة المعمارية من جامعة ميشيغان، حيث عمل على الرؤية الحاسوبية للمركبات ذاتية القيادة. وهو حاصل أيضًا على ماجستير إدارة الأعمال من جامعة ولاية كولورادو. شغل راندي مجموعة متنوعة من المناصب في مجال التكنولوجيا، بدءًا من هندسة البرمجيات وحتى إدارة المنتجات. دخل مجال البيانات الضخمة في عام 2013 ويواصل استكشاف هذا المجال. وهو يعمل بنشاط على مشاريع في مجال تعلم الآلة وقد قدم عروضًا في العديد من المؤتمرات، بما في ذلك Strata وGlueCon.

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

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

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

هانز نيسبيت هو مهندس حلول أول في AWS ومقره في جنوب كاليفورنيا. إنه يعمل مع العملاء في جميع أنحاء غرب الولايات المتحدة لصياغة بنيات سحابية قابلة للتطوير ومرنة ومرنة للغاية. يستمتع في أوقات فراغه بقضاء الوقت مع عائلته والطهي والعزف على الجيتار.

تشاويانغ هي هو المؤسس المشارك والرئيس التنفيذي للتكنولوجيا لشركة FedML, Inc.، وهي شركة ناشئة تعمل على بناء مجتمع ذكاء اصطناعي مفتوح وتعاوني من أي مكان وعلى أي نطاق. تركز أبحاثه على خوارزميات وأنظمة وتطبيقات التعلم الآلي الموزعة والموحدة. حصل على درجة الدكتوراه في علوم الكمبيوتر من جامعة جنوب كاليفورنيا.

آل نيفاريز هو مدير إدارة المنتجات في FedML. قبل FedML، كان مديرًا لمجموعة المنتجات في Google، ومديرًا أول لعلوم البيانات في LinkedIn. لديه العديد من براءات الاختراع المتعلقة بمنتجات البيانات، ودرس الهندسة في جامعة ستانفورد.

سلمان افستيمهر هو المؤسس المشارك والرئيس التنفيذي لشركة FedML. لقد كان أستاذًا لعميد جامعة جنوب كاليفورنيا، ومدير مركز USC-Amazon للذكاء الاصطناعي الجدير بالثقة، وباحثًا في Amazon في Alexa AI. وهو خبير في التعلم الآلي الموحد واللامركزي ونظرية المعلومات والأمن والخصوصية. وهو زميل IEEE وحصل على درجة الدكتوراه في EECS من جامعة كاليفورنيا في بيركلي.

سمير لاد هو تقني مؤسسي بارع في AWS ويعمل بشكل وثيق مع المديرين التنفيذيين على المستوى C للعملاء. بصفته مديرًا تنفيذيًا سابقًا لمجموعة C-suite والذي قاد التحولات عبر العديد من شركات Fortune 100، يشارك سمير تجاربه التي لا تقدر بثمن لمساعدة عملائه على النجاح في رحلة التحول الخاصة بهم.

ستيفن كريمر هو مستشار مجلس الإدارة والرئيس التنفيذي ومدير تنفيذي سابق في AWS. يدعو ستيفن إلى الثقافة والقيادة كأساس للنجاح. إنه يصرح بأن الأمن والابتكار هما المحركان للتحول السحابي مما يمكّن المؤسسات ذات القدرة التنافسية العالية والقائمة على البيانات.

بقعة_صورة

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

بقعة_صورة