Добро пожаловать в руководство для начинающих по развертыванию приложений машинного обучения в облаке. В этом путешествии мы раскроем тайну процесса использования ваших тщательно разработанных моделей машинного обучения и сделаем их доступными всему миру с помощью облачных вычислений. Независимо от того, являетесь ли вы разработчиком, специалистом по обработке данных или просто интересуетесь взаимодействием технологий и данных, это руководство предоставит вам четкую дорожную карту для навигации по миру развертывания приложений машинного обучения в облаке.
И AWS, и GCP предоставляют индивидуальную службу вывода контейнеров, которая чрезвычайно полезна для построения конвейеров непрерывного обучения и автоматизации утомительной задачи обучения модели.
Службы предоставляют интерфейс REST для вызова вашей обученной модели и возврата полученных результатов.
Ниже приведено подробное руководство по созданию собственного контейнера ML и его обучению на AWS и GCP.
-Развертывание моделей машинного обучения в GCP
Предварительные условия — Структура репозитория кода:
Сохраните файл Dockerfile в корневом каталоге и сохраните имя основного сценария вывода как «infer.py». Пример структуры каталогов (имя папки-вывод):
inference ├── Dockerfile └── src ├── infer.py ├── nginx.conf ├── predictor.py ├── requirements.txt ├── serve └── wsgi.py
- Создайте файл Docker для контейнеризации приложения ML
Пример файла Docker
ARG UBUNTU_VERSION=20.04 FROM ubuntu:${UBUNTU_VERSION} as base ARG DEBIAN_FRONTEND=noninteractive RUN apt-get update && apt-get install -y --no-install-recommends \ python3.8 \ python3-pip \ nginx \ git \ vim nano wget curl libpython3.8 ffmpeg libsm6 libxext6 \ && \ apt-get clean && \ rm -rf /var/lib/apt/lists/* ENV LANG C.UTF-8 ADD src/infer/ /opt/program/ ADD src/build_scripts/ /opt/program/ ENV PATH $PATH:/root/google-cloud-sdk/bin ENV PATH="/opt/program:${PATH}" WORKDIR /opt/program RUN chmod +x * RUN pip3 install -r "requirements.txt" RUN pip3 install glob2 flask gunicorn google-cloud-storage RUN pip3 install protobuf==3.20.* RUN curl -sSL https://sdk.cloud.google.com | bash ENV PYTHONUNBUFFERED=TRUE ENV PYTHONDONTWRITEBYTECODE=TRUE
2. Создайте и разместите свой контейнер в реестре контейнеров GCP.
docker build -t ml-infer-container <folder_where_Dockerfile_is_located> gcloud auth configure-docker gcr.io docker tag ml-infer-container gcr.io/dir/ml-train-container docker push gcr.io/dir/ml-infer-container:latest
3. Импортируйте пользовательскую модель в реестр моделей:
- Из консоли:
Перейдите в консоль GCP->Vertex AI->Реестр моделей и нажмите «Импортировать модель» вверху.
4. Разверните конечную точку
Перейдите в консоль GCP->Vertex AI->Конечные точки и нажмите «Создать конечную точку».
5. Тестирование развернутой конечной точки
Мы можем вызвать конечную точку, используя запрос REST с данными в формате JSON.
Самый простой способ проверить это — использовать встроенный инструмент GCP. Реестр моделей Go->Выберите свою модель->Выберите версию->Развертывание и тестирование
Предоставьте свои входные данные в виде массива внутри словаря с ключевыми «экземплярами». Пример:
{ "instances": [{ "data1": "value1", "data2": "value2" }] }
ИЛИ
Вызовите конечную точку с помощью запроса REST:
Перейдите в раздел «Конечная точка» и выберите «Пример запроса» для развернутой модели.
curl \ -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ https://us-central1-aiplatform.googleapis.com/v1/projects/${PROJECT_ID}/locations/us-central1/endpoints/${ENDPOINT_ID}:predict \ -d "@${INPUT_DATA_JSON}"
6. Теперь модель ML развернута и работает. Теперь ваше приложение может вызывать модель с помощью запросов POST.