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