Типы деплоев
Ниже описаны типы деплоев, доступные на платформе ML Space.
Стандартный деплой
Чтобы разместить выбранный образ, нажмите Создать деплой. В результате этих действий образ будет развернут на указанной конфигурации и создана карточка деплоя. В карточке указаны:
Используемый образ.
Хост, на который необходимо будет отправлять запросы. См. подробнее в Отправить синхронный HTTP-запрос к развернутой модели.
Сведения об используемых ресурсах, количестве активных запущенных экземпляров и возможный диапазон доступных модели экземпляров.
Возможно отфильтровать для отображения только те записи, которые соответствуют заданным условиям.
Для добавления фильтра по типу нажмите .
Затем — Добавить фильтр.
Отфильтруйте данные.
Важно
Основные причины ошибок в развертывании модели:
Ошибки в serving-скрипте. Рекомендуем протестировать serving-скрипт локально на сервисе с помощью терминала. См. Валидация serving-скрипта.
Недостаточно свободных ресурсов на сервисе.
Модель разворачивается на базовом образе, в котором нет необходимых библиотек.
Раздельный деплой (Triton Inference Server)
Triton Inference Server (далее — Triton) — сервер для инференса моделей машинного обучения с открытым исходным кодом. Triton позволяет разворачивать любую модель искусственного интеллекта, обученную с использованием наиболее популярных фреймворков, включая TensorRT, TensorFlow, PyTorch, ONNX, OpenVINO, Python, RAPIDS FIL и другие. Раздельный деплой позволяет оптимизировать производительность для разных типов запросов, включая запросы в реальном времени, пакетные запросы, ансамбли моделей, потоковое аудио и видео.
С помощью раздельного деплоя реализуются:
Автомасштабирование в рамках одной GPU под нагрузку.
Механизмы для создания конвейера моделей.
Балансировщик для входящих запросов.
Очередь на каждый активный экземпляр модели, чтобы выдерживать резкие скачки нагрузки.
Для создания Трансформера и Предиктора используйте образ cr.msk.sbercloud.ru/aicloud-base-images/triton22.04-py3:0.0.32.3
.
Предупреждение
Временно отсутствует возможность масштабировать трансформер и предиктор отдельно.
Временно отсутствует возможность монтировать внешнее хранилище с моделями (S3 или NFS).
Устанавливайте трансформеру как можно меньше ресурсов, чтобы они оставались модели.
Асинхронные вызовы не поддерживаются.
Для отправки запросов к раздельному деплою используйте интерфейс платформы ML Space.
См.также
Ниже представлены схемы взаимодействия с сервисом.
Real time deploy
У пользователя есть обученная сериализованная (pickle, h5, checkpoints и др.) модель.
Пользователь загружает модель и serving-скрипт на S3.
Посредством UI/API/Jupyter Notebook (функции client_lib) пользователь вызывает сборку образа и разворачивает образ на сервисе.
Автоматизированная система пользователя отправляет HTTP-запросы к модели через REST API и получает прогноз, классификацию и т.д.
Batch deploy
У пользователя есть обученная сериализованная (pickle, h5, checkpoints и др.) модель.
Пользователь загружает модель и serving-скрипт на S3.
Посредством UI/API/Jupyter Notebook (функции client_lib) пользователь вызывает сборку образа и разворачивает образ на сервисе.
Автоматизированная система пользователя отправляет на S3 данные (изображения, звуковые файлы и т.д.).
Автоматизированная система пользователя / задача по расписанию инициирует обработку всего, что находится в каталоге на бакете S3. Прогноз либо сохраняется на S3, либо повторно передается к АС пользователя.
Модель отправляет предсказание.
Async inference deploy
У пользователя есть обученная сериализованная (pickle, h5, checkpoints и др.) модель.
Пользователь загружает модель и serving-скрипт на S3.
Посредством UI/API/Jupyter Notebook (функции client_lib) пользователь вызывает сборку образа и разворачивает образ на платформе.
Автоматизированная система пользователя отправляет на S3 данные (изображения, звуковые файлы и т.д.).
Автоматизированная система пользователя или задача по расписанию инициирует обработку всего, что находится в каталоге на бакете S3. Пользователь/автоматизированная система получает идентификатор асинхронного запроса.
По результатам обработки пользователь/автоматизированная система получает статус асинхронного запроса.
После выполнения пользователь/автоматизированная система получает результат выполнения асинхронного запроса.