COMRAD404 / GLOSSARY

Model serving (сервинг модели)

Model serving

Model serving — это слой ML-инфраструктуры, который публикует обученную модель как сервис для инференса. Ниже — простое объяснение, схема работы, практический пример и ограничения.

TL;DR

Model serving — это слой ML-инфраструктуры, который публикует обученную модель как сервис для инференса и контролирует её готовность к запросам.

Model serving (сервинг модели) — это слой ML-инфраструктуры, который делает обученную модель доступной для инференса как сервис: локально, по API или внутри Kubernetes. Если упростить, serving принимает запрос, проверяет готовность, передаёт данные в модель и возвращает ответ; обзорная работа Desiderata for next generation of ML model serving прямо относит инференс к значимой части программной инфраструктуры ML.

Это не обучение и не дообучение модели. Model serving относится к эксплуатационной стороне: как загрузить модель, как понять, что она готова, по какому протоколу к ней обращаться и как держать её доступной под реальной нагрузкой.

Английский термин: model serving. В официальных документах рядом часто встречаются inference и inference server: это близкие, но не одинаковые термины. Inference — сам процесс вывода, а inference server — конкретный серверный компонент, например NVIDIA Triton или MLServer.

Простыми словами

Грубо говоря, model serving — это «окно выдачи» для модели. Модель уже обучена и лежит где-то на диске или в контейнере, а serving делает так, чтобы ваше приложение могло отправить запрос и получить ответ без знания внутренних деталей.

Аналогия неточная, но полезная: обучение модели похоже на приготовление блюда, а serving — на работу линии выдачи. Пользователю не нужен рецепт; ему важны доступность, время ожидания и то, принимает ли система заказ прямо сейчас.

Как это работает

На базовом уровне схема выглядит так:

Клиент или приложение
        │
        │ HTTP / REST / gRPC запрос
        ▼
Слой model serving / inference server
        │
        ├─ проверка готовности
        ├─ выбор загруженной модели
        ├─ передача данных в инференс
        └─ формирование ответа
        ▼
Модель
        │
        ▼
Ответ клиенту

Последовательность обычно такая:

  1. Сервер serving запускается и загружает модель или набор моделей.
  2. Проверяется готовность принимать трафик. В quickstart NVIDIA Triton это делается через curl -v localhost:8000/v2/health/ready; система считается готовой, когда endpoint возвращает HTTP 200, а модели имеют статус READY.
  3. Клиент отправляет запрос по сетевому интерфейсу. У MLServer официально заявлены REST и gRPC с совместимостью с протоколом V2.
  4. Сервер передаёт запрос в модель и возвращает результат приложению.
  5. В более развитых конфигурациях сервер может держать несколько моделей одновременно. Для MLServer в документации отдельно указаны multi-model serving и adaptive batching; KServe и Seldon Core добавляют Kubernetes-уровень вокруг такого инференса.

Практический смысл этой схемы в том, что serving отделяет код приложения от деталей выполнения модели. Поэтому одна и та же прикладная логика может обращаться к локальному сервису BentoML, к Triton или к Kubernetes-обвязке вроде KServe — если протокол и контракт вызова совпадают.

Где применяется

  • Локальная разработка и отладка API. В документации BentoML указано, что bentoml serve поднимает локальный model server, а endpoint по умолчанию — http://localhost:3000/. Это удобно, когда вы сначала хотите проверить контракт запроса и ответа на своей машине.
  • Kubernetes-native инференс. KServe выступает как входная точка для inference services в Kubernetes. При этом quickstart прямо помечен как вариант только для экспериментов и требует Kubernetes 1.32 или выше.
  • Выделенный inference server. Triton — это отдельный inference server; quickstart запускает его из NGC container и предлагает проверять готовность через стандартный endpoint.
  • Несколько моделей и единый протокол. MLServer описан как open-source inference server с REST/gRPC, совместимостью с V2, multi-model serving и adaptive batching. Вокруг него или аналогичных серверов можно строить более широкий слой MLOps/LLMOps, например в Kubernetes.

Для LLM-проектов serving особенно заметен на этапе, когда вы решаете, какую именно модель выкатывать: базовую или instruct, какие параметры декодирования передавать, например Top-p / Nucleus Sampling, и как обрабатывать пользовательские сценарии вроде zero-shot prompting. Если вы выбираете между более тяжёлой цепочкой рассуждений и обычным ответом, полезно отдельно посмотреть сравнение reasoning model vs обычная LLM, потому что требования к инференсу и задержке будут разными.

Практический пример

Задача: быстро понять, что слой serving не просто запущен, а действительно готов принимать запросы.

Два минимальных сценария из официальных материалов:

# BentoML: локальный server для разработки
bentoml serve

# По документации локальный endpoint по умолчанию
http://localhost:3000/

# Проверка готовности на стороне клиента
client.is_ready()

# Triton: проверка readiness endpoint
curl -v localhost:8000/v2/health/ready

# Сигнал готовности в quickstart Triton:
# endpoint возвращает HTTP 200
# и модели имеют статус READY

Здесь важно не путать «процесс стартовал» и «модель готова к инференсу». Для production-практики это разные состояния: именно поэтому документация Triton и BentoML отдельно показывает механизмы readiness-check.

Чем отличается от близких терминов

Термин Что означает Чем отличается от model serving
Inference Сам процесс получения предсказания или ответа от модели. Model serving шире: он организует доступ к инференсу как к сервису.
Inference server Конкретный серверный компонент, например Triton или MLServer. Это часть serving-слоя, а не всегда вся эксплуатационная система целиком.
MLOps/LLMOps framework Более широкий слой оркестрации и эксплуатации, например Seldon Core для Kubernetes. Framework может включать model serving, но не сводится только к нему.

Если вам нужен короткий ориентир: inference отвечает на вопрос «как модель считает ответ», inference server — «каким сервером это отдаётся», а model serving — «как всё это публикуется и поддерживается в работе для клиента или приложения».

Ограничения и заблуждения

  • Заблуждение: model serving = обучение модели. Нет. В источниках речь идёт об инференсе и инфраструктуре вокруг него, а не о training или fine-tuning.
  • Заблуждение: любой quickstart подходит для production. Нет. KServe отдельно предупреждает, что quickstart предназначен только для экспериментов.
  • Заблуждение: один продукт закрывает весь стек. Не всегда. Triton и MLServer — это inference servers; KServe и Seldon Core добавляют Kubernetes-уровень и более широкую эксплуатационную оболочку.
  • Практическое ограничение: документацию нужно читать по правильной ветке. В собранных материалах по KServe есть расхождение: landing page показывает версию 0.18, а в quickstart встречаются versioned install snippets, которые требуют отдельной проверки ветки документации перед внедрением.
  • Ограничение по закупке и лицензированию. В проверенном пакете нет публичных цен и региональной доступности managed/commercial вариантов; для Seldon Core README отдельно отсылает коммерческие вопросы на официальный сайт. Для выбора поставщика этого материала недостаточно.
  • Платформенные ограничения тоже важны. В карточках кандидатов из source pack указано, что BentoML по умолчанию поднимает локальный endpoint, а production scaling вы настраиваете сами; для Triton отмечено, что CPU-only режим поддерживается, но GPU-only модели без GPU не загрузятся.

Редакционное ограничение: этот материал объясняет термин и сравнивает типичные OSS-инструменты только по официальной документации и релизам, проверенным на 2026-08-14. Он не заменяет проектный аудит production-архитектуры.

Практический вердикт: если вам нужно понять термин, запомните простое правило: model serving начинается там, где обученная модель превращается в доступный и проверяемый сервис инференса. Для локального старта удобно смотреть на BentoML, для выделенного inference server — на Triton или MLServer, а для Kubernetes-эксплуатации — на KServe и Seldon, но выбор зависит от среды и требований к готовности.

Связанные термины и инструменты

Вопросы и ответы

Model serving и inference server — это одно и то же?

Не совсем. Inference server — это конкретный серверный компонент, а model serving — более широкий эксплуатационный слой вокруг доступа к модели для инференса.

Можно ли считать локальный запуск через BentoML полноценным model serving?

Для разработки — да: документация BentoML прямо говорит, что bentoml serve поднимает локальный model server. Но вопросы production-масштабирования в этом случае остаются на вашей стороне.

Подходит ли KServe quickstart для production?

Нет. В официальном quickstart KServe прямо указано, что он предназначен только для экспериментов, и отдельно задано требование Kubernetes 1.32+.

Как проверить, что сервер serving действительно готов?

В Triton quickstart это делается через curl -v localhost:8000/v2/health/ready: нужен HTTP 200 и статус моделей READY. В BentoML документация показывает проверку через client.is_ready().

Источники

Источники

SOURCES

Вопросы и ответы

FAQ
Model serving и inference server — это одно и то же?

Не совсем. Inference server — это конкретный серверный компонент, а model serving — более широкий эксплуатационный слой вокруг доступа к модели для инференса.

Можно ли считать локальный запуск через BentoML полноценным model serving?

Для разработки — да: документация BentoML прямо говорит, что bentoml serve поднимает локальный model server. Но production-масштабирование в этом случае остаётся на вашей стороне.

Подходит ли KServe quickstart для production?

Нет. В официальном quickstart KServe прямо указано, что он предназначен только для экспериментов и требует Kubernetes 1.32 или выше.

Как проверить, что сервер serving действительно готов?

В Triton quickstart это делается через curl -v localhost:8000/v2/health/ready: нужен HTTP 200 и статус моделей READY. В BentoML документация показывает проверку через client.is_ready().

Читайте также

LINKS