1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/paddlepaddle-PaddleFL

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

PaddleFL — это открытая платформа для федеративного обучения, основанная на PaddlePaddle. Исследователи могут легко воспроизводить и сравнивать различные алгоритмы федеративного обучения с помощью PaddleFL. Разработчики также могут извлечь выгоду из PaddleFL, поскольку систему федеративного обучения легко развернуть в крупномасштабных распределённых кластерах. В PaddleFL будет представлено несколько стратегий федеративного обучения для применения в компьютерном зрении, обработке естественного языка, рекомендациях и так далее. Будет обеспечено применение традиционных стратегий обучения машинному обучению, таких как многозадачное обучение и трансферное обучение в условиях федеративного обучения.

Основываясь на крупномасштабном распределённом обучении PaddlePaddle и эластичном планировании учебных заданий в Kubernetes, PaddleFL можно легко развернуть на основе программного обеспечения с открытым исходным кодом полного стека.

Обзор PaddleFL

В настоящее время данные становятся всё более дорогостоящими, а обмен необработанными данными между организациями очень затруднён. Федеративное обучение направлено на решение проблемы изоляции данных и безопасного обмена знаниями о данных между организациями. Концепция федеративного обучения была предложена исследователями Google [1, 2, 3]. PaddleFL реализует федеративное обучение на основе фреймворка PaddlePaddle. В PaddleFL будут представлены демонстрационные приложения для обработки естественного языка, компьютерного зрения и рекомендаций. PaddleFL поддерживает текущие две основные стратегии федеративного обучения [4]: вертикальное федеративное обучение и горизонтальное федеративное обучение. Многозадачное обучение [7] и трансфертное обучение [8] в федеративном обучении будут разработаны и поддержаны в PaddleFL в будущем.

  • Горизонтальное федеративное обучение: Федеративное усреднение [2], дифференциальная конфиденциальность [6], безопасное агрегирование [11]
  • Вертикальное федеративное обучение: двухстороннее обучение с PrivC [5], трёхстороннее обучение с ABY3 [10]

План выпуска новых функций

  • 2021.08: двустороннее федеративное обучение в вертикальном сценарии
  • 2021.Q4: версия GPU MPC, вертикальное федеративное обучение на основе разделяемого обучения

Архитектура PaddleFL

PaddleFL состоит в основном из двух компонентов: Data Parallel и Federated Learning with MPC (PFM).

С помощью Data Parallel владельцы распределённых данных могут выполнять свои задачи федеративного обучения на основе общих горизонтальных стратегий федеративного обучения, таких как FedAvg, DPSGD и т. д.

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

Data Parallel

В Data Parallel весь процесс обучения модели делится на два этапа: время компиляции и время выполнения. Компоненты для определения задачи федеративного обучения и обучения заданию федеративного обучения следующие:

А. Время компиляции

  • FL-Strategy: пользователь может определить стратегии федеративного обучения с FL-Strategy, такие как Fed-Avg [2]

  • User-Defined-Program: программа PaddlePaddle, которая определяет структуру модели машинного обучения и стратегии обучения, такие как многозадачное обучение.

  • Distributed-Config: в федеративном обучении система должна быть развёрнута в распределённых настройках. Distributed Training Config определяет информацию о узлах распределённого обучения.

  • FL-Job-Generator: учитывая FL-Strategy... Программа, определяемая пользователем, и распределённая конфигурация обучения

FL-задания для федеративного сервера и рабочего будут сгенерированы через FL Job Generator. FL-задания будут отправлены в организации и на федеративный сервер параметров для выполнения во время выполнения.

Выполнение

  • FL-сервер: Федеративный сервер параметров, который обычно работает в облаке или сторонних кластерах.

  • FL-рабочий: Каждая организация, участвующая в федеративном обучении, будет иметь одного или нескольких федеративных рабочих, которые будут взаимодействовать с федеративным сервером параметров.

  • FL-планировщик: Определяет, какой набор тренеров может присоединиться к обучению перед каждым циклом обновления.

Для получения дополнительных инструкций обратитесь к примерам (examples).

Федеративное обучение с MPC

PaddleFL MPC реализует безопасные задачи обучения и вывода на основе базового протокола MPC, такого как ABY3[10] и PrivC[5], которые являются высокоэффективными моделями многосторонних вычислений. В PaddeFL двухстороннее федеративное обучение на основе PrivC в основном поддерживает линейную/логистическую регрессию и модель DNN. Трёхстороннее федеративное обучение на базе ABY3 поддерживает линейную/логистическую регрессию, модель DNN, модель CNN и FM.

В PaddleFL MPC участники могут быть классифицированы по ролям: сторона ввода (IP), вычислительная сторона (CP) и сторона результата (RP). Стороны ввода (например, владельцы данных/моделей обучения) шифруют и распространяют данные или модели среди вычислительных сторон (в протоколе ABY3 существует три вычислительные стороны, а в протоколе PrivC — две). Вычислительные стороны (например, виртуальная машина в облаке) выполняют задачи обучения или вывода на основе конкретных протоколов MPC, имея возможность видеть только зашифрованные данные или модели, тем самым гарантируя конфиденциальность данных. Когда вычисление завершено, одна или несколько сторон результата (например, владельцы данных или указанная третья сторона) получают зашифрованные результаты от вычислительных сторон и восстанавливают результаты в открытом виде. Роли могут перекрываться, например, владелец данных может также выступать в роли вычислительной стороны.

Полный процесс обучения или вывода в PFM состоит из трёх основных этапов: подготовка данных, обучение/вывод и реконструкция результатов.

Подготовка данных

  • Согласование частных данных: PFM позволяет владельцам данных (IP) находить записи с одинаковыми ключами (такими как UUID), не раскрывая личные данные друг другу. Это особенно полезно в случаях вертикального обучения, когда сегментированные функции с одинаковыми ключами необходимо идентифицировать и согласовывать между всеми владельцами в частном порядке перед обучением.

  • Шифрование и распространение: PFM предоставляет решения для шифрования и распространения данных как онлайн, так и офлайн. Если пользователи выбирают схему совместного использования данных в автономном режиме, данные и модели от IP будут зашифрованы с использованием Secret-Sharing[9], а затем отправлены CP через прямую передачу или распределённое хранилище, такое как HDFS. Если пользователи используют онлайн-решение, IP шифрует и распространяет данные и модели онлайн в начале фазы обучения. Каждый CP может получить только одну долю каждого фрагмента данных и, следовательно, не может восстановить исходное значение в модели Semi-honest.

Обучение/вывод

Программа PFM — это точно программа PaddlePaddle, которая будет выполняться как обычные программы PaddlePaddle. Перед обучением/выводом пользователь должен выбрать протокол MPC, определить модель машинного обучения и их стратегии обучения. Типичные операторы машинного обучения предоставляются в paddle_fl.mpc над зашифрованными данными, экземпляры которых создаются и запускаются в порядке Исполнителем во время выполнения.

Дополнительную информацию о фазе обучения/вывода см. в следующем документе (doc).

Реконструкция результатов

По завершении безопасного задания обучения (или вывода) модели (или результаты прогнозирования) будут выводиться CP в зашифрованном виде. Стороны результата могут собирать зашифрованные результаты, расшифровывать их с помощью инструментов PFM и предоставлять результаты в открытом виде пользователям (в настоящее время совместное использование данных и реконструкцию можно поддерживать как в автономном, так и в онлайн-режиме). Системы и технологии 2019

[5]. Кай Хе, Лю Ян, Цзюэ Хонг, Цзиньхуа Цзян, Цземин У, Сюй Дун и др. PrivC — фреймворк для эффективных безопасных вычислений с участием двух сторон. В материалах конференции SecureComm 2019.

[6]. Мартин Абади, Энди Чу, Иэн Гудфеллоу, Х. Брендан Макмаан, Илья Миронов, Кунал Талвар, Ли Чжан. Глубокое обучение с дифференциальной конфиденциальностью. В материалах конференции CCS 2016.

[7]. Вирджиния Смит, Чао-Кай Чианг, Мазиар Санджаби, Амит Тавалкар. Федеративное многозадачное обучение. В материалах конференции NIPS 2017.

[8]. Янг Лю, Тяньцзянь Чен, Цян Ян. Безопасное федеративное трансферное обучение. IEEE Intelligent Systems 2018.

[9]. https://en.wikipedia.org/wiki/Secret_sharing

[10]. Пайман Мохассел и Питер Риндал. ABY3: смешанный протокол для машинного обучения. В материалах конференции CCS 2018.

[11]. Аарон Сегал Антонио Марседоне Бенджамин Креутер Дэниел Рэймидж Х. Брендан МакМаан Карн Сет К. А. Бонавиц Сарвар Пател Владимир Иванов. Практическое безопасное агрегирование для сохранения конфиденциальности в машинном обучении. В материалах конференции CCS 2017.

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

PaddleFL — это открытый фреймворк федеративного обучения, основанный на PaddlePaddle. Развернуть Свернуть
Apache-2.0
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/paddlepaddle-PaddleFL.git
git@api.gitlife.ru:oschina-mirror/paddlepaddle-PaddleFL.git
oschina-mirror
paddlepaddle-PaddleFL
paddlepaddle-PaddleFL
master