В наши дни все делают ... Блокноты Jupyter. Благодаря Google Colab, AWS Sagemaker Notebooks и теперь Microsoft Azure Notebooks доступ к привлекательной, дружественной к науке о данных среде разработки в облаке никогда не был таким простым.
В предыдущих статьях мы показали вам, как обучать модели машинного обучения на распространенных облачных платформах и загружать их в Skafos для развертывания мобильных приложений:
- Обучение Turi Create модели в Google Colab
- Доставка машинного обучения в мобильные приложения с помощью 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. Прежде чем продолжить, убедитесь, что вы выполнили следующие действия:
- Зарегистрируйте учетную запись 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 канал. Мы любим общаться и помогать нашим пользователям решать их проблемы. Приходите, поздоровайтесь и дайте нам знать, чем вы занимаетесь.
Мы рады видеть, что вы создаете!