Інформація про дані Платона.
Вертикальний пошук і штучний інтелект.

Інтегроване навчання на AWS за допомогою FedML, Amazon EKS і Amazon SageMaker | Веб-сервіси Amazon

Дата:

Цей пост написано спільно з Чаоян Хе, Аль Неварезом і Салманом Авестімером з FedML.

Багато організацій впроваджують машинне навчання (ML), щоб покращити процес прийняття бізнес-рішень шляхом автоматизації та використання великих розподілених наборів даних. З розширеним доступом до даних ML має потенціал, щоб надати неперевершені бізнес-дослідження та можливості. Однак обмін необробленою конфіденційною інформацією в різних місцях створює значні ризики для безпеки та конфіденційності, особливо в регульованих галузях, таких як охорона здоров’я.

Щоб вирішити цю проблему, федеративне навчання (FL) є децентралізованою та спільною технікою навчання ML, яка забезпечує конфіденційність даних, зберігаючи при цьому точність і достовірність. На відміну від традиційного навчання ML, навчання FL відбувається в ізольованому місці клієнта за допомогою незалежного безпечного сеансу. Клієнт надає централізованому серверу, відомому як координатор навчання або сервер агрегації, лише параметри вихідної моделі, а не фактичні дані, які використовуються для навчання моделі. Такий підхід усуває багато проблем із конфіденційністю даних, одночасно забезпечуючи ефективну співпрацю над навчанням моделі.

Хоча FL є кроком до досягнення кращої конфіденційності та безпеки даних, це не гарантоване рішення. Незахищені мережі, у яких відсутній контроль доступу та шифрування, все одно можуть відкрити конфіденційну інформацію для зловмисників. Крім того, локально навчена інформація може відкрити приватні дані, якщо їх реконструювати за допомогою атаки логічного висновку. Щоб зменшити ці ризики, модель FL використовує персоналізовані алгоритми навчання та ефективне маскування та параметризацію перед обміном інформацією з координатором навчання. Суворі засоби контролю мережі в локальних і централізованих місцях можуть ще більше зменшити ризики висновків і вилучення.

У цій публікації ми поділимося підходом FL FedML, Послуга Amazon Elastic Kubernetes (Amazon EKS), і Amazon SageMaker покращити результати для пацієнтів, одночасно вирішуючи питання конфіденційності та безпеки даних.

Необхідність федеративного навчання в охороні здоров'я

Охорона здоров’я значною мірою покладається на розподілені джерела даних, щоб робити точні прогнози та оцінки догляду за пацієнтами. Обмеження доступних джерел даних для захисту конфіденційності негативно впливає на точність результатів і, зрештою, на якість обслуговування пацієнтів. Таким чином, ML створює проблеми для клієнтів AWS, яким потрібно забезпечити конфіденційність і безпеку в розподілених об’єктах без шкоди для пацієнтів.

Упроваджуючи рішення FL, організації охорони здоров’я повинні керуватися суворими правилами відповідності, наприклад Законом про перенесення та підзвітність медичного страхування (HIPAA) у Сполучених Штатах. Забезпечення конфіденційності даних, безпеки та відповідності стає ще більш важливим у сфері охорони здоров’я, вимагаючи надійного шифрування, контролю доступу, механізмів аудиту та безпечних протоколів зв’язку. Крім того, набори даних охорони здоров’я часто містять складні та різнорідні типи даних, що робить стандартизацію даних і сумісність проблемою в налаштуваннях FL.

Огляд варіантів використання

Варіант використання, описаний у цій публікації, стосується даних про захворювання серця в різних організаціях, на основі яких модель ML запускатиме алгоритми класифікації для прогнозування захворювань серця у пацієнта. Оскільки ці дані є різними організаціями, ми використовуємо інтегроване навчання, щоб порівняти результати.

Команда Набір даних про хвороби серця зі сховища машинного навчання Каліфорнійського університету в Ірвайні – це набір даних, який широко використовується для досліджень серцево-судинної системи та прогнозного моделювання. Він складається з 303 зразків, кожен з яких представляє пацієнта, і містить комбінацію клінічних і демографічних ознак, а також наявність або відсутність захворювання серця.

Цей багатовимірний набір даних містить 76 атрибутів в інформації про пацієнта, з яких 14 атрибутів найчастіше використовуються для розробки та оцінки алгоритмів ML для прогнозування наявності серцевих захворювань на основі даних атрибутів.

Фреймворк FedML

Існує широкий вибір фреймворків FL, але ми вирішили використати Фреймворк FedML для цього випадку використання, оскільки він є відкритим кодом і підтримує кілька парадигм FL. FedML надає популярну бібліотеку з відкритим кодом, платформу MLOps та екосистему програм для FL. Це полегшує розробку та розгортання рішень FL. Він надає комплексний набір інструментів, бібліотек і алгоритмів, які дозволяють дослідникам і практикам впроваджувати та експериментувати з алгоритмами FL у розподіленому середовищі. FedML вирішує проблеми конфіденційності даних, зв’язку та агрегації моделей у FL, пропонуючи зручний інтерфейс і настроювані компоненти. Зосереджуючись на співпраці та обміні знаннями, FedML прагне прискорити впровадження FL та стимулювати інновації в цій новітній галузі. Фреймворк FedML не залежить від моделі, включаючи нещодавно додану підтримку великих мовних моделей (LLM). Для отримання додаткової інформації див Випуск FedLLM: створюйте власні великі мовні моделі на закритих даних за допомогою платформи FedML.

Восьминіг FedML

Системна ієрархія та неоднорідність є ключовою проблемою в реальних сценаріях використання FL, де різні бункери даних можуть мати різну інфраструктуру з ЦП і ГП. У таких сценаріях можна використовувати Восьминіг FedML.

FedML Octopus — це промислова платформа FL між різними організаціями та обліковими записами. У поєднанні з FedML MLOps це дозволяє розробникам або організаціям здійснювати відкриту співпрацю з будь-якого місця в будь-якому масштабі в безпечний спосіб. FedML Octopus запускає парадигму розподіленого навчання в кожному бункері даних і використовує синхронне або асинхронне навчання.

FedML MLOps

FedML MLOps дозволяє локально розробляти код, який пізніше можна розгорнути будь-де за допомогою фреймворків FedML. Перш ніж почати навчання, ви повинні створити обліковий запис FedML, а також створити та завантажити пакети сервера та клієнта в FedML Octopus. Для отримання додаткової інформації див кроки та Представляємо FedML Octopus: масштабування федеративного навчання у виробництво за допомогою спрощених MLOps.

Огляд рішення

Ми розгортаємо FedML у кількох кластерах EKS, інтегрованих із SageMaker, для відстеження експериментів. Ми використовуємо Чертежі Amazon EKS для Terraform для розгортання необхідної інфраструктури. EKS Blueprints допомагає створювати повні кластери EKS, які повністю завантажуються з операційним програмним забезпеченням, необхідним для розгортання та керування робочими навантаженнями. За допомогою EKS Blueprints конфігурація для бажаного стану середовища EKS, як-от контрольна площина, робочі вузли та надбудови Kubernetes, описується як проект інфраструктури як код (IaC). Після налаштування плану його можна використовувати для створення узгоджених середовищ у кількох облікових записах і регіонах AWS за допомогою автоматизації безперервного розгортання.

Вміст, опублікований у цій публікації, відображає реальні життєві ситуації та досвід, але важливо зазначити, що розгортання цих ситуацій у різних місцях може відрізнятися. Хоча ми використовуємо єдиний обліковий запис AWS з окремими VPC, важливо розуміти, що окремі обставини та конфігурації можуть відрізнятися. Таким чином, надану інформацію слід використовувати як загальний посібник і може вимагати адаптації на основі конкретних вимог і місцевих умов.

Наступна схема ілюструє нашу архітектуру рішення.

На додаток до відстеження, наданого FedML MLOps для кожного тренування, ми використовуємо Експерименти Amazon SageMaker відстежувати продуктивність кожної клієнтської моделі та централізованої моделі (агрегатора).

SageMaker Experiments — це можливість SageMaker, яка дозволяє створювати, керувати, аналізувати та порівнювати свої експерименти МЛ. Записуючи деталі експерименту, параметри та результати, дослідники можуть точно відтворити та підтвердити свою роботу. Це дозволяє ефективно порівнювати та аналізувати різні підходи, що веде до прийняття обґрунтованих рішень. Крім того, відстеження експериментів полегшує ітераційне вдосконалення, надаючи розуміння прогресу моделей і дозволяючи дослідникам вчитися на попередніх ітераціях, що зрештою прискорює розробку більш ефективних рішень.

Для кожного запуску ми надсилаємо в SageMaker Experiments наступне:

  • Метрики оцінки моделі – Втрата під час тренування та площа під кривою (AUC)
  • Гіперпараметри – Епоха, швидкість навчання, розмір партії, оптимізатор і зниження ваги

Передумови

Щоб виконувати цю публікацію, ви повинні мати такі передумови:

Розгорніть рішення

Для початку клонуйте репозиторій, у якому розміщено приклад коду:

git clone https://github.com/aws-samples/federated-learning-with-fedml-on-aws

Потім розгорніть інфраструктуру варіантів використання за допомогою таких команд:

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. Виберіть периферійні клієнтські пристрої та центральний сервер-агрегатор для цього навчального запуску.
  6. Виберіть програму, яку ви створили на попередніх кроках.
  7. Оновіть будь-які гіперпараметри або використовуйте параметри за замовчуванням.
  8. Вибирати Start щоб почати навчання.
  9. Виберіть Статус навчання і дочекайтеся завершення тренувального запуску. Ви також можете переходити до доступних вкладок.
  10. Після завершення навчання виберіть SYSTEM вкладку, щоб переглянути тривалість навчання на ваших периферійних серверах і події агрегації.

Переглянути результати та деталі експерименту

Після завершення навчання ви зможете переглянути результати за допомогою FedML і SageMaker.

В інтерфейсі користувача FedML на моделі Ви можете побачити модель агрегатора та клієнта. Ви також можете завантажити ці моделі з веб-сайту.

Ви також можете увійти до Студія Amazon SageMaker І вибирай Досліди у навігаційній панелі.

На наступному знімку екрана показано зареєстровані експерименти.

Код відстеження експерименту

У цьому розділі ми досліджуємо код, який інтегрує відстеження експерименту SageMaker із навчанням FL framework.

У редакторі за вашим вибором відкрийте таку папку, щоб переглянути редагування коду для введення коду відстеження експерименту 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, ми можемо забезпечити масштабоване та кероване середовище для навчання та розгортання спільних моделей, дотримуючись конфіденційності даних. Завдяки децентралізованому характеру FL організації можуть безпечно співпрацювати, розкривати потенціал розподілених даних і вдосконалювати моделі ML без шкоди для конфіденційності даних.

Як завжди, AWS раді вашим відгукам. Будь ласка, залишайте свої думки та запитання в розділі коментарів.


Про авторів

Ренді ДеФоРенді ДеФо є старшим головним архітектором рішень в AWS. Він має ступінь MSEE Мічиганського університету, де працював над комп’ютерним зором для автономних транспортних засобів. Він також має ступінь магістра ділового адміністрування в Університеті штату Колорадо. Ренді обіймав різні посади в технологічному просторі, починаючи від розробки програмного забезпечення та закінчуючи управлінням продуктами. Він увійшов у простір великих даних у 2013 році та продовжує досліджувати цю сферу. Він активно працює над проектами у сфері машинного навчання та виступає з доповідями на численних конференціях, зокрема Strata та GlueCon.

Арнаб Сінга є старшим архітектором рішень для AWS, виконуючи обов’язки технічного директора на місцях, щоб допомогти організаціям розробляти та створювати масштабовані рішення, що підтримують бізнес-результати щодо міграції центрів обробки даних, цифрової трансформації та модернізації додатків, великих даних та машинного навчання. Він підтримував клієнтів у різних галузях, включаючи енергетику, роздрібну торгівлю, виробництво, охорону здоров’я та науки про життя. Арнаб має всі сертифікати AWS, у тому числі спеціальність ML. До того як приєднатися до AWS, Арнаб був технологічним лідером, а раніше обіймав керівні посади архітектора та інженера.

Прачі Кулкарні є старшим архітектором рішень в AWS. Її спеціалізація — машинне навчання, і вона активно працює над розробкою рішень із використанням різноманітних пропозицій AWS ML, великих даних і аналітики. Прачі має досвід роботи в багатьох сферах, включаючи охорону здоров’я, пільги, роздрібну торгівлю та освіту, і працював на низці посад у розробці та архітектурі продуктів, управлінні та успіху клієнтів.

Тамер Шериф є головним архітектором рішень в AWS, має різноманітний досвід у сфері технологій і консультаційних послуг для підприємств, охоплюючи понад 17 років роботи архітектором рішень. Зосереджуючись на інфраструктурі, експертиза Tamer охоплює широкий спектр галузевих галузей, включаючи комерційну, охорону здоров’я, автомобільну, державний сектор, виробництво, нафту та газ, медіа-послуги тощо. Його майстерність поширюється на різні сфери, такі як хмарна архітектура, периферійні обчислення, мережі, зберігання, віртуалізація, продуктивність бізнесу та технічне лідерство.

Ганс Несбітт є старшим архітектором рішень в AWS із Південної Каліфорнії. Він працює з клієнтами по всій західній частині США над розробкою високомасштабованих, гнучких і стійких хмарних архітектур. У вільний час любить проводити час із сім’єю, готувати їжу та грати на гітарі.

Чаоян Хе є співзасновником і технічним директором FedML, Inc., стартапу, який працює для спільноти, яка створює відкритий і спільний ШІ з будь-якого місця та будь-якого масштабу. Його дослідження зосереджені на розподілених і об’єднаних алгоритмах машинного навчання, системах і програмах. Він отримав ступінь доктора філософії з комп’ютерних наук в Університеті Південної Каліфорнії.

Аль Неварес є директором з управління продуктами FedML. До FedML він був менеджером групи продуктів у Google і старшим менеджером з обробки даних у LinkedIn. Він має кілька патентів, пов’язаних із продуктами обробки даних, і вивчав інженерію в Стенфордському університеті.

Салман Авестимер є співзасновником і генеральним директором FedML. Він був професором декана USC, директором центру USC-Amazon із надійного ШІ та стипендіатом Amazon в Alexa AI. Він є експертом із федеративного та децентралізованого машинного навчання, теорії інформації, безпеки та конфіденційності. Він є членом IEEE та отримав ступінь доктора філософії з EECS в Каліфорнійському університеті в Берклі.

Самір Лад є досвідченим корпоративним технологом з AWS, який тісно співпрацює з керівниками C-рівня клієнтів. Як колишній керівник старшого офісу, який керував трансформаціями в багатьох компаніях зі списку Fortune 100, Самір ділиться своїм безцінним досвідом, щоб допомогти своїм клієнтам досягти успіху на шляху трансформації.

Стівен Кремер є радником ради та керуючим директором і колишнім керівником AWS. Стівен виступає за культуру та лідерство як основи успіху. Він стверджує, що безпека та інновації є рушійними силами хмарної трансформації, що створює умови для висококонкурентних організацій, що керуються даними.

spot_img

Остання розвідка

spot_img

Зв'яжіться з нами!

Привіт! Чим я можу вам допомогти?