Обзор

FATE-Operator упрощает развертывание и выполнение заданий федеративного машинного обучения (FML) в Kubernetes. Это ранняя версия, все предложения и пожелания важны для нас. Поднятие вопросов приветствуется.

Задний план

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

В последнее время FML вызвал значительный интерес из-за его эффективности для решения проблем с хранилищами данных и сохранения конфиденциальности данных. Компании, участвовавшие в федеративном машинном обучении, включают 4Paradigm, Ant Financial, Data Republic, Google, Huawei, Intel, JD.com, Microsoft, Nvidia, OpenMind, Pingan Technology, Sharemind, Tencent, VMware, Webank и т. д.

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

FATE (Federated AI Technology Enabler) — это проект с открытым исходным кодом, инициированный Webank, теперь размещенный в Linux Foundation. FATE — единственная платформа FML с открытым исходным кодом, которая в настоящее время поддерживает как горизонтальный, так и вертикальный FML. Дизайн архитектуры FATE ориентирован на предоставление платформы FML для предприятий. KubeFATE — это проект с открытым исходным кодом для развертывания FATE в Kubernetes и проверенное эффективное решение для сценариев использования FML.

Больше технологий федеративного машинного обучения смотрите в Справочном разделе

Предложение по дизайну Fate-operator можно найти в kubeflow/community/fate-operator-proposal.md.

Краткое руководство пользователя

Установка

Оператор судьбы можно установить, выполнив следующие действия.

Установите CRD в Kubernetes

$ make install

Удалите CRD из Kubernetes

$ make uninstall

Изображения контроллера здания

Образы Docker создаются и отправляются в Dockerhub. судьба-оператор

Кроме того, мы можем создавать образы вручную с помощью команд,

$ make docker-build

Развертывание контроллера

$ make deploy

Развертывание KubeFATE

KubeFATE — это служба управления инфраструктурой для нескольких кластеров FATE в одной организации. Он будет развернут только один раз. Чтобы развернуть сервис KubeFATE, мы используем ссылку YAML на app_v1beta1_kubefate.yaml в качестве примера,

$ kubectl create -f ./config/samples/app_v1beta1_kubefate.yaml

Развертывание FATE

FATE — это кластер, в котором мы запускаем задания FML. Чтобы развернуть кластер FATE, мы используем YAML, например, app_v1beta1_fatecluster.yaml,

$ kubectl create -f ./config/samples/app_v1beta1_fatecluster.yaml

Отправка задания FML

После развертывания кластера KubeFATE и FATE мы можем отправить задание FML с файлом конфигурации FateJob. В текущей версии задание FATE состоит из DSL pipeline и Module Config двух частей. Подробности см. в app_v1beta1_fatejob.yaml.

kubectl create -f ./config/samples/app_v1beta1_fatejob.yaml

В этом примере будет обработана только операция secure add. Для получения дополнительных примеров мы можем обратиться к Примеры FATE. В каждом примере файлы заканчиваются на _dsl, например. https://github.com/FederatedAI/FATE/blob/master/examples/federatedml-1.x-examples/hetero_linear_regression/test_hetero_linr_cv_job_dsl.json — конвейер заданий и что нужно указать в поле pipeline; и файлы заканчиваются на _conf, например. https://github.com/FederatedAI/FATE/blob/master/examples/federatedml-1.x-examples/hetero_linear_regression/test_hetero_linr_cv_job_conf.json — это конфигурация каждого компонента и то, что должно быть указано в поле modulesConf.

Проверка статуса созданного ресурса

Статус созданного ресурса можно отслеживать с помощью команды kubectl get,

$ kubectl get kubefate,fatecluster,fatejob -A -o yaml

Ссылка

  1. Цян Ян, Ян Лю, Тяньцзянь Чен и Юнсин Тонг. Федеративное машинное обучение: концепция и приложения. CoRR, abs/1902.04885, 2019. URL http://arxiv.org/abs/1902.04885
  2. Питер Кайруз и др. Достижения и открытые проблемы в федеративном обучении. Препринт arXiv arXiv: 1912.04977