- Что означает «повышенное время безотказной работы» для мульти-провайдерного LLM-сервиса
- Проектирование SLO для мульти-провайдерных LLM-сервисов
- Критерии мониторинга здоровья провайдеров
- Архитектура оповещений для деградации провайдера
- Плейбуки для инцидентов в мульти-провайдерных LLM-сервисах
- Управление политиками отката
- Как Novita AI поддерживает мульти-провайдерные операции по времени безотказной работы
- Контрольный список готовности к эксплуатации перед выходом в продакшн
- Часто задаваемые вопросы
- Рекомендуемые статьи
Лучший мульти-провайдерный LLM-сервис для снижения затрат и повышения времени безотказной работы — это тот, который сочетает продуманную архитектуру маршрутизации с явной операционной практикой: определённые SLO, непрерывный мониторинг здоровья провайдеров, протестированные плейбуки для инцидентов и управляемые политики отката. Дизайн маршрутизации определяет, какие модели доступны. Операции определяют, будет ли сервис на самом деле соответствовать своим обязательствам по времени безотказной работы после внедрения этой маршрутизации.
Эта статья посвящена операционному уровню. О самом дизайне маршрутизации — политиках отката, выборе моделей по стоимостным уровням, автоматических выключателях и бюджетах повторных попыток — читайте в статье Best Multi-Provider LLM Platform for Lower Cost and Downtime.
Что означает «повышенное время безотказной работы» для мульти-провайдерного LLM-сервиса
Время безотказной работы для LLM-сервиса — это не то же самое, что доступность сервера. Страница статуса провайдера может быть зелёной, в то время как ваши пользователи испытывают повышенную задержку, ухудшенное качество вывода или скрытые частичные сбои в агентном рабочем процессе.
Практичный SLO времени безотказной работы для мульти-провайдерного LLM-сервиса должен охватывать:
- Коэффициент успешного завершения: доля LLM-запросов, вернувших валидный, пригодный к использованию ответ в рамках бюджета задержки.
- Время до первого токена (P95): задержка, которую испытывают интерактивные пользователи, а не средняя задержка.
- Коэффициент завершения агентных рабочих процессов: для агентных нагрузок — доля многошаговых задач, успешно достигших конечного состояния.
- Стоимость за успешную задачу: сигнал эффективности, который возрастает, когда повторные попытки, откаты или более длинные выходные данные увеличивают расходы без добавления успешных завершений.
Сервис может иметь 99,9% доступности сервера и всё равно не соответствовать видимым пользователю SLO времени безотказной работы, если ухудшение модели, исчерпание лимитов частоты запросов или сбои в песочнице вызывают скрытые ошибки.
Проектирование SLO для мульти-провайдерных LLM-сервисов
Определяйте SLO по классам рабочих нагрузок, а не по провайдерам
Надёжность провайдера варьируется в зависимости от модели, региона и уровня. Определяйте цели SLO на уровне класса рабочей нагрузки — то есть на уровне пользовательской операции — а не на уровне провайдера.
| Класс рабочей нагрузки | Пример цели SLO | Бюджет ошибок (30 дней) |
|---|---|---|
| Интерактивный чат (P95 задержка ≤ 2 с) | 99,5% успешных завершений | 3,6 часа |
| Завершение агентных рабочих процессов | 99,0% задач достигают конечного состояния | 7,2 часа |
| Пакетное извлечение / классификация | 99,9% завершений в рамках окна SLA | 43 минуты |
| Стриминговая генерация (P95 TTFT ≤ 1 с) | 99,0% запросов соответствуют бюджету TTFT | 7,2 часа |
SLO классов рабочих нагрузок позволяют точно распределять бюджеты ошибок. Если инцидент исчерпывает бюджет интерактивного чата, но не бюджет пакетной обработки, вы знаете, на чём сосредоточить работу по повышению надёжности.
Разделяйте SLO доступности и SLO качества
Мульти-провайдерная система может поддерживать высокую доступность (запросы получают ответы), в то время как качество ухудшается (резервная модель выдаёт более слабые ответы). Отслеживайте оба показателя:
- SLO доступности: доля ответов без ошибок в рамках бюджета задержки.
- SLO качества: доля ответов, соответствующих минимальному порогу качества (человеческие оценки, автоматическая проверка, коэффициент негативных реакций пользователей).
Когда во время инцидента активируются резервные маршруты, скорость сжигания SLO качества — это сигнал, который говорит вам, допустим ли деградированный режим работы или система должна поставить запросы в очередь или остановить их.
Критерии мониторинга здоровья провайдеров
Эффективный мониторинг нескольких провайдеров выходит за рамки простого наблюдения за страницей статуса провайдера. Стройте собственный сигнал здоровья на основе наблюдаемого трафика.
| Сигнал | Что измерять | Пример порога оповещения |
|---|---|---|
| Частота ошибок по провайдеру + модели | Ответы 4xx/5xx в минуту | > 5% за 5-минутное окно |
| P95 задержка по провайдеру + модели | Время до первого токена, общее время завершения | > 2× базового уровня в течение 3 минут подряд |
| Частота попадания в ограничения частоты | Доля ответов 429 среди запросов | > 2% за 2-минутное окно |
| Частота активации отката | Запросы, направленные на вторичную модель | > 10% в течение 5 минут (может указывать на деградацию основной) |
| Частота сбоев агентных рабочих процессов | Многошаговые задачи, не достигшие конечного состояния | > 1% за 10-минутное окно |
| Стоимость за успешную задачу | (входные токены + выходные токены) × цена / успешные завершения | > 20% выше базового уровня за 7 дней |
| Отклонение показателя качества | Частота прохождения автоматической оценки или частота негативных отзывов пользователей | > 15% относительного снижения от базового уровня за 7 дней |
Для команд, использующих Novita AI LLM API, совместимая с OpenAI конечная точка чат-завершений возвращает стандартные HTTP-коды статуса и заголовки задержки, которые напрямую питают эти сигналы. Записывайте в лог ID модели, путь провайдера и количество повторных попыток для каждого запроса, чтобы ваш мониторинг был специфичным для модели, а не только для конечной точки.
Что включать в лог каждого LLM-запроса
{
"request_id": "req_abc123",
"workload_class": "interactive_chat",
"primary_model": "meta-llama/llama-3.1-70b-instruct",
"routed_model": "meta-llama/llama-3.1-8b-instruct",
"route_reason": "primary_rate_limited",
"provider": "novita",
"latency_ms": 1240,
"ttft_ms": 380,
"input_tokens": 512,
"output_tokens": 148,
"retry_count": 1,
"status": "success",
"quality_eval": "pass",
"cost_usd": 0.00031
}
route_reason — это поле, которое большинство команд упускает. Без него вы не сможете в своих дашбордах отличить здоровый откат (ожидаемое поведение) от деградированного отката (инцидент провайдера).
Архитектура оповещений для деградации провайдера
Оповещения должны срабатывать на двух уровнях: тактическом (действие дежурного сейчас) и стратегическом (тенденция, требующая изменения политики маршрутизации).
Тактические оповещения (вызов дежурного инженера)
- Частота ошибок провайдера превышает 5% в течение 5 минут для продакшн-класса рабочей нагрузки.
- P95 задержка превышает 2× базовый уровень в течение 3 минут подряд для интерактивного чата.
- Частота сбоев агентных рабочих процессов превышает 1% в течение 10 минут.
- Скорость сжигания SLO качества превышает 5% месячного бюджета ошибок за 1 час.
Стратегические оповещения (канал Slack, без вызова)
- Частота активации отката выше 10% в течение 30 минут (возможно, требуется настройка политики маршрутизации).
- Стоимость за успешную задачу выше 20% от базового уровня за 7 дней в течение 2 часов.
- Попадания в ограничение частоты первичной модели растут в течение 24 часов (сигнал планирования ёмкости).
- Оповещение об отклонении показателя качества: качество резервной модели снижается в течение 7-дневного окна.
Маршрутизация оповещений по классу рабочей нагрузки
Не отправляйте все оповещения в один канал. Маршрутизируйте тактические оповещения по классу рабочей нагрузки, чтобы нужная команда реагировала. Всплеск 429 во внутреннем копилоте — событие с более низким приоритетом, чем тот же всплеск в клиентском агентном рабочем процессе.
Плейбуки для инцидентов в мульти-провайдерных LLM-сервисах
Политика маршрутизации решает, что делать автоматически. Плейбук для инцидентов направляет действия дежурного инженера, когда автоматического поведения недостаточно или инцидент неоднозначен.
Плейбук: Повышенная частота ошибок основного провайдера
Триггер: Частота ошибок первичной модели > 5% в течение 5 минут для продакшн-класса рабочей нагрузки.
- Проверьте: Посмотрите страницу статуса провайдера и собственные логи ошибок. Отличите временный всплеск от устойчивой деградации.
- Оцените влияние: Сколько классов рабочих нагрузок затронуто? Активна ли уже резервная модель и находится ли она в рамках SLO качества?
- Если резервная активна и SLO качества выполняется: Отслеживайте восстановление. Установите контрольную точку через 30 минут.
- Если резервная активна, но SLO качества сжигается: Переместите высокорисковые рабочие нагрузки (юридические, финансовые, критичные для безопасности) в очередь или на ручную приостановку. Уведомите заинтересованные стороны.
- Если резервная модель недоступна: Активируйте деградированный режим (уведомление для пользователей, постановка не срочных запросов в очередь). Передайте эскалацию руководителю инцидента.
- Восстановление: Когда частота ошибок первичной модели вернётся ниже 1% в течение 10 минут, постепенно возвращайте трафик. Не переключайте весь трафик сразу.
- После инцидента: Запишите продолжительность инцидента, затронутые классы рабочих нагрузок, сжигание SLO качества, влияние на стоимость и любые пробелы в политике отката, которые были обнаружены.
Плейбук: Исчерпание лимита частоты запросов
Триггер: Частота 429 для первичной модели > 2% в течение 2 минут.
- Проверьте дашборды квот: Это устойчивая проблема ёмкости или всплеск трафика?
- Если всплеск: Активируйте задержки и бюджеты повторных попыток. Перенаправьте избыток на уровень вторичной модели для подходящих рабочих нагрузок.
- Если устойчивая ситуация: Внедрите постановку в очередь для запросов с более низким приоритетом. Рассмотрите возможность перемещения предсказуемого высокообъёмного трафика на выделенную конечную точку — Novita AI GPU Cloud или выделенная LLM-конечная точка могут обеспечить более предсказуемую ёмкость для рабочих нагрузок, которые переросли общие лимиты частоты API.
- Не повторяйте попытки бесконечно: Применяйте бюджеты повторных попыток. Записывайте каждый 429 с классом рабочей нагрузки и моделью, чтобы определить, какие паттерны вызовов наиболее затронуты.
Плейбук: Всплеск сбоев агентных рабочих процессов
Триггер: Частота сбоев агентных рабочих процессов > 1% в течение 10 минут.
- Определите тип сбоя: Сбой произошёл на уровне вызова LLM (ошибка модели, ограничение частоты, переполнение контекста) или на уровне выполнения (тайм-аут песочницы, некорректный вывод вызова инструмента, ошибка файловой операции)?
- Для сбоев на уровне LLM: Следуйте плейбуку по повышенной частоте ошибок основного провайдера выше.
- Для сбоев в песочнице или выполнении: Проверьте логи Novita Agent Sandbox. Определите, является ли проблема системной (неправильный шаблон промпта, вызывающий некорректные вызовы инструментов) или средовой (ёмкость песочницы, сетевой тайм-аут).
- Изолируйте затронутые типы рабочих процессов: Сбой в автоматизации браузера не должен приводить к остановке рабочих процессов выполнения кода, если они независимы.
- Гейт восстановления: Перед восстановлением полного трафика выполните представительный набор золотых промптов через затронутый рабочий процесс и убедитесь, что частота сбоев вернулась к базовому уровню.
Плейбук: Деградация SLO качества во время отката
Триггер: Показатель качества падает более чем на 15% от базового уровня за 7 дней, пока активна резервная модель.
- Определите, какие классы рабочих нагрузок затронуты: Деградация качества часто специфична для рабочей нагрузки. Резервная модель может хорошо справляться с простой классификацией, но ухудшать качество длинных рассуждений.
- Примените ограничения отката по классу рабочей нагрузки: Ограничьте деградированный откат теми рабочими нагрузками, где снижение качества приемлемо. Поставьте в очередь или остановите высокорисковые задачи.
- Уведомите заинтересованные стороны о влиянии на пользователей.
- После инцидента: Обновите матрицу одобрения откатов, чтобы отразить наблюдаемые ограничения качества для резервной модели.
Управление политиками отката
Политики маршрутизации определяют, какие резервные модели доступны. Управление определяет, какие откаты одобрены для каждого класса рабочей нагрузки — и когда автоматический откат не должен выполняться вовсе.
Матрица одобрения откатов
Ведите документированную матрицу одобрения откатов по классам рабочих нагрузок:
| Класс рабочей нагрузки | Основная модель | Одобренный откат | Условия | Запрещённый откат |
|---|---|---|---|---|
| Чат с клиентами | Модель A (большая) | Модель B (средняя) | Прохождение оценки качества на золотом наборе | Любая модель не из одобренного списка |
| Внутренний копилот | Модель A (большая) | Модель B (средняя), Модель C (маленькая) | Прохождение оценки качества | Н/Д |
| Юридический / комплаенс проект | Модель A (большая) | Только постановка в очередь | Без авто-отката | Любая меньшая модель |
| Пакетная классификация | Модель C (маленькая) | Модель D (альтернативный провайдер) | Прохождение оценки качества | Большие модели (контроль стоимости) |
| Браузерный агент | Модель A (большая) + Песочница | Постановка в очередь | Выполнение в песочнице должно быть подтверждено | Текстовые модели без поддержки инструментов |
Пересматривайте эту матрицу ежемесячно и после каждого инцидента, где поведение отката было неожиданным или неадекватным.
Кто отвечает за изменения политики отката?
Изменения политики отката должны требовать одобрения как от инженерной команды (может ли система поддержать изменение?), так и от команды продукта или риск-менеджмента (приемлем ли компромисс по качеству?). Автоматическая система маршрутизации, которая переключается на более дешёвую модель без человеческого одобрения по планке качества, создаёт скрытый продуктовый риск.
Документируйте каждое изменение: какая модель, какой класс рабочей нагрузки, какая оценка качества проводилась, кто одобрил и какие условия запускают пересмотр политики.
Как Novita AI поддерживает мульти-провайдерные операции по времени безотказной работы
Novita AI является AI и агентным облаком — LLM API, Agent Sandbox и GPU Cloud — которое команды могут инструментировать для операционной практики, описанной здесь.
LLM API возвращает стандартные HTTP-коды статуса, заголовки задержки и количество токенов для каждого запроса, предоставляя сырые сигналы для мониторинга здоровья провайдеров и отслеживания SLO. Библиотека моделей перечисляет текущую доступность моделей, чтобы вы могли строить политики маршрутизации на основе моделей, которые действительно поддерживаются. Совместимая с OpenAI API чат-завершений означает, что существующие инструменты наблюдаемости (логирование запросов, отслеживание задержек, дашборды частоты ошибок) работают без специальной инструментации.
Novita Agent Sandbox добавляет управляемую среду выполнения для агентных рабочих процессов. Возможность наблюдать как результаты вызова LLM, так и результаты выполнения в песочнице в одном логе рабочего процесса напрямую связана с плейбуком по сбоям агентных рабочих процессов: вы не сможете отличить сбой модели от сбоя выполнения в песочнице без логов обоих уровней.
Novita AI GPU Cloud и выделенные конечные точки дают командам операционный путь, когда общие лимиты частоты API становятся ограничением надёжности. Для рабочих нагрузок, где 429 являются повторяющимся триггером инцидентов, переход на выделенную ёмкость устраняет один класс инцидентов из модели операций с общим API.
Контрольный список готовности к эксплуатации перед выходом в продакшн
Используйте этот список при оценке готовности вашего мульти-провайдерного LLM-сервиса к эксплуатации:
Определение SLO
- [ ] Цели SLO определены для каждого продакшн-класса рабочей нагрузки (доступность + качество)
- [ ] Бюджеты ошибок рассчитаны и задокументированы
- [ ] Настроены оповещения о скорости сжигания для каждого SLO
Мониторинг
- [ ] Каждый LLM-запрос логируется: модель, провайдер, причина маршрута, задержка, токены, количество повторных попыток, статус, результат оценки качества
- [ ] Дашборды показывают: частоту ошибок, P95 задержку, частоту активации отката, стоимость за успешную задачу — с разбивкой по классу рабочей нагрузки
- [ ] Сигналы здоровья провайдера получены из наблюдаемого трафика, а не только из страниц статуса
Оповещения
- [ ] Настроены тактические оповещения (вызов) для продакшн-классов рабочих нагрузок
- [ ] Настроены стратегические оповещения (Slack) для отклонений стоимости и трендов частоты отката
- [ ] Маршрутизация оповещений сопоставляет класс рабочей нагрузки с ответственной командой
Плейбуки для инцидентов
- [ ] Плейбуки написаны и доступны для: всплеска ошибок основного провайдера, исчерпания лимита частоты, сбоев агентных рабочих процессов, деградации SLO качества
- [ ] Для каждого плейбука определены гейты восстановления (что должно быть истинно перед восстановлением полного трафика)
- [ ] Задокументирован процесс посмертного анализа инцидентов
Управление откатами
- [ ] Матрица одобрения откатов существует и актуальна
- [ ] Запрещённые условия отката задокументированы для высокорисковых классов рабочих нагрузок
- [ ] Определён процесс утверждения изменений политики (инженерия + продукт/риск)
- [ ] Запланирован ежемесячный пересмотр
Запасной выход в инфраструктуре
- [ ] Определён путь к выделенной конечной точке или GPU Cloud для рабочих нагрузок, где общие лимиты частоты API являются повторяющимся ограничением
Часто задаваемые вопросы
В чём разница между проектированием мульти-провайдерной маршрутизации и мульти-провайдерными операциями?
Проектирование маршрутизации определяет политику: какие модели являются основными и резервными, когда повторять попытки и как обрабатывать определённые типы ошибок. Операции — это текущая практика проверки того, работает ли политика: мониторинг сжигания SLO, выполнение плейбуков для инцидентов, когда это не так, и управление изменениями политики. Оба аспекта необходимы для сервиса, который надёжно выполняет свои обязательства по времени безотказной работы.
Как установить реалистичный SLO времени безотказной работы для мульти-провайдерного LLM-сервиса?
Начните с измерения текущего коэффициента успешного завершения и P95 задержки в течение репрезентативного окна трафика. Установите целевую SLO на уровне, который ваша политика маршрутизации может реально поддерживать при доступном бюджете ошибок. Для нового сервиса разумным начальным целевым показателем является 99,0%–99,5% успешного завершения. Скорректируйте после наблюдения за первыми несколькими окнами бюджета ошибок.
Как часто следует пересматривать матрицы одобрения откатов?
Ежемесячно как минимум, а также после любого инцидента, когда поведение отката было неожиданным или качество ухудшилось во время отката. Возможности моделей и цены меняются достаточно часто, поэтому матрица, действительная в Q1, может быть недействительной в Q3.
Когда мульти-провайдерный откат не должен быть автоматическим?
Когда класс рабочей нагрузки имеет чувствительность к безопасности, юридическим, финансовым или комплаенс-аспектам, и резервная модель не оценивалась на этом конкретном типе задач. В таких случаях постановка в очередь или пользовательское уведомление о недоступности безопаснее, чем автоматический ответ с пониженным качеством.
Как Novita AI вписывается в эту операционную модель?
Novita AI предоставляет уровни инфраструктуры — LLM API для инференса, Agent Sandbox для агентного выполнения, GPU Cloud для выделенной ёмкости — которые вы инструментируете и эксплуатируете с помощью описанных выше практик. Это не заменяет определения SLO, конфигурации мониторинга, плейбуки или решения по управлению, которые делают сервис надёжным. Они исходят из операционной практики вашей команды.
Рекомендуемые статьи
- Best Multi-Provider LLM Platform for Lower Cost and Downtime — проектирование маршрутизации: политики отката, выбор моделей по стоимостным уровням, автоматические выключатели
- Best LLM API Providers in 2026
- Which Inference Provider Is Right for AI Agents
- LLM Dedicated Endpoint on Novita AI
