В наши дни все делают ... Блокноты Jupyter. Благодаря Google Colab, AWS Sagemaker Notebooks и теперь Microsoft Azure Notebooks доступ к привлекательной, дружественной к науке о данных среде разработки в облаке никогда не был таким простым.

В предыдущих статьях мы показали вам, как обучать модели машинного обучения на распространенных облачных платформах и загружать их в Skafos для развертывания мобильных приложений:

  1. Обучение Turi Create модели в Google Colab
  2. Доставка машинного обучения в мобильные приложения с помощью Skafos и AWS Sagemaker

В этом третьем посте мы расскажем, как начать работу с записными книжками Azure и развернуть модели на периферии с помощью Skafos.

Доступ к записным книжкам Azure

Microsoft предоставляет бесплатную среду обучения на базе Jupyter Notebooks / Labs, где совместное использование и совместная работа являются центральными элементами взаимодействия с пользователем. Поскольку они упростили обмен проектами с коллегами, мы создали для вас набор проектов. Хотя этот инструмент все еще находится в режиме «бета», мы очень ждем, куда он пойдет в ближайшем будущем!

  • Сначала войдите в систему (или создайте бесплатную учетную запись) на странице https://notebooks.azure.com.
  • Тогда ознакомьтесь со списком проектов Skafos по адресу https://notebooks.azure.com/Skafos.

  • В списке вы увидите три примера проекта: Классификация текста, Классификация изображений и Обнаружение объектов. Некоторые из вас узнают одни и те же три стартовые модели на панели инструментов Skafos и в других наших сообщениях в блогах.
  • Щелкните наиболее интересный пример. После выбора нажмите кнопку «клонировать» в правом верхнем углу. Это сделает копию этого проекта и его ресурсов специально для вас.

  • Выберите «Бесплатное вычисление» из раскрывающегося списка, а затем нажмите «Выполнить при бесплатном вычислении», чтобы запустить экземпляр.

Обучение модели

Оказавшись в среде Jupyter Lab, обратите внимание, что есть три примера записных книжек, между которыми вы можете выбирать. Если вы хотите подписаться на этот пост, я буду использовать проект image-classification-examples и блокнот dogs_and_cats.ipynb.

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

Пройдите через все ячейки доModel Export and Skafos Upload, которые охватывают следующее:

  • Импорт необходимых библиотек Python.
  • Загрузка фотографий собак и кошек из общедоступного ведра S3 и считывание их во фрейм данных.
  • Построение модели классификатора изображений с помощью Turi Create framework. Если вы новичок в машинном обучении, это отличное место для начала!

Доставка вашей модели с помощью Skafos

В конце всего этого у вас будет артефакт модели, который вы можете преобразовать в Core ML, загрузить в Skafos и развернуть в приложении iOS. Прежде чем продолжить, убедитесь, что вы выполнили следующие действия:

Теперь у вас есть возможность связать все это вместе: недавно обученную модель классификации изображений из записной книжки Azure и приложение iOS, которое будет ее использовать.

Экспорт и загрузка модели

Вернувшись в Jupyter Notebook, вам нужно преобразовать модель Turi Create в формат CoreML.

Хотя могут использоваться и другие типы моделей, CoreML является надежной отправной точкой, поскольку Apple упростила их интеграцию в вашу среду Xcode.

Затем импортируйте Skafos Python SDK. С помощью своего токена API получите сводку всех приложений и моделей Skafos, к которым у вас есть доступ. Это поможет вам найти, куда нужно загрузить эту версию модели.

Вы можете найти существующие API-токены, сгенерировать новые и отозвать старые на своей странице настроек. Сводный ответ JSON будет выглядеть примерно так:

[
    {
        "org_name": "<your-org-name>",
        "app_name": "<your-app-name>",
        "model_name": "<your-model-name>"
    },
]

Теперь, когда у вас есть токен и сводка моделей, замените приведенные ниже названия организаций / приложений / моделей своими собственными. Ознакомьтесь с этим руководством по передовым методам настройки среды разработки при использовании Python SDK.

Наконец, перейдите на панель управления Skafos и убедитесь, что ваша новая модель там!

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

Вот и все! Вы можете делать это столько раз, сколько вам нужно для итерации вашей модели. Вы можете загрузить на Skafos, развернуть на Dev или Prod по мере необходимости или вернуться к более старым версиям моделей, если возникнет проблема. Нет необходимости перевыпускать через App Store, чтобы получать обновления модели для вашей пользовательской базы. Период.

Заинтригованы? Хотите попробовать? Вот некоторые ресурсы:

  • Видеоурок на нашем канале YouTube, который проведет вас через пример классификации текста, который имеет много шагов, аналогичных тому, что мы только что сделали.
  • Документация Skafos, включая список часто задаваемых вопросов, которая предоставляет дополнительную информацию как о функциональных архитектурах, так и о тактических шагах, которые вы можете предпринять, чтобы внедрить ML в свои приложения.
  • Наш Slack канал. Мы любим общаться и помогать нашим пользователям решать их проблемы. Приходите, поздоровайтесь и дайте нам знать, чем вы занимаетесь.

Мы рады видеть, что вы создаете!