Авторы Хирен Рупчандани, Абхинав Джангир и Ашиш Лепча
- Модели машинного обучения требуют развертывания в производственной среде, чтобы обеспечить коммерческую ценность.
- Но прискорбная реальность заключается в том, что многие модели никогда не доходят до производства, а если и доходят, то процесс развертывания процесс. занимает гораздо больше времени, чем необходимо.
- Даже успешно развернутые модели потребуют поддержки домена, что может создать новые инженерные и эксплуатационные проблемы.
- Модели машинного обучения — это программное обеспечение. Развертывание и обслуживание любого программного обеспечения — это серьезная задача, и наряду с машинным обучением возникают новые сложности.
- В нашей предыдущей статье мы выполнили первое развертывание нашей модели с помощью 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.
Подпишитесь на нас, чтобы не пропустить новые статьи, посвященные науке о данных, машинному обучению и искусственному интеллекту.
Кроме того, дайте нам аплодисменты👏, если вы находите эту статью полезной, так как ваша поддержка стимулирует вдохновение и помогает создавать еще больше интересных вещей, подобных этой. .