← Кейсыинференс
Inference-платформа на KServe для ML и LLM
В проде одновременно живут классические ML-модели и LLM. Вместо модели в виде веб-сервиса в общем PaaS сделали отдельную inference-платформу на KServe в геораспределённом кластере.
Цифры
Было
- Модель запускали как обычный веб-сервис в PaaS компании, вперемешку с бизнес-логикой: свой код, своя сборка, своя выкатка.
- Путь модели до прода занимал дни.
- У ML-моделей и LLM разные требования: LLM нужен большой трафик на одну модель, ML-моделям нужно быстро обновляться.
Стало
- Модель из registry запускается на платформе за минуты, без отдельного сервиса с бизнес-логикой.
- ML и LLM в одном месте, больше 10 тыс. RPS на платформе.
- Платформа работает в геораспределённом кластере, в нескольких дата-центрах.
- Новая версия модели подменяется в работающем сервисе без перезапуска.
Что сделали
Отдельная платформа вместо общего PaaS. Выбрали open source KServe: он умеет и ML, и LLM в одном месте, а новые фичи подтягивает комьюнити.
ML-инференс в двух режимах KServe: Knative (serverless) и Standard.
Дезагрегированный LLM-инференс. LLM живут в отдельных сущностях KServe (LLMInferenceService): prefill и decode разнесены и скейлятся независимо, KV-cache распределённый.
Model Registry и Model Delivery связаны с инференсом. Registry хранит в S3 ML-модели, репозитории для Triton и LLM с Hugging Face, всё версионируется. Delivery подменяет модель в работающем сервисе без перезапуска.
Геораспределённый кластер: платформа работает сразу в нескольких дата-центрах.
Стек
KServeLLMInferenceServiceKnativeIstioS3MySQLTritonHugging Face
Моя роль
Разрабатываю inference-платформу: Knative- и Standard-режимы для ML и LLM и сервис распределённого дезагрегированного LLM-инференса.