CrypTen — это обертка над PyTorch для обучения нейросетевых моделей на зашифрованных данных. Это снимает ограничения в использовании PyTorch в задачах, где секретность данных приоритетна.
Несмотря на прогресс в обучении нейросетевых моделей, на данный момент мало инструментов для работы с зашифрованными данными. Это ограничивает использование ML в сферах, где данные засекречены. Например, медицинские данные или персональные данные пользователей онлайн-платформы. CrypTen нужен для обеспечения безопасности обработки зашифрованных данных.
CrypTen позволяет исследователям экспериментировать с ML моделями, в которых используются методы для обезопашивания вычислений. Через интеграцию с PyTorch разработчики упростили работу с библиотекой, сделав ее привычной для исследователей.
Исследователи могут обучить PyTorch модель, как ResNet, с использованием зашифрованных данных. При этом синтаксис в CrypTen максимально похож на PyTorch.
Архитектура библиотеки
На данный момент в CrypTen реализован криптографический метод secure multiparty computation (MPC). В будущих релизах планируется добавить поддержку гомоморфного шифрования и безопасными анклавами. MPC отличается от RSA, AES и других протоколов шифрования, которые широко используются.
В сравнении с предыдущими имплементациями вычислительных протоколов у CrypTen есть 3 преимущества:
- Фокус на применении библиотеки для обучения ML моделей. Практически идентичный с PyTorch синтаксис и работа с тензорами минимизируют время на адаптацию к библиотеке;
- CrypTen — это библиотека, а не компилятор, что упрощает процесс отладки и экспериментирования с моделями;
- Ориентированность на реальные кейсы при дизайне библиотеки
Несмотря на это, в текущей версии библиотека не готова к использованию в реальных продуктах.