Сервис инференса
Базовое определение функции сервиса инференса заключается в развертывании обученных моделей машинного обучения или deep learning в виде онлайн-вызовов через сервисы с использованием таких протоколов, как HTTP API или gRPC, что позволяет приложениям в реальном времени или пакетно использовать возможности модели для предсказания, классификации, генерации и других задач. Эта функция в первую очередь решает задачу эффективного, стабильного и удобного развертывания моделей в production-среде после завершения обучения, а также предоставления масштабируемых онлайн-сервисов.
Содержание
ПреимуществаОсновные возможностиСоздание сервиса инференсаУправление шаблонами сервисов инференсаОбновление сервиса инференсаВызов опубликованного сервиса инференсаИнтерактивная демонстрация инференсаВызов через HTTP APIОписание параметров инференсаОписание параметров для разных типов задачГенерация текстаText-to-ImageКлассификация текстаДополнительные ссылкиПреимущества
- Упрощает процесс развертывания модели, снижая его сложность.
- Обеспечивает высокодоступные и высокопроизводительные онлайн- и batch-сервисы инференса.
- Поддерживает динамическое обновление моделей и управление версиями.
- Реализует автоматизированную эксплуатацию, обслуживание и мониторинг сервисов инференса моделей.
Основные возможности
Прямое развертывание модели для сервисов инференса
- Позволяет пользователям напрямую выбирать конкретные версии файлов модели из репозитория моделей и указывать image среды выполнения инференса для быстрого развертывания онлайн-сервисов инференса. Система автоматически загружает, кэширует и инициализирует модель, запуская сервис инференса. Это упрощает процесс развертывания модели и снижает порог входа.
Применение Kubernetes-приложений для сервисов инференса
- Используйте Kubernetes-приложения в качестве сервисов инференса. Этот подход обеспечивает большую гибкость и позволяет пользователям настраивать среду инференса в соответствии со своими требованиями.
Управление шаблонами сервисов инференса
- Поддерживает создание, управление и удаление шаблонов сервисов инференса, позволяя пользователям быстро развертывать сервисы инференса на основе заранее определенных шаблонов.
Пакетная обработка сервисов инференса
- Поддерживает пакетные операции над несколькими сервисами инференса, такие как пакетный запуск, остановка, обновление и удаление.
- Поддерживает создание, мониторинг и экспорт результатов пакетных задач инференса.
- Обеспечивает пакетное управление ресурсами, позволяя выделять и настраивать ресурсы сервисов инференса пакетно.
Интерактивная демонстрация инференса
- Предоставляет интерактивный интерфейс, упрощающий тестирование и ознакомление пользователей с сервисами инференса.
- Поддерживает несколько форматов входных и выходных данных, чтобы соответствовать требованиям различных сценариев применения.
- Предоставляет инструменты оценки производительности моделей, помогающие пользователям оптимизировать развертывание модели.
Поддержка runtime инференса
- Интегрирует различные популярные фреймворки инференса, такие как vLLM, Seldon MLServer и т. д., а также поддерживает пользовательские runtime инференса.
- vLLM: Оптимизирован для больших языковых моделей (LLM), таких как DeepSeek/Qwen, обеспечивает высокую производительность при высокой конкуренции запросов и повышенную пропускную способность при высокой эффективности использования ресурсов.
- MLServer: Предназначен для традиционных ML-моделей (XGBoost/классификация изображений), обеспечивает совместимость с несколькими фреймворками и упрощенную отладку.
Способы доступа, логи, Swagger, мониторинг и т. д.
- Предоставляет несколько способов доступа, таких как HTTP API и gRPC.
- Поддерживает детальное ведение логов и их анализ для упрощения поиска и устранения неполадок.
- Автоматически генерирует документацию Swagger, упрощая интеграцию и вызов сервисов инференса.
- Предоставляет функции мониторинга и оповещения в реальном времени для обеспечения стабильной работы сервиса.
Создание сервиса инференса
Шаг 1: Перейдите в Model Repository
В левой панели навигации нажмите Model Repository
Для пользовательской публикации сервиса инференса требуется ручная настройка параметров. Вы также можете создать "template", объединив входные параметры, для быстрой публикации сервисов инференса.
Шаг 2: Начните публикацию сервиса инференса
Нажмите на имя модели, чтобы перейти на страницу сведений о модели, затем нажмите Publish Inference Service в правом верхнем углу.
Шаг 3: При необходимости настройте метаданные модели
Если кнопка "Publish Inference Service" недоступна для нажатия, перейдите на вкладку "File Management", нажмите "Edit Metadata" и выберите "Task Type" и "Framework" в соответствии с фактической информацией о модели. (Чтобы изменения вступили в силу, необходимо изменить метаданные ветки по умолчанию.)
Шаг 4: Выберите режим публикации и выполните настройку
Перейдите на страницу Publish Mode Selection. AML предоставляет варианты Custom Publish и Template Publish.
-
Template Publish:
- Выберите модель и нажмите Template Name
- Перейдите в форму публикации шаблона, где параметры из шаблона уже предварительно загружены, но их можно изменить вручную
- Нажмите Publish, чтобы развернуть сервис инференса
-
Custom Publish:
- Нажмите Custom Publish
- Перейдите в форму пользовательской публикации и настройте параметры
- Нажмите Publish, чтобы развернуть сервис инференса
Шаг 5: Отслеживайте и управляйте сервисом инференса
Статус, логи и другие сведения о опубликованном сервисе инференса можно просматривать в разделе Inference Service в левой панели навигации. Если сервис инференса не запускается или доступных ресурсов недостаточно, может потребоваться обновить или повторно опубликовать сервис инференса и изменить конфигурацию, которая могла вызвать сбой запуска.
Примечание: Сервис инференса будет автоматически масштабироваться вверх и вниз между "minimum number of replicas" и "maximum number of replicas" в зависимости от трафика запросов. Если значение "minimum number of replicas" установлено в 0, сервис инференса будет автоматически приостанавливаться и освобождать ресурсы, когда в течение некоторого времени отсутствуют запросы. В этом случае при поступлении запроса сервис инференса может автоматически запуститься и загрузить модель, кэшированную в PVC.
AML выполняет публикацию и эксплуатацию cloud native сервисов инференса на основе kserve InferenceService CRD. Если вы знакомы с использованием kserve, вы также можете нажать кнопку "YAML" в правом верхнем углу на странице "Publish inference service directly from model", чтобы напрямую изменить YAML-файл и выполнить более сложные операции публикации.
Описание параметров для публикации модели
Управление шаблонами сервисов инференса
AML внедряет Template Publish для быстрого развертывания сервисов инференса. Вы можете создавать и удалять шаблоны (для обновления шаблонов требуется создавать новый шаблон).
Шаг 1: Создайте шаблон
- В левой панели навигации нажмите Inference Service > Create Inference Service
- Нажмите Custom Publish
- Перейдите на страницу формы и настройте параметры
- Нажмите Create Template
Шаг 2: Создайте новый шаблон на основе существующего
- В левой панели навигации нажмите Inference Service > Create Inference Service
- Выберите модель и нажмите Template Name
- При необходимости отредактируйте параметры
- Нажмите Create Template, чтобы сохранить как новый шаблон
Шаг 3: Удалите шаблон
- В левой панели навигации нажмите Inference Service > Create Inference Service
- На карточке шаблона нажмите Actions > Delete
- Подтвердите удаление
Обновление сервиса инференса
- В левой панели навигации нажмите Inference Service.
- Нажмите имя сервиса инференса.
- На странице сведений о сервисе инференса нажмите Actions > Update в правом верхнем углу, чтобы перейти на страницу обновления.
- Измените необходимые поля и нажмите Update. Система выполнит rolling update, чтобы не прерывать существующие запросы клиентов.
Вызов опубликованного сервиса инференса
AML предоставляет визуальный способ "Inference Experience" для доступа к опубликованному сервису инференса для распространенных типов задач; вы также можете использовать метод HTTP API для вызова сервиса инференса.
Интерактивная демонстрация инференса
AML поддерживает демонстрацию инференса для следующих типов задач (тип задачи указывается в метаданных модели):
- Генерация текста
- Классификация текста
- Классификация изображений
- Text to image
После успешной публикации сервиса инференса для вышеуказанных типов задач вы можете открыть диалоговое окно "Inference Experience" справа на странице сведений о модели и на странице сведений о сервисе инференса. В зависимости от типа задачи инференса типы входных и выходных данных могут отличаться. Например, для генерации текста введите текст, после чего модель может дописывать сгенерированный текст синим цветом после текста, введенного в текстовое поле. Интерактивная демонстрация инференса поддерживает выбор различных сервисов инференса, развернутых в разных кластерах и опубликованных одной и той же моделью несколько раз. После выбора сервиса инференса именно этот сервис будет вызван для возврата результата инференса.
Вызов через HTTP API
После публикации сервиса инференса вы можете вызывать этот сервис в приложениях или других службах. В этом документе в качестве примера показан Python-код, демонстрирующий, как вызывать опубликованный inference API.
-
В левой панели навигации нажмите Inference Service > Inference Service Name, чтобы перейти на страницу сведений о сервисе инференса.
-
Нажмите вкладку Access Method, чтобы получить способ доступа изнутри кластера или извне кластера. Способ доступа изнутри кластера можно использовать напрямую из Notebook или других контейнеров в этом кластере K8s. Если требуется доступ из-за пределов кластера (например, с локального laptop), необходимо использовать способ доступа извне кластера.
-
Нажмите Call Example, чтобы просмотреть пример кода.
Примечание: Код, приведенный в примере вызова, поддерживает только протокол вызова API, реализованный для сервиса инференса, опубликованного с использованием runtime mlserver (Seldon MLServer). Кроме того, вкладка Swagger также поддерживает только доступ к сервису инференса, опубликованному с использованием runtime mlserver.
Описание параметров инференса
При вызове сервиса инференса вы можете изменять результат работы модели, настраивая параметры инференса. В интерфейсе Inference Experience заранее заданы общие параметры и значения по умолчанию, а также можно добавлять любые пользовательские параметры.
Описание параметров для разных типов задач
Генерация текста
Предустановленные параметры
Другие параметры
Для получения дополнительных параметров см. Text Generation Parameter Configuration.
Text-to-Image
Предустановленные параметры
Другие параметры
Для получения дополнительных параметров см. Text-to-Image Parameter Configuration.
Классификация текста
Предустановленные параметры
Для получения дополнительных параметров см. Text Classification Parameter Configuration
Дополнительные ссылки
Image Classification Parameter Configuration
Conversational Parameter Configuration
Summarization Parameter Configuration
Translation Parameter Configuration