MLOps и ТОП-7 фреймворков для федеративного машинного обучения

MLOps примеры курсы обучение, федеративное машинное обучение, MLOps фреймворки, курсы Data Science примеры обучение, курсы Machine Learning примеры обучение, обучение большим данным, Школа Больших Данных Учебный Центр Коммерсант

Сегодня в области Data Science именно машинное обучение является такой одновременно научной и прикладной сферой, где постоянно возникают новые прорывные идеи и технологии их реализации. Одной из самых популярных ML-тем сегодня считается федеративное машинное обучение. Что это такое и при чем здесь хайповый MLOps, читайте далее.

Что такое федеративное машинное обучение

Впервые идеи федеративного Machine Learning были представлены Google в 2017 году для улучшения прогнозирования текста на мобильной клавиатуре с использованием моделей машинного обучения, обученных на основе данных с нескольких устройств. Это не требует загрузки личных данных на центральный сервер для обучения моделей, что стало прорывом в традиционном ML для решения проблем c конфиденциальностью данных.

Федеративное обучение также называют совместным, поскольку ML-модели обучаются на нескольких децентрализованных периферийных устройствах или серверах, содержащих локальные выборки данных, без обмена ими. Этот подход отличается от традиционных централизованных ML-методов, когда все локальные наборы данных загружаются на один сервер, а также от более классических децентрализованных подходов с одинаковом распределением локальных данных. Сегодня федеративное обучение активно применяется в оборонной промышленности, телекоммуникациях, фармацевтике и платформах Интернета вещей.

Первоначально федеративное обучение использовалось Google для решения проблем взаимодействия между компаниями и клиентами, но позже Federated Machine Learning стало активно использоваться и другими компаниями, устраняя конфликты между проблемами конфиденциальности данных и потребностями в их совместном использовании. ML-модели отправляются в данные, а не наоборот, что устраняет сбор и передачу данных на центральный сервер, которые представляют собой угрозу безопасности. Соображения конфиденциальности и правила предотвращают и ограничивают перемещение данных, поэтому защита конфиденциальности пользователей обеспечивается за счет обучения моделей источникам данных, а не передачи необработанных данных на централизованный сервер.

С точки зрения фич и распределения идентификаторов образцов датасетов федеративное ML делят на горизонтальное, вертикальное и трансферное обучение, а также межсистемное обучение, модельно-ориентированное, ориентированное на данные и пр. Например, с горизонтальными данными доступные наборы данных имеют согласованный набор фич, но различаются выборками. Например, банки в Москве и в Тюмени предлагают аналогичные финансовые онлайн-услуги, но имеют совершенно разные группы пользователей из-за разницы в местоположении. Характеристики данных почти идентичны, а пересечение пользовательских датасетов небольшое. В этом случае каждый банк обучает свои ML-модели локально и отправляет зашифрованные результаты на сервер для обучения универсальной модели Machine Learning. Оба банки получат новую ML-модель после того, как сервер агрегирует результаты.

Вертикальное федеративное обучение позволяет крупным компаниям существенно расширить и обогатить клиентский опыт через сотрудничество с фирмами из других доменов, чтобы предлагать своим пользователям более персонализированные услуги без ущерба для конфиденциальности. Вертикальное федеративное обучение применимо к случаям, когда наборы данных взяты из одних и тех же образцов, но имеют очень разные характеристики. Например, банк сотрудничает с интернет-магазином, чтобы создать модель прогнозирования покупок финансовых продуктов. Банк регистрирует доходы, расходы и кредитную историю клиентов, в а ecommerce-партнер имеет историю просмотров и покупок клиентов, включая их конфиденциальные личные данные. В этом случае применяется вертикальное федеративное обучение для объединения различных фич, вычисления потерь и градиентов при обучении с сохранением конфиденциальности. Зашифрованные идентификаторы пользователей выравниваются, чтобы подтвердить пересечение клиентов из банка и интернет-магазина. При этом компании-партнеры не взаимодействуют друг с другом напрямую: вместо этого они отправляют друг другу маскированные результаты обучения ML-моделей, возвращая расшифрованные градиенты и потери вычислительных алгоритмов после обучения общей глобальной модели.

Трансферное обучение подходит для компаний, у которых почти нет пересекающихся клиентов, т.к. они работают в разных доменах и регионах. Федеративное трансферное ML заполняет недостающие метки из предварительно обученной модели, чтобы расширить масштаб доступных данных и, по сути, представляет собой комбинацию вертикального и горизонтального обучения. Например, федеративное трансферное обучение оптимизирует модель прогнозирования на стороне целевого домена B, используя знания стороны исходного домена A, изучая общее представление фич между A и B.

Федеративное машинное обучение, курсы Data Science, обучение Machine Learning
Федеративное машинное обучение

В федеративном Machine Learning модели обучаются на нескольких локальных датасетах на локальных узлах без явного обмена данными, но с периодическим обменом параметрами, например, весами и смещениями глубокой нейросети между локальными узлами для создания общей глобальной модели. В отличие от распределенного обучение, изначально направленного на распараллеливание вычислений, федеративное нацелено на обучение разнородным наборам данных. В федеративном ML наборы данных обычно сильно неоднородны по размеру. А клиенты, т.е. конечные устройства, где обучаются локальные модели, могут быть ненадежными и больше подвержены сбоям, чем в системах распределенного обучения, где узлами являются центры обработки данных с мощными вычислительными возможностями. Поэтому, чтобы обеспечить распределенные вычисления и синхронизацию его результатов, федеративное ML требует частого обмена данными между узлами.

Несмотря на отмеченные достоинства, федеративное машинное обучение имеет ряд недостатков:

  • неоднородность между различными локальными наборами данных — каждый узел имеет погрешность по отношению к генеральной совокупности, а размеры выборок могут значительно различаться;
  • временная неоднородность — распределение каждого локального датасета меняется со временем;
  • необходимо обеспечить совместимость набора данных на всех узлах;
  • скрытие обучающих датасетов чревато риском внедрения уязвимостей в глобальную модель;
  • отсутствие доступа к глобальным обучающим данным затрудняет выявление нежелательных предубеждений во входных данных для обучения;
  • есть риск потери обновлений локальных ML-моделей из-за сбоев на отдельных узлах, что может повлиять на глобальную модель.

Сократить влияние этих проблем на результаты федеративного обучения помогают специализированные платформы, где в качестве инструментальных средств также применяются MLOps-решения, о которых мы поговорим далее.

MLOps-инструменты для Federated Machine Learning

Хотя ставить знак равенства между федеративным машинным обучением и MLOps не совсем корректно, не удивительно, что эти идеи становятся более эффективны в случае их совместного использования. Напомним, MLOps – это набор инженерных практик для эффективного и непрерывного процесса автоматизированной разработки, развертывания и сопровождения ML-систем, который объединяет идеи и инструментальные средства для комплексного и согласованного управления версиями вычислительных алгоритмов, данных, программного кода и инфраструктуры. Поскольку федеративное машинное обучение предполагает непрерывную синхронизацию локальных моделей, MLOps-концепция отлично подойдет для этих целей. Это используется в следующих популярных платформах для федеративного машинного обучения:

  • FATE (Federated AI Technology Enabler) — проект с открытым исходным кодом для поддержки безопасной и федеративной ИИ-экосистемы. FATE доступен для автономных и кластерных развертываний. Эта платформа поддерживается WeBank, частным банком Китая. Помимо средств разработки конвейеров и дэшбордов, FATE также включает инфраструктуру распределенных систем для управления федеративными рабочими нагрузками с настройкой развертывания кластера docker-compose и Kubernetes.
  • Substra — это программная платформа для федеративного обучения, разработанная в рамках французского медтех-стартапа Owkin, основанного в 2016 году. Сегодня Substra используется в проекте MELLODY по поиску лекарств в фармацевтической промышленности. Substra поддерживает множество интерфейсов для разных типов пользователей: библиотеки Python для Data Scientist’ов, CLI-интерфейсы для администраторов и GUI для бизнес-пользователей. С точки зрения развертывания Substra включает в себя сложную настройку Kubernetes для каждого узла. Substra использует доверенные среды выполнения (анклавы), которые позволяют выделять частные области для кода и данных. Для обеспечения отслеживаемости Substra записывает все операции на платформе в неизменяемый реестр, а для безопасности шифрует обновления модели, данные и сетевую связь.
  • Python-библиотеки PySyft и PyGrid. PySyft определяет объекты, алгоритмы машинного обучения и абстракции. С PySyft нельзя работать над реальными проблемами, которые связаны с обменом данными по сети. Для этого нужна библиотека PyGrid, которая реализует федеративное обучение на мобильных и периферийных устройствах, а также различных типах терминалов. PyGrid — это API для масштабного управления и развертывания PySyft. PyGrid состоит из приложения на основе Flask для хранения личных данных и моделей федеративного обучения, эфемерного вычислительного инстанса, управляемого компонентами домена для выполнения вычислений с данными и еще одного Flask-приложения для мониторинга и управления различными компонентами домена.
  • Open FL — проект Python 3 с открытым исходным кодом от Intel для реализации FL на конфиденциальных данных. OpenFL имеет сценарии развертывания в bash и использует сертификаты для защиты связи. Библиотека состоит из соавтора, который использует локальный набор данных для обучения глобальных моделей, и агрегатора, который получает обновления модели и объединяет их для создания глобальной модели. OpenFL поставляется с Python API и интерфейсом командной строки. Связь между узлами осуществляется с использованием mTLS, поэтому требуются сертификаты. Необходимо сертифицировать каждый узел в федерации. OpenFL поддерживает сжатие данных с потерями и без потерь для снижения затрат на связь, позволяя разработчикам настраивать логирование, методы разделения данных и логику агрегирования. Дизайн OpenFL основан на плане федеративного обучения – файле YAML, где определяются необходимые соавторы, агрегаторы, соединения, модели, данные и любая необходимая конфигурация. OpenFL работает в Docker-контейнерах для изоляции федеративных сред.
  • TensorFlow Federated (TFF) — платформа с открытым исходным кодом для машинного обучения и других вычислений с децентрализованными данными. Фреймворк состоит из двух основных уровней API: уровня ядра (Core) и самого федеративного обучения. Core API представляет собой среду программирования для реализации распределенных вычислений. Каждое вычисление выполняет сложные задачи и обменивается данными по сети для координации и согласования, используя абстракцию псевдокода для выражения локального исполняемого файла программы в различных целевых средах выполнения (мобильные устройства, датчики, компьютеры, встроенные системы и пр.). Высокоуровневый API федеративного обучения поверх Core позволяет подключать существующие ML-модели к TFF без сильного углубления в детали технологии. В этот API входят модели (классы и вспомогательные функции), функции создания федеративных вычислений и готовые наборы данных для использования в различных сценариях моделирования. Разделение уровней между FL и FC предназначено для облегчения работы, выполняемой разными пользователями. Federated Learning API помогает разработчикам внедрять ML-модели FL в TensorFlow, а Data Scientist’ам — внедрять новые алгоритмы, тогда как Core API предназначен для системных исследователей. О другом фреймворке глубокого обучения на основе TensorFlow читайте в нашей новой статье.

  • IBM Federated Learning предоставляет базовую структуру для федеративного обучения, куда можно добавлять расширенные фичи. Он не зависит от какой-либо конкретной ML-платформы и поддерживает различные топологии обучения, чтобы использовать множество моделей федеративного обучения и топологий в корпоративных и гибридных облачных средах. IBM Federated Learning поддерживает модели на Keras, PyTorch и TensorFlow, линейные классификаторы/регрессии (с регуляризатором), деревья решений ID3, алгоритмы глубокого обучения с подкреплением и наивные байесовские модели.
  • NVIDIA CLARA — это платформа приложений для здравоохранения, которая включает полнофункциональные библиотеки с ускорением на GPU, пакеты SDK и справочные приложения для разработчиков, Data Scientist’ов и аналитиков для создания безопасных и масштабируемых федеративных обучающих решений в режиме реального времени. Например, CLARA применяется во французском стартапе Therapixel, который использует технологию NVIDIA для повышения точности диагностики рака молочной железы.

Читайте в нашей новой статье про еще одно перспективное направление в области инженерии данных и машинного обучения — ModelOps. А как применить лучшие практики MLOps в реальных проектах для эффективной аналитики больших данных, вы узнаете на специализированных курсах в нашем лицензированном учебном центре обучения и повышения квалификации для разработчиков, менеджеров, архитекторов, инженеров, администраторов, Data Scientist’ов и аналитиков Big Data в Москве:

Я даю свое согласие на обработку персональных данных и соглашаюсь с политикой конфиденциальности.

Источники

  1. https://openzone.medium.com/a-brief-introduction-to-federated-learning-fl-series-part-1-b81c6ec15fb8
  2. https://wiki5.ru/wiki/Federated_learning
  3. https://www.apheris.com/blog-top7-open-source-frameworks-for-federated-learning
  4. https://www.tensorflow.org/federated

 

Поиск по сайту