На этой неделе мы со Славой выступали на Big Things Conference в Испании. Название доклада было таким же, как у сообщения в блоге, мы не хотели использовать термин MLOps с записными книжками или MLOps с ____, поскольку мы думаем, что термин MLOps в настоящее время является перегруженным термином. Да, говорю, перегружено и раскручено, объясню почему.

Работая в Google, у меня есть доступ к очень сложному программному обеспечению, инструментам и инфраструктуре, которые определенно понравятся любому специалисту по данным, инженеру по данным, исследователю машинного обучения. Но не каждая компания - это Google, ____ и т. Д., И если вы недавно начали внедрять машинное обучение в свой бизнес, вы поняли, что ML - непростая задача. Давайте поговорим конкретно о путешествии от записной книжки от экспериментов до развертывания модели.

Большинство путешествий по машинному обучению начинается с записной книжки Jupyter. Здесь специалисты по данным исследуют свои данные с помощью Python и разрабатывают модели с использованием различных фреймворков машинного обучения, таких как TensorFlow, PyTorch, xgboost и т. Д. Мы определим 3 уровня с точки зрения того, как вы можете перейти от экспериментов к модели, развернутой и отслеживаемой в производственной среде. окружающая обстановка.

Уровень 0. Все, что у вас есть, - это записная книжка, а остальные шаги, обучение модели, обслуживание и мониторинг выполняются вручную.

Уровень 1. Если вы добавляете репозиторий Git и автоматизируете задачу выполнения записной книжки после отправки PR или фиксации, мы называем этот уровень 1. Репозиторий git можно настроить с помощью действий GitHub, Дженкинс , Cloud Build и т. Д. Для эффективного выполнения записной книжки после отправки. Вот некоторые из проблем:

  1. Гарантируйте, что зависимости в ваших записных книжках такие же, как и в новой среде, в которой будет работать блокнот. Пример: вы используете тот же numpy, pandas, операционную систему, версию TensorFlow и т. Д.
  2. Гарантируйте, что Оборудование такое же или похожее на то, которое вы используете.
  3. Проверяйте статус каждой фиксации после завершения выполнения. Коммит - зеленый или красный?

Когда вы используете AI Platform Notebooks, каждый раз, когда вы сохраняете записную книжку, информация о среде в метаданных записной книжки сохраняется.

В этом случае вы можете видеть, что пользователь использовал AI Platform Notebooks TensorFlow 2.3 с поддержкой графического процессора в DLVM версии 59.

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

Уровень 2. Как только вы сможете автоматизировать выпуск модели в производство, вы достигнете этого уровня.

Уровень 3. I Если вы можете отслеживать развернутую модель с помощью непрерывного мониторинга, мы будем говорить об уровне 3. Подумайте о мониторинге ваших прогнозов, точности прогнозов, времени отклика и проверках работоспособности модели.

Но подождите ... это не совсем то, что вы видели во многих официальных документах, книгах, документации и т. Д.:

Я даю вам очень упрощенный взгляд на мир? Я слишком упрощаю очень сложную концепцию? Может… может, нет. Приведенная выше диаграмма определенно необходима как «Полярная звезда» и справочная информация, но поскольку новые команды начинают создавать свою инфраструктуру машинного обучения, в которой у вас нет ничего, кроме некоторой исправленной и хакерской реализации, вам необходимо следовать модульному и гибкому подходу, а не подходу Waterfall и эта архитектура определенно является подходом водопада. Почему? Потому что, пока вы не получите прогнозы, вы действительно можете начать зарабатывать или экономить деньги.

  • Примечание. Если вы уже какое-то время занимались MLOps и инфраструктурой инфраструктуры, это будет примерно так, как выглядит ваша фактическая инфраструктура:

Вы, наверное, уже видели конвейеры KubeFlow раньше, у KubeFlow Pipelines есть SDK, который можно использовать из записных книжек, поэтому теоретически, поскольку у вас есть записные книжки, вы должны легко перейти с уровня 0 на уровень 3, верно?

Итак, я могу перейти с уровня 0 на уровень 3, просто используя конвейеры KubeFlow? Здесь часто приходит на помощь второе предположение. Это предположение простое: «Если инструмент X можно использовать из записной книжки, это означает, что инструмент X можно использовать с записными книжками».

Есть ли в этом смысл??? Мне все еще нужно переписать свой код полностью с нуля, мне нужно будет изучить новые API и, возможно, перепроектировать много кода ...

Итак, теперь вы видите проблему, не так ли?

Чтобы реализовать конвейер CI с Jupyter Notebooks на GCP, давайте определим набор принципов:

  • Следуйте установленным передовым методам разработки программного обеспечения.
  • Контроль версий ваших ноутбуков.
  • Воспроизводимые записные книжки.
  • Непрерывная интеграция (CI)
  • Блокноты с параметризацией
  • Непрерывная доставка (CD)
  • Автоматически регистрировать все эксперименты

В этом сообщении в блоге я покажу вам, как построить что-то вроде этого:

В решении задействованы следующие продукты:

Поток следующий:

  1. Пользователь сохраняет блокнот в блокнотах платформы AI
  2. Используя расширение Git в блокнотах AI Platform, пользователь фиксирует изменения блокнотов в GitHub
  3. GitHub настроен с рабочим процессом действий GitHub
  4. Рабочий процесс действий GitHub использует https://github.com/gclouduniverse/notebook_training для запуска измененных записных книжек .ipynb и создания нового задания обучения AI Platform для каждой записной книжки.

В GitHub мы подключаемся к Google Cloud Platform с помощью этого плагина: GoogleCloudPlatform / github-actions / setup-gcloud @ master

Мы определяем в GitHub Secrets следующие переменные среды:

  • PROJECT_ID: ваш идентификатор проекта Google Cloud.
  • GCP_SERVICE_ACCOUNT: ключ вашей учетной записи службы в формате json, сохраненный как base64. Пример:
base64 service-account.json

5. Используя метаданные Notebook, мы можем извлечь правильный URI и использовать версию Deep Learning Container, когда мы начинаем работу по обучению AI Platform.

6. Записная книжка запускается, и после завершения результат записной книжки сохраняется в корзине GCS.

7. Если выполнение завершится успешно, пользователь увидит зеленый флажок в репозитории GitHub.

Вы можете найти образец репо здесь: https://github.com/gogasca/bigthingsconference2020

Как видите, мы сосредоточились на путешествии, сфокусировались на уровнях 0–3 и в конечном итоге добрались до архитектуры Полярной звезды, используя строительные блоки и принципы, которые обсуждались ранее.

Следующие несколько недель я буду работать, чтобы предоставить решение для выполнения развертывания модели непосредственно из ноутбука. AI Platform Prediction в настоящее время поддерживает прогнозирование модели с использованием настраиваемых Контейнеров.

Сообщите нам, что вы думаете и что хотели бы увидеть.