Скачать демо

Руководство по быстрому запуску

для демонстрационной версии программного обеспечения

Преимущество

Легкий запуск на Python

01

Преимущество

Вертикальное федеративное обучение модели логистической регрессии со встроенной криптографической защитой

02

Преимущество

Включает тренировочный набор данных для изучения возможностей и функционала

03

Преимущество

Проект готов к применению для решения ваших прикладных задач

04

Предлагаемый Demo-продукт позволяет совместно несколькими участниками (от двух и более) без необходимости передачи самих данных проводить вертикальное федеративное обучение.

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

Линейная модель

Линейная регрессия

Модель логистической регрессии

Логистическая регрессия

Софтмакс регрессии (многоклассовой регрессии).

Softmax регрессия для многоклассовой классификации

Загрузка проекта
и установка зависимостей

1.  Убедитесь, что на компьютере установлен Python3 версии не ниже 3.9

2.  Убедитесь, что на компьютере установлен стандартный диспетчер пакетов pip

3.  Скачайте проект, размещенный в GitHub по ссылке https://github.com/guardora-ai/Guardora-VFL-demo

4.  Перейдите в папку с проектом

5.  Установите необходимые зависимости

6.  Для вопросов и обратной связи используйте канал #federated-learning сообщества Guardora в Discord или почту guardora@guardora.ru

python

Использование SSL/TLS
(доступно только для двух участников, в остальных случаях, используйте флаг -ns)

По умолчанию коммуникационные каналы участников обучения защищаются SSL/TLS-шифрованием на основе сертификатов. Данную функцию можно отключить, указав соответствующий параметр командной строки при запуске обучения.

Для реализации шифрования требуются сертификаты, примеры которых находятся в папке . Их достаточно для проведения экспериментального обучения на localhost. Однако возможно использование сертификатов любых других сторон обучения, для чего достаточно указать пути к соответствующим файлам в командной строке запуска.

Если готовые сертификаты отсутствуют, можно сгенерировать необходимый набор самоподписанных сертификатов и ключей с использованием скрипта .  Для выполнения скрипта используйте команду:

Здесь  может быть IP-адресом или доменным именем. После генерации необходимо указать пути к сформированным сертификатам и ключам в командной строке запуска обучения.

12345

// Введите какой-нибудь код ->

Запуск обучения

Пассивные участники (без таргетного признака)

Каждый участник без таргетного признака должен запустить скрипт VFL_server.py с использованием следующих параметров командной строки:

-i

<ID участника, например, порядковый номер; значение по умолчанию: 1>

-p

<Номер порта для сетевых соединений во время обучения; значение по умолчанию: 50055>

-t

<Путь к обучающему датасету (CSV-файл); значение по умолчанию: train файл из папки 'data'>

-v

<Путь к тестовому/валидационному датасету (CSV-файл); значение по умолчанию: test файл из папки 'data'>

-d 

<Название столбца, содержащего идентификаторы записей; значение по умолчанию: 'ID'>

-f

<Доля случайно выбираемых записей из обучающих и тестовых данных для выполнения обучения; значение по умолчанию: 0.5>

-ns

<Флаг отключения SSL/TLS-шифрования (опционально); по умолчанию SSL/TLS включено>

-cp 

<Путь к серверному сертификату для SSL/TLS; значение по умолчанию: 'cert/127.0.0.1.crt'>

-kp 

<Путь к серверному ключу для SSL/TLS; значение по умолчанию: 'cert/127.0.0.1.key'>

Активный участник (с таргетным признаком)

Участник, обладающий таргетным признаком, должен указать необходимые параметры в конфигурационном файле (пример файла можно найти в папке config) и запустить обучение. Т.е. выполнить следующие шаги:

01

Указать пассивных участников:

Определить id, IP-адрес (или доменное имя) и порт для каждого пассивного участника. Порт должен совпадать с указанным в VFL_server.py, а IP-адрес/доменное имя — соответствовать сертификату (если SSL/TLS включено).

02

Задать параметры обучения:

Указать learning_rate и число эпох.

03

Установить порог бинаризации:

Задать значения порога бинаризации для выполнения инференса.

04

Указать длину ключа шифрования:

Определить длину ключа (в битах) для криптосистемы Пайе.

05

Запустить скрипт обучения:

Выполнить скрипт VFL_client.py с использованием следующих параметров:

-c

<Путь к конфигурационному файлу; значение по умолчанию: 'config/config.conf'>

-m

<Тип модели: 'linear', 'logistic' или 'softmax'; значение по умолчанию: 'softmax'>

-t

<Путь к обучающему датасету (CSV-файл); значение по умолчанию: train файл из папки 'data'>

-v

<Путь к тестовому/валидационному датасету (CSV-файл); значение по умолчанию: test файл из папки 'data'>

-d

<Название столбца, содержащего идентификаторы записей; значение по умолчанию: 'ID'>

-y

<Название столбца, содержащего таргетный признак; значение по умолчанию: 'y'>

-f

<Доля случайно выбираемых записей для обучения/тестирования; значение по умолчанию: 0.5>

-ns

<Флаг отключения SSL/TLS-шифрования (опционально); по умолчанию SSL/TLS включено>

-cp

<Путь к серверному сертификату для SSL/TLS; значение по умолчанию: 'cert/127.0.0.1.crt'>

-kp

<Путь к серверному ключу для SSL/TLS; значение по умолчанию: 'cert/127.0.0.1.key'>

-rp

<Путь к корневому сертификату для SSL/TLS; значение по умолчанию: 'cert/rootCA.crt'>

Инференс

После завершения обучения у каждого участника будут сохранены параметры общей модели, относящиеся к его данным. При проведении инференса параметры модели загружаются каждым участником, после чего выполняется инференс на записях.