Авторы Хирен Рупчандани, Абхинав Джангир и Ашиш Лепча

  • Модели машинного обучения требуют развертывания в производственной среде, чтобы обеспечить коммерческую ценность.
  • Но прискорбная реальность заключается в том, что многие модели никогда не доходят до производства, а если и доходят, то процесс развертывания процесс. занимает гораздо больше времени, чем необходимо.
  • Даже успешно развернутые модели потребуют поддержки домена, что может создать новые инженерные и эксплуатационные проблемы.
  • Модели машинного обучения — это программное обеспечение. Развертывание и обслуживание любого программного обеспечения — это серьезная задача, и наряду с машинным обучением возникают новые сложности.
  • В нашей предыдущей статье мы выполнили первое развертывание нашей модели с помощью Flask.
  • В этой статье рассказывается, как мы можем загрузить нашу модель в производственную среду с помощью Google Cloud Platform.

Вычислительный движок Google

  • Google Compute Engine предлагает виртуальные машины, работающие в центрах обработки данных Google, подключенных к ее всемирной оптоволоконной сети.
  • Инструменты и рабочий процесс, предлагаемые для масштабирования от отдельных экземпляров до глобальных облачных вычислений с балансировкой нагрузки.
  • Эти виртуальные машины загружаются быстро, поставляются с постоянным дисковым хранилищем и обеспечивают стабильную производительность.

  • Машины доступны во многих конфигурациях, включая предопределенные размеры, а также могут быть созданы с использованием пользовательских типов машин, оптимизированных для ваших конкретных потребностей.
  • Наконец, виртуальные машины Compute Engine также являются технологией, используемой несколькими другими продуктами Google Cloud (Kubernetes Engine, Cloud Dataproc, Cloud Dataflow и т. д.).

Сервер приложений Google

  • Google App Engine позволяет создавать и запускать собственные приложения на серверах Google.
  • Приложения App Engine легко создавать, поддерживать и масштабировать по мере изменения потребностей в трафике и хранении данных.
  • Вы просто загружаете исходный код своего приложения, и оно готово к работе.

  • Это полностью управляемая бессерверная платформа для разработки и размещения веб-приложений в любом масштабе.
  • Вы можете выбрать один из нескольких популярных языков, библиотек и платформ для разработки своих приложений, а затем позволить App Engine позаботиться о предоставлении серверов и масштабировании экземпляров вашего приложения в зависимости от спроса.

Службы, предоставляемые App Engine

  • Платформа как услуга (PaaS) для создания и развертывания масштабируемых приложений.
  • Хостинг в полностью управляемых центрах обработки данных.
  • Полностью управляемая, гибкая среда платформа для управления сервером приложений и инфраструктурой.

Некоторые полезные функции App Engine

  • Масштабирование уменьшается до нуля при отсутствии трафика/запросов (экономия затрат).
  • Сосредоточьтесь на написании кода, остальное позаботится обо всем
  • Развертывание версии приложения, вы можете откатиться к предыдущей версии в течение нескольких секунд
  • Разделение трафика. Разделите трафик между двумя разными версиями. Это помогает проводить A/B-тестирование и поэтапное внедрение функций.

Развертывание модели

Теперь, когда мы немного познакомились с некоторыми инструментами, которые будем использовать, давайте посмотрим, как мы можем использовать их для создания производственной среды и развертывания нашей модели.

1. Создайте проект в Google Cloud Platform

  • Чтобы сначала развернуть любое приложение, нам нужно создать проект в GCP Console.
  • Создайте новый проект в Панель инструментов GCP. Дайте ему уникальное имя, а также запишите идентификатор проекта для будущих ссылок.

  • Создание нового проекта приведет вас к панели управления этого конкретного проекта.

2. Создайте приложение в App Engine

  • Перейдите к App Engine, чтобы создать приложение в App Engine.

  • Выберите местоположение для своего приложения. В нашем случае мы будем использовать south-asia-1 (Мумбаи) в качестве нашего местоположения.

3. Импорт и установка пакетов

Загрузите необходимые файлы, используя:

!wget https://github.com/insaid2018/DeepLearning/raw/master/e2e/ee/app%20engine.zip
  • Создайте новый каталог для извлечения наших файлов для развертывания.
!mkdir file
  • Изменение рабочего каталога по умолчанию для более удобного развертывания.
%cd /content/file
!unzip '/content/app engine.zip'
  • Аутентифицируйте пользователя Google, используя нашу учетную запись Gcloud.
from google.colab import auth
auth.authenticate_user()

Загрузите Cloud SDK в нашей системе

  • Чтобы развернуть наше приложение, нам нужно установить облачный SDK в нашей системе.
  • Cloud SDK предоставляет инструменты и библиотеки для взаимодействия с продуктами и службами Google Cloud.
!curl https://sdk.cloud.google.com | bash

4. Загрузка и создание необходимых файлов

  • Создайте файл конфигурации app.yaml в корневой папке проекта.
  • Нам нужно настроить параметры приложения App Engine в файле app.yaml. Файл app.yaml также содержит информацию о коде вашего приложения, такую ​​как среда выполнения, экземпляр и идентификатор последней версии.

Создание файла main.py

  • Файл main.py — это наш контроллер, в котором находится логика основного приложения.
  • Необходимо иметь файл main.py для развертывания нашего приложения, потому что это первый файл, который использует механизм приложения.

Создание файла requirements.txt

  • Этот файл содержит информацию обо всех всех необходимых библиотеках, используемых в нашем проекте.

5. Развертывание модели

  • В качестве первого шага мы воспользуемся командой bash gcloud init.
  • Это позволит установить и настроить Cloud SDK для развертывания.
  • Gcloud запросит разрешение на этом шаге:
    - Выберите конфигурацию для использования: мы выберем конфигурацию по умолчанию.
    - Выберите учетную запись: мы выберем учетную запись, с которой мы хотим выполнять операции.
    - Выберите проект: мы выберем проект, созданный нами.
!gcloud init
  • Теперь мы будем использовать следующую команду для развертывания нашей модели в App Engine.
!gcloud app deploy app.yaml — project face-mask-deployment
  • После успешного развертывания мы можем посетить наше развернутое приложение, используя предоставленную ссылку.

6. Прогнозы

7. Отключение приложения

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

  • Пожалуйста, перейдите к настройкам в App Engine и отключите его.

Примечание
В случае сбоя развертывания убедитесь, что Cloud Build API включен в вашем проекте.
App Engine автоматически включает этот API при первом развертывании приложения, но если кто-то после этого отключил API, развертывание завершится ошибкой.

  • Мы успешно развернули наш проект в GCP и смоделировали производственную среду.

Что дальше?

В следующей статье этой серии мы контейнеризируем наше приложение с помощью docker.

Подпишитесь на нас, чтобы не пропустить новые статьи, посвященные науке о данных, машинному обучению и искусственному интеллекту.

Кроме того, дайте нам аплодисменты👏, если вы находите эту статью полезной, так как ваша поддержка стимулирует вдохновение и помогает создавать еще больше интересных вещей, подобных этой. .