Непрерывно тренируйте модель CoreML после грузить
просматривая новый API CoreML, я не вижу никакого способа продолжить обучение модели после генерации .mlmodel и связывание его в приложении. Это заставляет меня думать, что я не смогу выполнять машинное обучение на контенте или действиях моего пользователя, потому что модель должна быть полностью обучена заранее.
есть ли способ добавить данные обучения в мою обученную модель после доставки?
EDIT: я только что заметил, что вы можете инициализировать сгенерированный класс модели из URL, поэтому, возможно, я могу опубликовать новые данные обучения на своем сервере, повторно сгенерировать обученную модель и загрузить ее в приложение? Похоже, что это сработает, но это полностью побеждает аспект конфиденциальности возможности использовать ML без данных пользователя, покидающих устройство.
5 ответов
The .файл mlmodel компилируется Xcode в a .структура mlmodelc (который на самом деле папка в пакете приложения).
ваше приложение может загрузить новое .mlmodel с сервера, но я не думаю, что вы можете запустить компилятор Core ML из своего приложения.
возможно, для вашего приложения можно загрузить скомпилированный .данные mlmodelc с сервера, скопируйте их в каталог документов приложения и создайте экземпляр модели из него. Попробовать ее. ;-)
(Это предполагает, что App Store не делает никакой дополнительной обработки на .данные mlmodelc перед упаковкой приложения и отправкой его пользователю.)
Apple недавно добавила новый API для компиляции модели на устройстве. Теперь вы можете загрузить свою модель и скомпилировать ее на устройстве
чтобы динамически обновлять модель (без обновления всего приложения), вам нужно использовать MPS (Metal Performance Shader) напрямую, а не полагаться на .mlmodel, который должен быть в комплекте с приложением.
Это означает, что вам нужно вручную построить нейронную сеть, написав некоторый Swift-код (вместо использования coremltools для непосредственного преобразования существующих моделей), и подавать различные веса для каждого слоя, что немного работы, но не ракетостроение.
этот это хорошее видео, чтобы посмотреть, если вы хотите узнать больше о MPS.
Core ML поддерживает вывод, но не обучение на устройстве.
вы можете обновить модель, заменив ее новой с сервера, но это заслуживает собственного вопроса.