Как правильно обучить вашу модель машинного обучения? Это определенно непростой вопрос, и он зависит от множества различных аспектов. Поскольку для полного анализа всех из них потребуется слишком много времени, мы сосредоточимся только на одном из них: количестве обучающих данных. Качество модели машинного обучения зависит от объема обучающих данных, используемых во время обучения. процесс. Небольшой объем данных может привести к созданию моделей с низкой точностью, которые нельзя будет использовать в действительности. В этом случае мы можем рассмотреть два варианта решения проблемы: (i) создать больше обучающих данных самостоятельно или (ii) увеличить объем обучающих данных, добавив больше источников данных того же типа. Если первый вариант невозможен (например, по техническим или экономическим причинам), вы можете изучить второй вариант, ища других субъектов с той же потребностью. Здесь вступает в игру концепция федерации. Суммируя:

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

Эта парадигма была первоначально введена Google и относится к различным устройствам, которые совместно изучают общую модель прогнозирования, сохраняя при этом все данные обучения на каждом устройстве, отделяя возможность машинного обучения от необходимости передачи данных. участники могут быть реализованы с разными уровнями сложности и должны учитывать другие нетехнические аспекты. В простейшем случае все данные концентрируются в одном месте, а операция обучения модели выполняется с использованием этого единого репозитория данных. В этом случае конфиденциальность и неприкосновенность частной жизни не должны быть строгими требованиями. Когда данные обучения не могут быть раскрыты (например, по коммерческим и / или юридическим причинам), необходимо принять более сложную конфигурацию. Каждый федеративный участник будет обучать модель машинного обучения локально (в своем помещении, чтобы не отправлять данные за пределы) и будет совместно использовать только параметры модели. Все модели, созданные участниками, собираются одним предметом, который объединяет их все и создает новую, включающую все вклады.

Платформа MUSKETEER

Основным результатом проекта MUSKETEER является реализация промышленной платформы данных с масштабируемыми алгоритмами для объединенных и сохраняющих конфиденциальность методов машинного обучения. Решение основано на объединении ряда заинтересованных сторон, совместно участвующих в построении модели машинного обучения. Должны быть назначены различные роли: (i) агрегатор, запускающий процесс и отвечающий за вычисление окончательной модели машинного обучения; (ii) участники, участвующие в едином процессе модели машинного обучения, построенном с использованием их собственных (локальных) наборов данных для обучения. С точки зрения архитектуры, платформа MUSKETEER обеспечивает взаимодействие между несколькими распределенными системами больших данных (участники федерации ), предоставляя механизм для отправки и получения моделей машинного обучения. Этот механизм взаимодействия основан на принципах, определенных Международной ассоциацией пространства данных и формализованных в их эталонной модели архитектуры [1]. Архитектура платформы MUSKETEER состоит из серверной и клиентской сторон. Серверная часть размещается в облаке и использует очереди сообщений для асинхронного обмена информацией между участниками федерации, которые обычно географически распределены. Одним из основных направлений деятельности серверного компонента является координация обмена моделями машинного обучения между участниками и агрегаторами. Помимо обмена информацией для выполнения фактических задач федеративного обучения, серверная сторона также предоставляет услуги для управления задачами на протяжении всего их жизненного цикла, например: создание новых задач, просмотр созданных задач, агрегирование задач, присоединение к задачам в качестве участника или удаление задач. . Мета-информация, необходимая для управления задачами, хранится в облачной базе данных.

Компоненты клиентского коннектора MUSKETEER

Клиентская сторона представлена ​​клиентским соединителем MUSKETEER, который представляет собой автономный компонент, который каждый пользователь должен развернуть локально, чтобы вступить в федерацию с платформой MUSKETEER.

Теперь мы рассмотрим случай, когда данные обучения хранятся локально (например, на жестких дисках, NAS или съемных устройствах, подключенных к одному компьютеру), и мы хотим использовать их для создания прогнозных моделей без явной передачи наборов данных за пределы нашей системы. . В этом случае клиентский коннектор MUSKETEER можно развернуть в любой среде с помощью Docker, чтобы контейнеризовать само приложение клиентского коннектора. Контейнеры Docker обеспечивают легкий, автономный и исполняемый пакет программного обеспечения, который включает все необходимое для запуска MUSKETEER Client Connector: операционную систему, код, среду выполнения, системные инструменты, библиотеки и настройки. Таким образом, все приложение можно легко сделать доступным в изолированной программной среде, которая работает в основной операционной системе пользователя.

MUSKETEER Client Connector состоит из пяти основных компонентов и двух дополнительных, которые загружаются (как внешние плагины) после запуска и запуска приложения: коммуникационный мессенджер и объединенная библиотека машинного обучения.

  1. Пользовательский интерфейс - это локальное веб-приложение, которое выполняет набор функций, основными из которых являются: (i) доступ к целевой серверной платформе; (ii) для подключения локальных данных для выполнения обучения объединенной модели машинного обучения; (iii) управлять различными задачами для участия в федерации.
  2. Серверная часть клиента действует как веб-служба RESTful, которая обрабатывает все запросы пользователей, начиная от локальных операций (например, для подключения пользовательских данных к клиентскому коннектору) до операций на сервере (например, для управления задачами и пользователями); эти операции должны использовать библиотеку Communication Messenger для связи с целевым внешним сервером.
  3. Соединитель данных соединяет пользовательские данные, которые могут поступать из разных источников или уровней хранения, с клиентским соединителем. Помимо подключения данных из разных типов источников, компонент может управлять и поддерживать различные типы данных: фактически, пользователь может загружать табличные данные CSV из файловой системы, файлы изображений, двоичные данные, таблицу из базы данных и т. Д. на.
  4. Абстрактный коммуникационный интерфейс позволяет импортировать и использовать реализацию коммуникационной библиотеки. В проекте MUSKETEER в качестве библиотеки Communication Messenger используется библиотека pycloudmessenger, разработанная IBM (доступна по адресу https://github.com/IBM/pycloudmessenger). После того, как такая библиотека настроена и установлена, клиентский коннектор MUSKETEER может использовать API-интерфейсы для связи с облачным сервером MUSKETEER, предоставленным IBM.
  5. Компонент выполнения создает и запускает алгоритмы федеративного машинного обучения в соответствии с интерфейсами, определенными библиотекой федеративного машинного обучения, импортированной в клиентский коннектор MUSKETEER. В проекте MUSKETEER импортированная библиотека FML предоставляется партнерами Treelogic и Мадридским университетом Карлоса III.

Попробуйте

Первый прототип MUSKETEER Client Connector доступен в виде программного обеспечения с открытым исходным кодом в репозиториях GitHub:

Серверная часть клиентского коннектора: https://github.com/Engineering-Research-and-Development/musketeer-client-connector-backend

Клиентский коннектор Frontend: https://github.com/Engineering-Research-and-Development/musketeer-client-connector-frontend

Вместе с исходным кодом вы также можете найти руководство по установке. Мы любезно приглашаем вас загрузить компоненты Client Connector и попробовать их, настроив свой тестовый пример процесса федеративного машинного обучения. Мы будем рады получить ваши комментарии и отзывы! Для этого вы можете использовать функции GitHub или напрямую отправить свое сообщение по адресу: musketeer-team [at] eng [точка] it

Сусанна Бонура

Лаборатория промышленных и защитных технологий, исследований и инноваций (IS3)

Инжиниринг Ingegneria Informatica spa

Этот проект получил финансирование от исследовательской и инновационной программы Европейского Союза Horizon 2020 в рамках грантового соглашения № 824988.

[1] https://www.internationaldataspaces.org/wp-content/uploads/2019/03/IDS-Reference-Architecture-Model-3.0.pdf