С момента своего появления контейнеризация стала штурмом отрасли. Даже такие гиганты, как Google, признают, что продукты от Gmail до YouTube и поиска * (1) теперь работают в контейнерах. Контейнеризация упрощает распределенные приложения, устраняет проблемы перекрестного развертывания и позволяет командам разработчиков быстро двигаться и работать в беспрецедентном масштабе.

В Trueface мы с первого дня рассматривали контейнеры как способ распространения автономного безопасного программного обеспечения среди наших клиентов с минимальными накладными расходами на развертывание. Ниже я описываю, как развернуть общие контейнеры ИИ и компьютерного зрения (включая контейнеры Trueface Visionbox) в Google Cloud Run.

Что такое Google Cloud Run и зачем его использовать?

Cloud Run позволяет запускать рабочие нагрузки без отслеживания состояния, управляемые запросами или событиями, не беспокоясь о серверах. Он позволяет вам перейти от контейнера к производству за секунды и предлагает поддержку нулевого масштабирования, что означает, что вы ничего не платите, когда контейнер не используется, при этом вы можете автоматически масштабировать и балансировать нагрузку до 1000 контейнеров в часы пик.

Как развернуть контейнерный API в Google Cloud Run:

Шаг 1. Установите GCloud SDK и настройте Docker

Установите GCloud SDK и войдите в систему:

Https://cloud.google.com/sdk/install

Для входа: gcloud auth login

После аутентификации установки GCloud настройте Docker для работы с GCR и GCloud: gcloud auth configure-docker

Шаг 2. Загрузите Trueface Agebox и отметьте его

Если вы планируете использовать Trueface Visionbox, не забудьте запросить тестовый токен у команды Trueface, прежде чем продолжить. В противном случае рекомендуется продолжить изучение руководства, используя любой контейнерный Rest API, который вы можете развернуть.

sudo docker pull trueface/agebox:latest

Добавьте к изображению метку с названием вашего проекта Google Cloud, чтобы его можно было отправить в GCR (Google Container Registry):

sudo docker tag trueface/agebox gcr.io/$project_name/agebox

Шаг 3. Нажмите на изображение

sudo docker push gcr.io/$project_name/agebox

Шаг 4. Создайте службу Cloud Run

  • Перейдите в Google Cloud Console.
  • Перейдите к Cloud Run в своем проекте Google Cloud и нажмите Создать службу.
  • URL-адрес изображения входного контейнера (gcr.io/$project/agebox)
  • Выберите регион и тип аутентификации (разрешить аутентификацию для этой демонстрации)
  • Установите токен в качестве переменной среды

Поскольку вы будете работать с моделями глубокого обучения, требующими интенсивных вычислений, я рекомендую использовать 2 ГБ ОЗУ для каждого развертывания. Установите максимальное количество экземпляров; они представляют максимальное количество экземпляров / API, которые GCR будет вращать для обработки увеличения нагрузки. Google Cloud Run автоматически масштабируется с нуля до 1000 контейнеров, как упоминалось ранее, что делает его более гибким и эффективным решением по сравнению с традиционной арендой инстансов.

Нажмите "Создать".

Вот и все. После завершения инициализации службы вы получите URL-адрес API.

Протестируйте свой API:

curl https://api_url/predict?url=https://image_url

Живые демонстрации:

Демонстрация определения возраста

Обнаружение живых объектов на контейнерах без сохранения состояния с использованием SDK

Обнаружение лиц в реальном времени + ориентиры + оценка положения головы с помощью контейнеров без сохранения состояния (GCR)

Используйте интерфейс в возрастной демонстрации выше

Заключение

Развертывание API-интерфейсов искусственного интеллекта и компьютерного зрения с высоким TPS (в масштабе) продолжает становиться все проще с такими замечательными решениями, как GCR. Trueface Visionbox и другие контейнерные решения предлагают готовые API-интерфейсы, которые вы можете самостоятельно размещать и развертывать с минимальными затратами на исследования, разработку и обслуживание.

Незаре Чафни

Технический директор @ Trueface