Как внедрить ML-модель — пакетный расчёт или онлайн-сервис?
- Как задеплоить модель на FastAPI?
- Чем batch-инференс отличается от онлайн-инференса?
Пакетный расчёт (batch): по расписанию модель считает прогнозы для всех объектов и пишет их в таблицу (отток на завтра, рекомендации на сутки) — просто, дёшево, легко проверить. Онлайн-сервис: прогноз по запросу в момент действия пользователя (антифрод при платеже, ранжирование выдачи) — нужен, когда признаки появляются в моменте или нужна мгновенная реакция. Сервис обычно — FastAPI с загруженной при старте моделью в Docker-образе, с версией модели, проверкой входа, метриками задержки и ошибок.
- Начинать с пакетного, если задача это допускает
- Модель грузится один раз при старте, а не на каждый запрос
- Признаки при обучении и в сервисе считаются одним кодом — иначе training-serving skew
А ещё Логируйте входы и прогнозы — без них нельзя ни мониторить дрейф, ни разбирать ошибки
Подробно
Пример сервиса:
from fastapi import FastAPI
from pydantic import BaseModel
import joblib
app = FastAPI()
model = joblib.load("model-2026-10-01.joblib")
class Features(BaseModel):
tenure_days: int
orders_30d: int
@app.post("/predict")
def predict(f: Features):
p = model.predict_proba([[f.tenure_days, f.orders_30d]])[0, 1]
return {"churn_proba": p, "model_version": "2026-10-01"}
Что ещё нужно: health-check, метрики p95 задержки, ограничение размера запроса, постепенная выкатка новой версии, откат на прошлую, логирование прогнозов с идентификатором версии.
Что хотят услышать
- Пакетный и онлайн-инференс, критерии выбора.
- Сервис на FastAPI в Docker.
- Версия модели, единый код признаков.
- Логирование для мониторинга.
Проверьте себя
Один верный вариант. Подумайте, потом откройте ответ.
Показать варианты и ответ
- ✗Модель лучше загружать из файла при каждом запросе — так она всегда свежая
- ✓Пакетно — если прогноз считается заранее, онлайн — если нужен сразу
- ✗Онлайн-сервис всегда лучше пакетного расчёта
- ✗Логировать прогнозы модели не нужно
Связанные вопросы
Разбор собеседования с sotto
После собеседования sotto разбирает разговор: оценка, каждый вопрос — хорошо, частично или слабо, чего не хватило в ответе и над чем поработать к следующему разу. Первые 30 минут бесплатно.