Machine learning
FRII
807

Почему об MPC должен узнать каждый и при чём тут Facebook

Протоколы конфиденциальных вычислений (multiparty computation, MPC), появившиеся в 1980-х годах как академическая головоломка, сейчас наиболее активно развивающаяся область теоретической и прикладной криптографии.

В закладки

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

Разделение секрета является основой совместных конфиденциальных вычислений Изображение: Ubic

Например, два человека могут сравнить свои ДНК и выяснить, являются ли они родственниками, сохраняя исходные данные своих геномов в тайне. Или страны (космические державы!) могут корректировать траектории движения своих спутников и избегать их столкновений, не раскрывая точных координат. Сырьевые биржи, защищающие ставки и, соответственно, производственный потенциал участников, спам-фильтры, не имеющие доступа к тексту электронных писем, и даже способы предотвращения социального неравенства – все это области применения технологий MPC.

Портфельная компания ФРИИ UBIC создает инновационные MPC-решения для крупных клиентов, то есть такие, которые, прежде всего, ориентированы на обработку действительно больших объемов данных. Решения компании не всегда связаны с машинным обучением, однако данное направление является одним из приоритетных для R&D компании UBIC. До сих пор в публичном поле практически не было информации о подобных разработках. Например, на Github можно было найти 2-3 заслуживающих внимания фреймворка от независимых лабораторий или исследовательских центров при технологических университетах. Однако несколько дней назад Facebook открыл доступ к исходному коду CrypTen – MPC-фреймворку, интегрированному в одну из самых популярных библиотек машинного обучения PyTorch.

Мы попросили команду UBIC перевести ключевые моменты из текста, опубликованного в блоге Facebook, и делимся с вами.

CrypTen: новый исследовательский инструмент для безопасного машинного обучения с PyTorch

Несмотря на колоссальный прогресс сообщества разработчиков искусственного интеллекта (ИИ) в продвижении приложений машинного обучения, сейчас существует лишь ограниченный набор инструментов для создания систем машинного обучения (ML-системы), сохраняющих конфиденциальность данных, с которыми они работают. Это препятствует использованию машинного обучения в сферах с повышенными требованиям к безопасности: например, в здравоохранении при работе с чувствительными медицинскими данными.

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

Чтобы решить эту задачу и ускорить прогресс в этой области, исследователи Facebook AI разработали CrypTen – новую и простую в использовании программную платформу с открытым исходным кодом, облегчающую исследования в области безопасного и конфиденциального машинного обучения.

CrypTen позволяет исследователям машинного обучения, которые обычно не являются экспертами в криптографии, легко экспериментировать с ML-моделями, используя безопасную вычислительную среду. За счет интеграции с платформой PyTorch CrypTen снижает барьеры для ML-исследователей и разработчиков, которые уже знакомы с его API (интерфейсом программирования приложений).

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

MPC
отличается от RSA, AES и других широко используемых криптографических протоколов тем, что позволяет производить математические вычисления над данными, не раскрывая ничего, кроме самого результата вычислений

Основные компоненты CrypTen

На текущий момент CrypTen основывается на протоколе конфиденциальных вычислений (multiparty computation, SMPC), также планируется добавить поддержку гомоморфного шифрования и безопасных анклавов (secure enclaves) в будущих релизах. MPC отличается от RSA, AES и других широко используемых криптографических протоколов тем, что позволяет производить математические вычисления над данными, не раскрывая ничего, кроме самого результата вычислений. В компании реализовали модель безопасности “honest but curious” (предполагает отсутствие активных злонамеренных агентов, которые могут вмешиваться и модифицировать протокол), которая наиболее часто используется в криптографических исследованиях, посвященных MPC. Стоит отметить, что пока CrypTen не готов к промышленному использованию, при котором обычно выдвигаются требования к более сильным гарантиям безопасности.

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

  • Машинное обучение прежде всего. Платформа представляет протоколы через объект CryptTensor, который выглядит и ведет себя точно так же, как тензор PyTotch. Это помогает создавать модели, работающие по конфиденциальному протоколу, любому, кто работал в PyTorch.
  • Crypten – это библиотека. В отличие от других похожих разработок Facebook не предлагает новый язык программирования и компилятор, который создает код, выполняющийся конфиденциально, а расширяется функциональность привычной библиотеки PyTorch.
  • Crypten создан с учетом реально существующих задач. CrypTen не стремится создать идеальную среду с множеством условностей и ограничений. Участники конфиденциальных вычислений – это обычные программы, взаимодействующие по сети. Несмотря на то, что CrypTen не готов к промышленному использованию, он может обеспечить реалистичное понимание вычислительных и коммуникационных требований к машинному обучению с использованием конфиденциальных вычислений, тем самым помогая исследователям развивать технологию.

Пример логического вывода на зашифрованной модели с зашифрованными данными вы можете найти в оригинальном материале.

Необходимость безопасности вычислительных инструментов для ML-систем

Сегодня системы машинного обучения могут безопасно выполняться на устройствах пользователей, и, например, преобразовывать устную речь в письменный текст или переводить текст с одного языка на другой. Однако перед тем, как эти модели были внедрены, они были обучены на публично доступных данных: например, на записях «Википедии» или на лицензированных наборах информации вроде ImageNet. Однако во многих случаях данные, необходимые для обучения либо слишком чувствительные, чтобы ими делиться, либо существуют проблемы безопасности, конфиденциальности, корпоративной политики или правовых ограничений.

Например, ученые в медицинской сфере часто сталкиваются с трудностями при проведении демографических исследований по генетическим данным, потому что данная информация очень чувствительна и ею нельзя легко обмениваться между организациями. Аналогичным образом изучение гендерного разрыва в оплате труда между компаниями затруднено из-за проблем конфиденциальности при обмене данными о заработной плате. Безопасные методы вычислений, такие как MPC, обеспечивают решение подобных проблем, позволяя сторонам получать новые знания из своих данных, сохраняя исходную информацию в секрете.

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

CrypTen
поддерживает MPC для любого количества сторон, а также реализует протокол, сочетающий аддитивное и логическое разделение секрета, что позволяет вычислять такие нелинейные функции, как, например, ReLU, не прибегая к полиномиальной интерполяции

Примеры использования и приложений и ускорение исследований

CrypTen поддерживает как безопасное исполнение (при этом может использоваться практически любая предварительно подготовленная PyTorch-модель), так и непосредственно обучение моделей на конфиденциальных данных с использованием привычного API PyTorch. CrypTen поддерживает MPC для любого количества сторон, а также реализует протокол, сочетающий аддитивное и логическое разделение секрета, что позволяет вычислять такие нелинейные функции, как, например, ReLU, не прибегая к полиномиальной интерполяции.

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

Машинное обучение мощно прогрессировало за последнее десятилетие — отчасти благодаря наличию данных и вычислений и разработке простых в использовании систем. В Facebook надеются, что создание таких инструментов, как CrypTen, и снижение барьера для входа других исследователей, поспособствует развитию и ускорению исследований в области разработки новых безопасных вычислительных технологий для машинного обучения.

Материал опубликован пользователем.
Нажмите кнопку «Написать», чтобы поделиться мнением или рассказать о своём проекте.

Написать
{ "author_name": "FRII", "author_type": "self", "tags": [], "comments": 0, "likes": 9, "favorites": 10, "is_advertisement": false, "subsite_label": "ml", "id": 88180, "is_wide": true, "is_ugc": true, "date": "Wed, 16 Oct 2019 08:01:54 +0300", "is_special": false }
0
{ "id": 88180, "author_id": 176039, "diff_limit": 1000, "urls": {"diff":"\/comments\/88180\/get","add":"\/comments\/88180\/add","edit":"\/comments\/edit","remove":"\/admin\/comments\/remove","pin":"\/admin\/comments\/pin","get4edit":"\/comments\/get4edit","complain":"\/comments\/complain","load_more":"\/comments\/loading\/88180"}, "attach_limit": 2, "max_comment_text_length": 5000, "subsite_id": 332941, "last_count_and_date": null }
Комментариев нет
Популярные
По порядку
{ "page_type": "article" }

Прямой эфир

[ { "id": 1, "label": "100%×150_Branding_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox_method": "createAdaptive", "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "ezfl" } } }, { "id": 2, "label": "1200х400", "provider": "adfox", "adaptive": [ "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "ezfn" } } }, { "id": 3, "label": "240х200 _ТГБ_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fizc" } } }, { "id": 4, "label": "Article Branding", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "p1": "cfovx", "p2": "glug" } } }, { "id": 5, "label": "300x500_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "ezfk" } } }, { "id": 6, "label": "1180х250_Interpool_баннер над комментариями_Desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "h", "ps": "bugf", "p2": "ffyh" } } }, { "id": 7, "label": "Article Footer 100%_desktop_mobile", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fjxb" } } }, { "id": 8, "label": "Fullscreen Desktop", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fjoh" } } }, { "id": 9, "label": "Fullscreen Mobile", "provider": "adfox", "adaptive": [ "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fjog" } } }, { "id": 10, "disable": true, "label": "Native Partner Desktop", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fmyb" } } }, { "id": 11, "disable": true, "label": "Native Partner Mobile", "provider": "adfox", "adaptive": [ "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fmyc" } } }, { "id": 12, "label": "Кнопка в шапке", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "p1": "bscsh", "p2": "fdhx" } } }, { "id": 13, "label": "DM InPage Video PartnerCode", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox_method": "createAdaptive", "adfox": { "ownerId": 228129, "params": { "pp": "h", "ps": "bugf", "p2": "flvn" } } }, { "id": 14, "label": "Yandex context video banner", "provider": "yandex", "yandex": { "block_id": "VI-223676-0", "render_to": "inpage_VI-223676-0-1104503429", "adfox_url": "//ads.adfox.ru/228129/getCode?pp=h&ps=bugf&p2=fpjw&puid1=&puid2=&puid3=&puid4=&puid8=&puid9=&puid10=&puid21=&puid22=&puid31=&puid32=&puid33=&fmt=1&dl={REFERER}&pr=" } }, { "id": 15, "label": "Баннер в ленте на главной", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "p1": "byudx", "p2": "ftjf" } } }, { "id": 16, "label": "Кнопка в шапке мобайл", "provider": "adfox", "adaptive": [ "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "p1": "byzqf", "p2": "ftwx" } } }, { "id": 17, "label": "Stratum Desktop", "provider": "adfox", "adaptive": [ "desktop" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fzvb" } } }, { "id": 18, "label": "Stratum Mobile", "provider": "adfox", "adaptive": [ "tablet", "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fzvc" } } }, { "id": 19, "disable": true, "label": "Тизер на главной", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "p1": "cbltd", "p2": "gazs" } } }, { "id": 20, "label": "Кнопка в сайдбаре", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "p1": "cgxmr", "p2": "gnwc" } } } ] { "page_type": "default" }