Как сделать изолированную программную среду JavaScript и WebGL на Android и iOS? - PullRequest
0 голосов
/ 12 ноября 2018

Я пытаюсь развернуть обученные нейронные сети на нескольких платформах с помощью TVM до компиляции моделей в WebGL .

Мы надеемся создать изолированную среду для выполнения этих моделей в нашем приложении, начиная с

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

  2. мы не хотим, чтобы ошибки в этом коде мешали работе всего приложения

В идеале нам бы хотелось, чтобы такой API был в JS, C, C ++ или Rust:

predictions, err = runInSandbox('myModel.js', canUseNetwork=False,
    canUseFileSystem=False, input=mySensitiveData)

Некоторые опции, которые я рассмотрел, включают:

  • Докер. Это решает песочницу, но не может работать на Android или iOS. Также было бы неплохо избежать установки Docker как части установки нашего приложения.
  • Кукольник . Это также, похоже, не работает на Android или iOS, а также нежелательно в комплекте с приложением.
  • Запуск кода WebGL в фрейме . Это не мешает доступу к сети, хотя, может быть, есть какой-то умный трюк для этого?
  • Запуск встроенного JavaScript или Wasm VM. Это было бы идеально, но я не нашел тот, который будет работать с WebGL.

Буду очень признателен за любые идеи, как это сделать на разных платформах. Подходы для определенных платформ - особенно для Android и iOS - также приветствуются, поскольку использование разных подходов для разных платформ - это нормально, если нет альтернативы.


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

...