Скрытие файлов модели CoreML (.mlmodel)

Я работаю над проектом, который предусматривает добавление возможностей обнаружения объектов AI в существующее приложение iOS. Я смог обучить свои собственные модели DNN и преобразовал их в формат.mlmodel CoreML.

Теперь мне нужно передать свою работу, которая включает файлы.mlmodel, другому разработчику для интеграции. Однако я не хочу, чтобы они использовали мои обученные файлы.mlmodel за пределами этого проекта (согласно контракту). Есть ли способ, которым я могу сделать, чтобы просто "спрятать" файлы.mlmodel, чтобы они могли использоваться только для этого конкретного приложения и не могли быть просто скопированы и сохранены для других целей?

Я провел небольшое исследование библиотеки и фреймворка iOS, но все еще не уверен, ищу ли это решение.

1 ответ

Решение

Нету. Получив доступ к вашему файлу mlmodel или скомпилированной версии mlmodelc, он может использовать его где-нибудь еще.

Например, вы можете загрузить приложение из App Store, заглянуть внутрь IPA-файла, скопировать их папку mlmodelc в свое собственное приложение и сразу же начать использовать модель.

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

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

Я не уверен, что именно вы хотите, чтобы этот другой разработчик сделал, но если вы им не доверяете, то:

  1. получить нового разработчика, которому вы доверяете,
  2. быть готовым к исполнению договора, или
  3. дайте им версию вашего файла mlmodel с весами, замененными случайными числами. Модель все еще будет работать, но давать бессмысленные прогнозы. Как только этот разработчик завершит свою работу, замените модель на настоящую. Очевидно, что это не очень хорошее решение, если им нужно использовать модель для любой работы, которую им нужно сделать.
Другие вопросы по тегам