Inference Service
Основное определение функции inference service — развертывание обученных моделей машинного обучения или глубокого обучения в виде онлайн-сервисов, доступных по протоколам таким как HTTP API или gRPC, что позволяет приложениям использовать функции модели для предсказания, классификации, генерации и других задач в режиме реального времени или пакетной обработки. Эта функция в основном решает задачу эффективного, стабильного и удобного развертывания моделей в продуктивных средах после завершения обучения модели и предоставляет масштабируемые онлайн-сервисы.
Содержание
ПреимуществаОсновные возможностиСоздание inference-сервисаУправление шаблонами inference-сервисовОбновление inference-сервисаВызов опубликованного inference-сервисаInference ExperienceВызов через HTTP APIОписание параметров inferenceОписание параметров для разных типов задачГенерация текстаТекст в изображениеКлассификация текстаДополнительные ссылкиПреимущества
- Упрощает процесс развертывания моделей, снижая сложность деплоя.
- Обеспечивает высокодоступные, высокопроизводительные онлайн и пакетные inference-сервисы.
- Поддерживает динамическое обновление моделей и управление версиями.
- Реализует автоматизированную эксплуатацию, сопровождение и мониторинг inference-сервисов.
Основные возможности
Прямое развертывание моделей для inference-сервисов
- Позволяет пользователям напрямую выбирать конкретные версии файлов модели из репозитория моделей и указывать образ inference runtime для быстрого развертывания онлайн inference-сервисов. Система автоматически скачивает, кэширует и загружает модель, запуская inference-сервис. Это упрощает процесс развертывания модели и снижает порог входа.
Приложение для inference-сервисов
- Использование Kubernetes-приложений в качестве inference-сервисов. Такой подход обеспечивает большую гибкость, позволяя пользователям настраивать среду inference в соответствии с их потребностями.
Управление шаблонами inference-сервисов
- Поддержка создания, управления и удаления шаблонов inference-сервисов, что позволяет пользователям быстро развертывать inference-сервисы на основе заранее определённых шаблонов.
Пакетные операции с inference-сервисами
- Поддержка пакетных операций с несколькими inference-сервисами, таких как массовый запуск, остановка, обновление и удаление.
- Возможность создавать, мониторить и экспортировать результаты пакетных задач inference.
- Предоставление пакетного управления ресурсами, позволяющего выделять и корректировать ресурсы inference-сервисов пакетно.
Опыт работы с inference
- Предоставление интерактивного интерфейса для удобного тестирования и ознакомления пользователей с inference-сервисами.
- Поддержка множества форматов ввода и вывода для удовлетворения потребностей различных сценариев применения.
- Предоставление инструментов оценки производительности моделей для помощи пользователям в оптимизации развертывания моделей.
Поддержка inference runtime
- Интеграция различных популярных inference-фреймворков, таких как vLLM, Seldon MLServer и др., а также поддержка пользовательских inference runtime.
- vLLM: Оптимизирован для больших языковых моделей (LLM) типа DeepSeek/Qwen, обеспечивает высокую параллельность обработки и повышенную пропускную способность при отличной эффективности использования ресурсов.
- MLServer: Предназначен для традиционных ML-моделей (XGBoost/классификация изображений), обеспечивает совместимость с несколькими фреймворками и упрощённую отладку.
Методы доступа, логи, Swagger, мониторинг и др.
- Предоставляет несколько методов доступа, таких как HTTP API и gRPC.
- Поддерживает подробную запись и анализ логов для облегчения устранения неполадок пользователями.
- Автоматически генерирует документацию Swagger для упрощения интеграции и вызова inference-сервисов.
- Обеспечивает функции мониторинга в реальном времени и оповещений для стабильной работы сервиса.
Создание 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: Выбор режима публикации и настройка
Перейдите на страницу выбора режима публикации. AML предлагает варианты Custom Publish и Template Publish.
-
Template Publish:
- Выберите модель и нажмите Template Name
- Откроется форма публикации шаблона, где параметры из шаблона загружены заранее, но могут быть отредактированы вручную
- Нажмите Publish для развертывания inference-сервиса
-
Custom Publish:
- Нажмите Custom Publish
- Заполните форму пользовательской публикации и настройте параметры
- Нажмите Publish для развертывания inference-сервиса
Шаг 5: Мониторинг и управление inference-сервисом
Вы можете просматривать статус, логи и другие детали опубликованного inference-сервиса в разделе Inference Service в левой навигации. Если inference-сервис не запускается или ресурсов недостаточно, возможно, потребуется обновить или перепубликовать сервис, изменив конфигурацию, которая могла вызвать сбой запуска.
Примечание: Inference-сервис автоматически масштабируется между «минимальным» и «максимальным» числом реплик в зависимости от трафика запросов. Если «минимальное число реплик» установлено в 0, сервис автоматически приостанавливается и освобождает ресурсы при отсутствии запросов в течение некоторого времени. При поступлении запроса сервис автоматически запускается и загружает модель, кэшированную в PVC.
AML реализует выпуск и эксплуатацию cloud native inference-сервисов на базе kserve InferenceService CRD. Если вы знакомы с использованием kserve, вы также можете нажать кнопку "YAML" в правом верхнем углу при публикации inference-сервиса напрямую из модели для редактирования 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-сервиса.
- На странице деталей inference-сервиса нажмите Actions > Update в правом верхнем углу, чтобы перейти на страницу обновления.
- Измените необходимые поля и нажмите Update. Система выполнит rolling update, чтобы избежать прерывания текущих клиентских запросов.
Вызов опубликованного inference-сервиса
AML предоставляет визуальный метод "Inference Experience" для типовых задач, чтобы обращаться к опубликованному inference-сервису; также можно использовать HTTP API для вызова inference-сервиса.
Inference Experience
AML поддерживает демонстрацию inference-сервисов для следующих типов задач (тип задачи указывается в метаданных модели):
- Генерация текста
- Классификация текста
- Классификация изображений
- Текст в изображение
После успешной публикации inference-сервиса для указанных типов задач на странице деталей модели и странице деталей inference-сервиса справа отображается диалоговое окно "Inference Experience". В зависимости от типа задачи ввода и вывода данные могут отличаться. Например, для генерации текста введите текст, и после введённого текста в текстовом поле будет добавлен синий шрифт с текстом, сгенерированным моделью. Опыт inference поддерживает выбор различных inference-сервисов, развернутых в разных кластерах и опубликованных несколько раз одной и той же моделью. После выбора inference-сервиса он будет вызван для возврата результата inference.
Вызов через HTTP API
После публикации inference-сервиса вы можете вызывать его из приложений или других сервисов. В этом документе приведён пример на Python, показывающий, как вызвать опубликованный inference API.
-
В левой навигационной панели нажмите Inference Service > Имя Inference Service, чтобы перейти на страницу деталей inference-сервиса.
-
Перейдите на вкладку Access Method, чтобы получить метод доступа внутри кластера или вне кластера. Метод внутри кластера доступен напрямую из Notebook или других контейнеров в этом кластере K8s. Для доступа извне кластера (например, с локального ноутбука) используйте метод доступа вне кластера.
-
Нажмите Call Example, чтобы просмотреть пример кода.
Примечание: код, приведённый в примере вызова, поддерживает только протокол API, используемый inference-сервисом, опубликованным с runtime mlserver (Seldon MLServer). Кроме того, вкладка Swagger поддерживает доступ только к inference-сервисам, опубликованным с runtime mlserver.
Описание параметров inference
При вызове inference-сервиса вы можете настроить поведение вывода модели, изменяя параметры 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