Системный дизайн ML-сервисов

Reliability

Отказоустойчивость

актуальноТекущий рабочий стандарт

Что происходит, когда модель недоступна, отвечает медленно или выдаёт мусор.

Ключевые тезисы

  • Таймаут и фолбэк на простое правило — обязательный минимум.
  • Circuit breaker отключает проблемную зависимость и даёт ей восстановиться.
  • Валидация выхода модели: NaN, значения вне диапазона и пустые ответы должны отсекаться до пользователя.
Тема также относится к главам:MLOpsЭксплуатация

Подробный разбор

2 подтем — раскройте любую, чтобы увидеть объяснение, формулы, примеры и интерактивные графики.

1

Фолбэки

Что отвечать, когда модель недоступна.

  1. Кешированное предыдущее предсказание для этого объекта.
  2. Предсказание более простой и быстрой модели.
  3. Эвристическое правило или среднее по сегменту.
  4. Явный отказ с понятным кодом — лучше, чем случайный ответ.
На практике

Фолбэк нужно тестировать регулярно, иначе в момент инцидента выяснится, что он сломан. Chaos-тестирование инференса — недооценённая практика.

2

Защита от мусорных ответов

Валидация выхода модели.

score = model.predict(x)
if not np.isfinite(score) or not (0.0 <= score <= 1.0):
    log_anomaly(request_id, score)
    return fallback(x)
  • Проверяйте диапазон, NaN и пустые ответы генеративных моделей.
  • Ограничивайте длину и формат ответа LLM перед отдачей пользователю.
  • Считайте долю сработавших защит как метрику здоровья модели.

Связанные темы

Инференс и эксплуатация

Requirements and SLA85%

Требования и SLA · Системный дизайн ML-сервисов

Числа, которые нужно зафиксировать до архитектуры: задержка, пропускная способность, доступность, стоимость запроса.

Serving Architecture85%

Архитектура инференса · Системный дизайн ML-сервисов

Модель внутри приложения, отдельный сервис или платформа инференса — три уровня связанности.

Caching85%

Кеширование · Системный дизайн ML-сервисов

Не считать то, что уже посчитано: кеш предсказаний, признаков и эмбеддингов.

Batching and Queues85%

Батчинг и очереди · Системный дизайн ML-сервисов

Собирать запросы в пачки, чтобы загрузить GPU, и сглаживать всплески нагрузки очередью.

Scaling85%

Масштабирование · Системный дизайн ML-сервисов

Горизонтальное и вертикальное масштабирование инференса и правильные метрики автоскейлинга.

GPU Inference85%

GPU-инференс · Системный дизайн ML-сервисов

Как выжать из видеокарты пропускную способность и не переплачивать.

Observability85%

Наблюдаемость · Системный дизайн ML-сервисов

Логи, метрики и трассировки, по которым можно восстановить, что произошло с конкретным запросом.

Cost Model85%

Экономика сервиса · Системный дизайн ML-сервисов

Стоимость одного предсказания и точка, где модель перестаёт окупаться.

LLM Serving85%

Обслуживание LLM · Системный дизайн ML-сервисов

Отдельная инженерная дисциплина: KV-кеш, непрерывный батчинг, потоковая отдача и контроль стоимости.

Model Deployment85%

Деплой моделей · MLOps

Доставка модели пользователю: онлайн-сервис, батч-скоринг или встраивание в приложение.

Monitoring85%

Мониторинг · MLOps

Наблюдение за инфраструктурой, данными и качеством предсказаний после релиза.

Docker85%

Docker · MLOps

Контейнеризация фиксирует окружение целиком: код, зависимости, системные библиотеки.

Kubernetes85%

Kubernetes · MLOps

Оркестрация контейнеров: масштабирование, самовосстановление, обновления без простоя.