TL; DR: Используя TF Encrypted, мы смогли обнаружить рак кожи на зашифрованных изображениях. За последний год мы сократили время работы с 24 часов до 36 секунд. Эта работа обычно применяется к компьютерному зрению, сохраняющему конфиденциальность. В следующем сообщении описывается наш путь к достижению этого результата и наша дорожная карта по снижению производительности менее чем за секунду. Вы можете найти код здесь.

Демократизация ИИ в здравоохранении при сохранении конфиденциальности

Если есть область, в которой машинное обучение скоро значительно улучшит нашу жизнь, так это здравоохранение. За последние три года исследователи сделали несколько прорывов в приложениях, связанных с медицинской визуализацией. Системы машинного обучения, использующие методы глубокого обучения, теперь способны диагностировать диабетическую ретинопатию , рак кожи и рак груди. По состоянию на 2016 год более 415 миллионов диабетиков во всем мире подвергались риску диабетической ретинопатии (которая является самой быстрорастущей причиной слепоты). Приблизительно 3,5 миллиона человек в США ежегодно заболевают раком кожи. В 2015 году в США у более 232 000 женщин был диагностирован рак груди. К сожалению, одной из самых больших проблем является получение доступа к специалистам на достаточно раннем этапе для эффективного лечения; это особенно проблематично в отдаленных районах. Машинное обучение могло бы демократизировать доступ к лучшим диагностическим средствам медицинской визуализации во всем мире.

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

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

Зашифрованное глубокое обучение - техническая проблема

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

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

Испытания и невзгоды

Весной 2018 года мы с нуля создали нашу зашифрованную библиотеку глубокого обучения на Go. Мы были взволнованы, увидев, сможем ли мы предоставить частные прогнозы для обнаружения рака кожи, поэтому мы обучили сверточную модель (похожую на VGG16) на изображениях повреждений кожи. Наш протокол безопасных вычислений, названный Pond, в то время не поддерживал сравнения, так как это была очень дорогостоящая операция с MPC. Поэтому мы заменили слой Max-Pooling слоем Average-Pooling, и точное ReLU было аппроксимировано полиномом. Мы заменили последние три полностью связанных (FC) слоя одним меньшим FC-слоем. Мы обнаружили, что это незначительно повлияло на точность модели.

Окончательная модель VGG16 включала около 15 миллионов параметров с AUC 0,89 на тестовой выборке. Вы не поверите, но на получение частного прогноза ушло более 24 часов. Наша реализация на Go была недостаточно оптимизирована, чтобы компенсировать упомянутые ранее сетевые и вычислительные затраты. Стало очевидным, что для улучшения этого потребуется создать стек поверх существующих библиотек, что означало значительные вложения и побудило нас рассмотреть другой подход.

От 24 часов до 8 минут в TensorFlow

Параллельно с этим наш коллега Мортен изучал, подходит ли TensorFlow для MPC и для безопасных вычислений в целом. После экспериментов с доказательством концепции мы быстро увидели прирост производительности за счет использования современной платформы распределенных вычислений, такой как TensorFlow. Первый раз, когда мы попытались сделать частный прогноз с вариантом модели VGG16, потребовалось 8 минут. Это было только начало длинной серии улучшений производительности.

От 8 минут до 1 минуты 4 секунды с SecureNN

Очень быстро мы смогли сократить время работы этой же модели примерно до минуты. Чтобы достичь этого результата, мы в основном очистили код и повторно использовали тройки (маскирующие тензоры, необходимые для умножения матриц в MPC). Увеличение количества процессоров для решения этой проблемы также имело большое значение. Способность Tensorflow распараллеливать вычисления и расставлять приоритеты для правильных операций, чтобы сэкономить на сети, резко сократила время выполнения. Однако мы обнаружили, что получаем низкую точность для больших моделей из-за приближенных значений ReLU.

Следующим шагом было внедрение протокола SecureNN. Этот протокол побил рекорды скорости для зашифрованного машинного обучения с MPC в 2018 году. Одним из преимуществ этого протокола является то, что он поддерживает операции сравнения, поэтому мы можем использовать архитектуру модели VGG16 из коробки с Max-Pooling и точным уровнем ReLU. Мы по-прежнему заменили последние три полностью связанных слоя одним маленьким полносвязным слоем (~ 15 миллионов параметров).

Это означало, что специалисты по обработке данных могли использовать существующие предварительно обученные модели в ImageNet, а затем выполнять трансферное обучение для достижения большей точности для своих задач. Мы также смогли заставить его работать с тензорами int 64 вместо очень больших целых чисел. Мы снова выполнили наши частные прогнозы и смогли достичь 1 минуты 4 секунды с 96 виртуальными ЦП на каждой машине на GCP. Несмотря на то, что он был немного медленнее, чем протокол POND, с помощью SecureNN мы сохранили точность модели. Это был конкретный пример компромисса между производительностью и точностью, который является частью проблемы при использовании зашифрованного машинного обучения.

55 секунд с SecureNN

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

36 секунд с SecureNN, настраивая модель.

В предыдущих разделах мы описали множество оптимизаций безопасных вычислений. Однако вы также можете поиграть с разными архитектурами нейронных сетей, чтобы лучше соответствовать ограничениям MPC. Просто заменив слой Max-Pooling слоем Average-Pooling, который включает только умножение матриц вместо сравнений, вы можете запросить модель за 36 секунд.

Путь к доле секунды

Библиотека с открытым исходным кодом TF Encrypted, построенная на основе TensorFlow, позволила нам легко проводить множество экспериментов и масштабировать большие модели. Мы с нетерпением ждем возможности поэкспериментировать в течение следующих нескольких месяцев, чтобы запросить этот тип модели за доли секунды. Вот несколько потенциальных возможностей:

  • Улучшить подход полиномиальной аппроксимации
  • Настроить архитектуру нейронных сетей
  • Квантование
  • Обрезка сети
  • Продолжать интегрировать передовые протоколы безопасных вычислений и вносить инженерные оптимизации

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

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

Большое спасибо Гэвину Ухме, Джейсону Манкузо, Бену ДеКосту, Яну Ливингстону и Мэтту Маклеллану «» за помощь с этим постом!

О Dropout Labs

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

Посетите наш веб-сайт, блог или TF Encrypted репозиторий для получения дополнительной информации или подпишитесь на нас в Twitter, чтобы получать самые свежие объявления.

Если вы увлечены конфиденциальностью данных и искусственным интеллектом, мы будем рады услышать от вас.