Сервис инференса
Основное назначение функции сервиса инференса — развертывать обученные модели машинного обучения или deep learning как онлайн-сервисы, доступные по вызову, с использованием таких протоколов, как HTTP API или gRPC, чтобы приложения могли использовать функции модели по предсказанию, классификации, генерации и другие возможности в реальном времени или пакетно. Эта функция в первую очередь решает задачу эффективного, стабильного и удобного развертывания моделей в production-среды после завершения обучения модели, а также предоставления масштабируемых онлайн-сервисов.
Содержание
ПреимуществаОсновные возможностиСоздать сервис инференсаУправление шаблонами inference-сервисовОбновление inference-сервисаВызов опубликованного inference-сервисаИнтерактивный инференсВызов через HTTP APIОписание параметров инференсаОписание параметров для разных типов задачГенерация текстаТекст в изображениеКлассификация текстаДополнительные ссылкиПреимущества
- Упрощает процесс развертывания модели, снижая сложность публикации.
- Предоставляет высокодоступные, высокопроизводительные онлайн- и пакетные inference-сервисы.
- Поддерживает динамическое обновление моделей и управление версиями.
- Реализует автоматизированную эксплуатацию, обслуживание и мониторинг inference-сервисов.
Основные возможности
Прямое развертывание модели для inference-сервисов
- Позволяет пользователям напрямую выбирать конкретные версии файлов модели из репозитория моделей и указывать образ среды выполнения инференса, чтобы быстро развернуть онлайн inference-сервисы. Система автоматически загружает, кэширует и подгружает модель, запуская inference-сервис. Это упрощает процесс развертывания модели и снижает порог входа.
Приложение для inference-сервисов
- Используйте приложения Kubernetes в качестве inference-сервисов. Такой подход обеспечивает большую гибкость и позволяет пользователям настраивать среду инференса в соответствии со своими потребностями.
Управление шаблонами inference-сервисов
- Поддерживает создание, управление и удаление шаблонов inference-сервисов, позволяя пользователям быстро развертывать inference-сервисы на основе предопределенных шаблонов.
Пакетные операции с inference-сервисами
- Поддерживает пакетные операции над несколькими inference-сервисами, такие как пакетный запуск, остановка, обновление и удаление.
- Поддерживает создание, мониторинг и экспорт результатов пакетных задач инференса.
- Предоставляет пакетное управление ресурсами, позволяя выделять и корректировать ресурсы inference-сервисов пакетно.
Интерфейс инференса
- Предоставляет интерактивный интерфейс, который упрощает тестирование и использование inference-сервисов пользователями.
- Поддерживает несколько форматов входных и выходных данных, чтобы соответствовать потребностям различных сценариев применения.
- Предоставляет инструменты оценки производительности модели, помогающие пользователям оптимизировать развертывание модели.
Поддержка среды выполнения инференса
- Интегрирует различные основные фреймворки инференса, такие как vLLM, Seldon MLServer и т. д., а также поддерживает пользовательские среды выполнения инференса.
- vLLM: Оптимизирован для больших языковых моделей (LLM), таких как DeepSeek/Qwen, обеспечивает высокопараллельную обработку и повышенную пропускную способность при высокой эффективности использования ресурсов.
- MLServer: Предназначен для традиционных ML-моделей (XGBoost/классификация изображений), обеспечивает совместимость с несколькими фреймворками и упрощенную отладку.
Способы доступа, журналы, Swagger, мониторинг и т. д.
- Предоставляет несколько способов доступа, таких как HTTP API и gRPC.
- Поддерживает детальную запись и анализ журналов, чтобы облегчить устранение неполадок пользователями.
- Автоматически генерирует документацию Swagger, чтобы упростить интеграцию и вызов inference-сервисов.
- Предоставляет функции мониторинга и оповещения в реальном времени для обеспечения стабильной работы сервиса.
Создать сервис инференса
Шаг 1: Перейдите в Model Repository
В левой панели навигации нажмите Model Repository
Для пользовательской публикации inference-сервиса требуется ручная настройка параметров. Вы также можете создать «шаблон», объединив входные параметры для быстрой публикации inference-сервисов.
Шаг 2: Начните публикацию inference-сервиса
Нажмите на имя модели, чтобы перейти на страницу сведений о модели, затем нажмите 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, чтобы развернуть inference-сервис
-
Custom Publish:
- Нажмите Custom Publish
- Перейдите в форму пользовательской публикации и настройте параметры
- Нажмите Publish, чтобы развернуть inference-сервис
Шаг 5: Отслеживайте и управляйте inference-сервисом
Вы можете просматривать статус, журналы и другие сведения о опубликованном inference-сервисе в разделе Inference Service в левой панели навигации. Если inference-сервис не запускается или доступных ресурсов недостаточно, возможно, потребуется обновить или повторно опубликовать inference-сервис и изменить конфигурацию, которая могла привести к ошибке запуска.
Примечание: inference-сервис будет автоматически масштабироваться вверх и вниз между значениями «минимальное количество реплик» и «максимальное количество реплик» в зависимости от интенсивности запросов. Если значение «минимальное количество реплик» установлено в 0, inference-сервис автоматически приостанавливается и освобождает ресурсы, когда в течение некоторого времени нет запросов. В этом случае при поступлении запроса inference-сервис может автоматически запуститься и загрузить модель, закэшированную в PVC.
AML завершает выпуск и эксплуатацию облачных нативных inference-сервисов на основе CRD kserve InferenceService. Если вы знакомы с использованием kserve, вы также можете нажать кнопку "YAML" в правом верхнем углу при выборе "Publish inference service directly from model", чтобы напрямую изменить YAML-файл и выполнить более сложные операции публикации.
Описание параметров публикации модели
Управление шаблонами inference-сервисов
AML представляет Template Publish для быстрого развертывания inference-сервисов. Вы можете создавать и удалять шаблоны (для обновления шаблонов требуется создать новый).
Шаг 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-сервиса
- В левой панели навигации нажмите Inference Service.
- Нажмите inference service name.
- На странице сведений о inference-сервисе нажмите Actions > Update в правом верхнем углу, чтобы перейти на страницу обновления.
- Измените необходимые поля и нажмите Update. Система выполнит rolling update, чтобы не нарушить работу существующих клиентских запросов.
Вызов опубликованного inference-сервиса
AML предоставляет визуальный способ "Inference Experience" для доступа к опубликованному inference-сервису для распространенных типов задач; вы также можете использовать метод HTTP API для вызова inference-сервиса.
Интерактивный инференс
AML поддерживает демонстрацию инференса inference-сервиса для следующих типов задач (тип задачи указывается в метаданных модели):
- Генерация текста
- Классификация текста
- Классификация изображений
- Текст в изображение
После успешной публикации inference-сервиса для указанных выше типов задач вы можете отобразить диалоговое окно "Inference Experience" справа на странице сведений о модели и на странице сведений о inference-сервисе. В зависимости от типа задачи инференса типы входных и выходных данных могут различаться. Например, для генерации текста введите текст, и после текста, введенного в текстовое поле, можно добавить текст, сгенерированный моделью, синим шрифтом. Интерактивный инференс поддерживает выбор различных inference-сервисов, развернутых в разных кластерах и опубликованных одним и тем же модельным артефактом несколько раз. После выбора inference-сервиса именно он будет вызван для возврата результата инференса.
Вызов через HTTP API
После публикации inference-сервиса вы можете вызывать его в приложениях или других сервисах. В этом документе в качестве примера будет использоваться код на Python, чтобы показать, как вызывать опубликованный inference API.
-
В левой панели навигации нажмите Inference Service > Inference Service Name, чтобы перейти на страницу сведений о inference-сервисе.
-
Нажмите вкладку Access Method, чтобы получить способ доступа внутри кластера или вне кластера. К способу доступа внутри кластера можно обращаться напрямую из Notebook или других контейнеров в этом кластере K8s. Если требуется доступ из-за пределов кластера (например, с локального ноутбука), необходимо использовать способ доступа вне кластера.
-
Нажмите Call Example, чтобы просмотреть пример кода.
Примечание: Код, приведенный в примере вызова, представляет собой только протокол вызова API, поддерживаемый inference-сервисом, опубликованным с использованием среды выполнения mlserver (Seldon MLServer). Кроме того, вкладка Swagger также поддерживает доступ только к inference-сервису, опубликованному средой выполнения mlserver.
Описание параметров инференса
При вызове inference-сервиса можно регулировать эффект вывода модели, изменяя параметры инференса модели. В интерфейсе "Inference Experience" заранее подготовлены общие параметры и значения по умолчанию, а также можно добавить любые пользовательские параметры.
Описание параметров для разных типов задач
Генерация текста
Предустановленные параметры
Другие параметры
Дополнительные параметры см. в Text Generation Parameter Configuration.
Текст в изображение
Предустановленные параметры
Другие параметры
Дополнительные параметры см. в Text-to-Image Parameter Configuration.
Классификация текста
Предустановленные параметры
Дополнительные параметры см. в Text Classification Parameter Configuration
Дополнительные ссылки
Image Classification Parameter Configuration
Conversational Parameter Configuration
Summarization Parameter Configuration
Translation Parameter Configuration