Модель живёт в блокноте
Обучение запускается вручную, результат — файл с весами на чьём-то ноутбуке. Повторить тот же результат через месяц нельзя: непонятно, на каких данных и с какими параметрами он получен.
Выберите тему — соберём контекст
Внедряем ML-модели в продуктивный контур и удерживаем их в рабочем состоянии: версии данных и моделей, воспроизводимые пайплайны, выкатка с откатом, мониторинг качества и дрейфа, переобучение по триггеру и контроль стоимости вычислений.
Отдельная часть работы — то, о чём вспоминают после первого инцидента: что делать, когда модель начала ошибаться, а метрика на тесте этого не показывает.
Отметьте, что нужно сделать, и оставьте контакт — зададим несколько вопросов о модели и данных и скажем, с чего начать.
Дело почти никогда не в качестве модели. Ломается то, что не описано: как повторить обучение, чем вернуть предыдущую версию, как заметить, что данные уехали. Шесть ситуаций, которые встречаются на каждом втором проекте.
Обучение запускается вручную, результат — файл с весами на чьём-то ноутбуке. Повторить тот же результат через месяц нельзя: непонятно, на каких данных и с какими параметрами он получен.
Какая модель сейчас обслуживает трафик, знает один человек. Новая версия оказалась хуже — вернуть предыдущую нечем: она не сохранена как артефакт, а старая уже перезаписана.
Метрика измерена на отложенной выборке при сдаче. Что происходит с ней через месяц на живых данных, никто не смотрит: деградация обнаруживается по жалобам или по падению выручки.
Изменился ассортимент, цены, источники трафика или поведение клиентов. Распределение входных данных сместилось, а модель продолжает отвечать с прежней уверенностью — уже неверно.
Модель отдаёт красивые числа, но их некому и некуда передать: нет API, нет очереди, нет связи с CRM или учётной системой. Ценность остаётся в презентации.
Инференс на GPU по каждому запросу, модель в максимальном размере, отсутствие батчинга и кэша. Счёт за инфраструктуру приходит уже тогда, когда архитектуру менять дорого.
Ни одна из этих ситуаций не лечится «ещё одним обучением модели». Лечится она контуром: версиями, проверками, наблюдаемостью и регламентом — тем, что и называется MLOps.
Восемь элементов контура. Каждый решает свою задачу, и у каждого есть понятная цена отсутствия — именно поэтому мы не «внедряем MLOps вообще», а собираем минимальный работающий набор под вашу задачу.
Связка «код + данные + параметры + метрика» фиксируется для каждого обучения. Любую модель в продакшене можно пересобрать, объяснить и сравнить с предыдущей.
Артефакты с версиями и стадиями: черновик, тестовая, продакшен. Видно, какая версия обслуживает трафик и кто её выкатил. Отсюда же делается откат.
Загрузка данных, проверки, обучение, оценка, регистрация — шаги с журналом запусков. Повторный запуск даёт тот же результат, а не «примерно такой же».
Одни и те же признаки считаются одинаково при обучении и при инференсе. Иначе модель на входе получает не то, на чём училась, — это самая частая причина тихой деградации.
Модель отдаёт предсказания тем способом, который нужен процессу: синхронный API для сайта, пакетный расчёт для отчётов, поток для событий.
Смотрим не только на время ответа, но и на качество модели, смещение входных данных, долю отказов и цену одного предсказания.
Проверки данных и модели в конвейере, стадии dev → staging → prod, канареечная выкатка, автоматический откат при выходе метрик за порог.
Кто и как выкатывает версию, что считается деградацией, кому приходит оповещение, что делать дежурному. Без этого технология не живёт дольше автора.
Модель — не файл, а цикл: данные, признаки, обучение, оценка, выкатка, мониторинг, переобучение. В таблице видно, что производится на каждом шаге и что ломается, если шага нет.
Шаг 1
Данные
Сбор, разметка, версия набора
Шаг 2
Признаки
Единый расчёт для обучения и инференса
Шаг 3
Обучение
Воспроизводимый запуск с журналом
Шаг 4
Оценка
Качество и бизнес-метрика
Шаг 5
Выкатка
Канареечно, с планом отката
Шаг 6
Мониторинг
Качество, дрейф, отказы, цена
Шаг 7
Переобучение
По триггеру, с проверками
Контур замкнут: результат мониторинга определяет, когда и на каких данных запускается следующее переобучение.
| Этап | Что делаем | Артефакт | Что ломается без этого |
|---|---|---|---|
| Данные | Сбор, разметка, версия набора, проверки схемы и диапазонов | Версионированный набор данных и отчёт проверок | Обучение на данных, которых уже нет, и метрика, которую нельзя повторить |
| Признаки | Расчёт признаков по единым правилам для обучения и инференса | Определения признаков и их владельцы | Разное поведение модели в тесте и в продукте — «на тесте было 0,9» |
| Обучение | Воспроизводимый запуск с зафиксированными параметрами и журналом | Модель в реестре с версией и метриками | Результат не воспроизводится, эксперименты не сравнимы |
| Оценка | Метрика качества и бизнес-метрика на отложенном периоде | Отчёт сравнения с текущей версией и baseline | Выкатка «на глаз», без понимания, стало лучше или хуже |
| Выкатка | Публикация версии, канареечный трафик, контроль метрик | Работающая версия и план отката | Обновление модели превращается в аварийную ночь |
| Мониторинг | Качество на живых данных, дрейф, отказы, задержки, стоимость | Дашборд и правила оповещений | Деградация обнаруживается по жалобе клиента |
| Переобучение | Запуск по расписанию или по триггеру деградации, с проверкой | Новая версия, прошедшая те же проверки | Модель стареет молча и тихо теряет качество |
stages: - ingest # выгрузка с версией данных - validate # проверки схемы и диапазонов - train # обучение с фиксированными параметрами - evaluate # метрики на отложенном периоде - register # версия в реестре моделей evaluate: metrics: [roc_auc, pr_auc, business_cost] gate: "roc_auc >= baseline.roc_auc - 0.005" on_fail: stop # плохая версия не доходит до реестра
checked 1 842 310 rows · 27 features schema ok (27/27, типы совпадают) required fields ok (пропусков 0.02% < порога 1%) ranges warn price_max вырос в 3.1 раза unknown category fail 'region': 14 новых значений freshness ok последняя выгрузка 2 ч назад drift vs train warn PSI=0.18 по feature_12 итог: обучение остановлено — сначала разбор новых категорий
# качество модели на живом трафике alert: model_auc_live < 0.78 for 30m severity: warning -> дежурный ML runbook: /docs/mlops/quality-drop # дрейф входных данных alert: feature_drift_psi_max > 0.2 for 6h severity: warning -> владелец модели # задержка и отказы сервиса alert: predict_p95_seconds > 0.4 for 10m alert: predict_error_rate > 0.02 for 10m severity: critical -> дежурный on-call # стоимость alert: cost_per_1k_predictions > budget for 1d
Это фрагменты реальных конфигураций, а не иллюстрация: порог качества, при котором версия не попадает в реестр, проверки данных перед обучением и правила оповещений настраиваются под вашу задачу — вместе с ценой ошибки и допустимым временем реакции.
«Мониторинг модели» — это не одна метрика. Смотрим восемь сигналов: они закрывают и техническую сторону, и то, ради чего модель вообще внедрялась. Порог срабатывания задаётся вместе с вами: он зависит от цены ошибки, а не от красивого числа.
| Сигнал | Как считаем | Когда приходит тревога |
|---|---|---|
| Качество модели | Метрика на размеченном отложенном окне и на живом трафике, где разметка появляется с задержкой | Метрика ниже согласованного порога или хуже предыдущей версии на значимую величину |
| Дрейф входных данных | Сравнение распределений признаков с обучающим набором и с прошлым окном | Расхождение превышает порог устойчиво, а не в одной случайной точке |
| Изменение предсказаний | Доля классов, среднее значение прогноза, распределение скора | Модель начинает отвечать однообразно — типичный признак «ослепшей» модели |
| Данные на входе | Схема, пропуски, значения вне диапазона, незнакомые категории | Появились значения, которых не было при обучении, или выросла доля пропусков |
| Задержка ответа | p50, p95, p99 по режимам: API, батч, поток | p95 выходит за согласованный уровень — пользователь уже чувствует |
| Отказы и таймауты | Доля ошибок сервиса модели, таймауты, недоступность зависимости | Доля ошибок растёт или сервис перестал отвечать |
| Стоимость | Цена предсказания и цена обучения, расход GPU-часов и объём трафика | Стоимость на единицу растёт без роста полезной нагрузки |
| Бизнес-метрика | То, ради чего модель внедрялась: конверсия, отток, потери, время обработки | Эффект от модели исчез, хотя технически всё «работает» |
Таблица прокручивается по горизонтали.
Истина часто приходит позже предсказания. Пока она не пришла, качество оценивается косвенно — по стабильности входов и распределению ответов модели. Это не заменяет измерение, но позволяет выиграть время.
Алерт должен приходить тому, кто может действовать, и сопровождаться инструкцией: что проверить, что перезапустить, когда откатывать версию. Иначе тревога превращается в письмо, которое все игнорируют.
Каждый сбой разбирается до причины: дрейф, изменение признака, ошибка интеграции или в самом деле ухудшение модели. Без этого дежурство превращается в тушение пожаров по кругу.
Обновление модели должно быть рядовой операцией, а не событием с ночным дежурством. Для этого новая версия проходит проверки, получает часть трафика и может быть возвращена назад одной командой.
Схема, обязательные поля, диапазоны, доля пропусков, свежесть выгрузки, расхождение с обучающим набором. Плохие данные ловятся до того, как на них обучена модель.
Метрика не ниже текущей версии, отсутствие утечек, устойчивость к пропускам, время ответа в рамках бюджета, размер артефакта и требования к железу.
Схема запроса и ответа зафиксирована и проверяется автоматически: изменили набор признаков — узнали до продакшена, а не по ошибкам клиента.
dev → staging → production с одинаковой конфигурацией. Версия поднимается по стадиям, а не «с ноутбука сразу в бой».
Новая версия сначала получает небольшую долю трафика, и её метрики сравниваются с текущей. Раскатка расширяется только при подтверждённом качестве.
Предыдущая версия остаётся в реестре и готова к возврату одной командой. Откат — штатная операция, а не аварийное восстановление из бэкапа.
Модель стареет: меняются данные, поведение клиентов и сам процесс. Вопрос не в том, переобучать ли, а в том, что служит сигналом и как новая версия попадает в продакшен. Мы настраиваем запуск и обязательную проверку результата — автоматически, но с подтверждением.
Полностью автоматическое обновление без проверки мы включаем только там, где цена ошибки мала и есть быстрый откат. В остальных случаях финальный шаг подтверждает человек — иначе однажды ночью прод обновится на данных, которых никто не ожидал.
Режим — это не техническая деталь, а разница в стоимости и надёжности. Одна и та же модель в онлайн-режиме и в пакетном расчёте отличается по эксплуатационным затратам в разы, поэтому режим выбирается по процессу, а не по привычке.
Задержка: Доли секунды
Скоринг заявки, рекомендация на странице, антифрод в момент оплаты, чат-ответ
Требует сервиса, автмасштабирования и защиты от всплесков. Дороже всего на единицу.
Задержка: Часы
Прогноз спроса, пересчёт сегментов, скоринг базы, отчётность, предрасчёт рекомендаций
Самая дешёвая схема: считаем ночью на дешёвых ресурсах и раскладываем результат по системам.
Задержка: Секунды и меньше
Реакция на события: отклонение платежа, аномалия в работе оборудования, поток телеметрии
Нужна устойчивая шина и обработка повторов — те же требования, что к интеграциям.
Частый способ сэкономить без потери качества — гибрид: тяжёлые расчёты уходят в пакетный режим, а онлайн остаётся только то, что действительно нужно в момент запроса. Предсказания, которые не изменились, не пересчитываются.
Счёт за инфраструктуру — самая недооценённая часть ML-проекта. Модель, которая отлично работает в эксперименте, в продуктиве может стоить неоправданно дорого, и менять архитектуру задним числом тяжело. Поэтому цену предсказания мы считаем до внедрения.
Ниже — рычаги, которые дают эффект чаще всего. Порядок — от самого сильного.
Языковые модели прототипируются за день и упираются в эксплуатацию: качество нестабильно, стоимость непредсказуема, ответы нужно проверять. Здесь работают те же принципы MLOps плюс шесть вещей, без которых LLM-функция не живёт.
Промпт — часть системы: он версионируется, сравнивается и откатывается так же, как модель. Иначе «мы поправили формулировку» превращается в необъяснимое изменение поведения.
Набор эталонных вопросов и ожидаемых свойств ответа, который прогоняется перед выкаткой. Без него качество LLM-функции оценивается по трём удачным примерам.
Фильтры на входе и выходе, ограничение темы, проверка ссылок на источники, запрет на персональные данные в контексте. Особенно там, где ответ видит клиент.
Длина контекста, число обращений к модели, кэш повторяющихся частей. Считаем цену диалога до запуска: LLM-функции дорожают незаметно и быстро.
Внешний провайдер недоступен или поднял цены — предусмотрены резервная модель, деградация до шаблонного ответа и, где нужно, локальная модель.
Что нельзя отправлять наружу, что анонимизируется, что обрабатывается только в вашем контуре. Для части задач единственный приемлемый вариант — локальные модели.
Смежная тема — API-интеграции: именно через них предсказания и ответы модели попадают в CRM, учётную систему и интерфейсы, которыми пользуются люди.
Модель работает с данными клиентов, а значит попадает под те же требования, что и остальные системы. Воспроизводимость здесь помогает не только инженерам: она позволяет доказать, на каких данных получена модель и кто к ним имел доступ.
Отметьте, что уже сделано. Оценка считается сразу и без отправки данных: это способ понять, с чего начинать, а не тест на оценку.
Оценка ничего не отправляет и не сохраняется: счётчик считается в браузере.
Набрано баллов
0 из 13
Модель живёт вне процесса: каждый запуск — событие, результат которого трудно повторить.
Что делать дальше
Начинаем с версионирования и реестра, затем выводим модель в продакшен как сервис.
Уровни
Шесть этапов от разбора до передачи. На каждом у вас остаётся артефакт — схема, работающий сервис, дашборд или регламент, а не «созвон и договорились».
Смотрим, что уже есть: модели, данные, пайплайны, инфраструктура, кто и как запускает обучение и выкатку. Находим места, где качество теряется без следа.
На выходе: Карта контура и список рисков
Фиксируем целевую схему: где живут данные и артефакты, как версионируется, какие метрики считаются, что мониторим и кому приходят оповещения.
На выходе: Схема контура, смета и срок в договоре
Поднимаем реестр моделей, хранилище артефактов, окружения и инфраструктуру как код. Договориться об этом позже дороже, чем сделать сразу.
На выходе: Инфраструктура и реестр в рабочем виде
Упаковываем модель в сервис нужного режима, подключаем к процессу заказчика, настраиваем выкатку, откат и контракт запроса.
На выходе: Работающая версия в продуктиве
Дашборд, метрики качества и дрейфа, правила оповещений, регламент дежурства и разбор инцидентов. Проверяем на реальных сбоях, а не на презентации.
На выходе: Дашборд, алерты и регламент
Отдаём инфраструктуру, пайплайны, документацию и проводим обучение команды. Дальше — либо ваш ML-инженер ведёт контур, либо мы сопровождаем и дежурим.
На выходе: Документация, код и обученная команда
Работающая модель — только часть результата. Если контур нельзя передать другому инженеру, он остаётся риском, даже когда всё работает.
Не демонстрация в блокноте, а сервис, который отдаёт предсказания в вашем процессе с известной задержкой и стоимостью.
Видно, какая версия работает, какие у неё метрики и как вернуться к предыдущей.
Воспроизводимые шаги от данных до зарегистрированной модели с журналом запусков.
Дашборд качества, дрейфа, отказов и стоимости плюс правила, по которым приходит тревога.
Что считается деградацией, кто реагирует, что делает дежурный, как оформляется инцидент.
Контур разворачивается повторно и не существует только в одном экземпляре на одном сервере.
Автоматические тесты, которые не дают обучить или выкатить заведомо плохую версию.
Замер цены предсказания и понятные рычаги её снижения без потери качества.
Описание схемы, инструкции по типовым операциям и разбору инцидентов — не «для галочки», а чтобы контур жил без автора.
Разбор устройства контура с вашими инженерами: как выкатить версию, как прочитать дашборд, что делать при алерте.
Формат выбирается по состоянию контура, а не по прайсу. Цены не публикуем: стоимость MLOps определяется инфраструктурой, режимами инференса и объёмом, поэтому смета появляется после разбора и фиксируется в договоре.
Обмен уже работает, но непонятно, где теряется качество и что чинить первым.
Часто достаточно трёх-четырёх правок, чтобы контур перестал быть хрупким.
Обсудить условияМодель готова, нужно довести её до продуктивного контура и не потерять качество.
Самый частый запрос: модель есть, эксплуатации нет.
Обсудить условияМоделей несколько, команда растёт, процессы живут в головах и в переписке.
Строим так, чтобы контур можно было передать вашим инженерам, а не остаться единственным, кто его понимает.
Обсудить условияКонтур работает, но нужен тот, кто следит за качеством и реагирует на деградацию.
Формат для тех, у кого нет своего ML-инженера или он один.
Обсудить условияОблачная платформа иногда действительно разумнее подрядчика, а свой инженер — лучше обоих. Таблица составлена так, чтобы это было видно: иначе она была бы рекламой, а не сравнением.
| Критерий | Блокноты и ручные запуски | Managed-платформа | Свой MLOps-инженер | Команда по договору |
|---|---|---|---|---|
| Кому подходит | Один эксперимент, решение ещё не принято, модель нужна «посмотреть» | Нужно быстро, команда небольшая, данные уже в одном облаке | Есть свой ML-инженер и время строить практики самостоятельно | Модель влияет на деньги и процессы, а её отказ стоит дороже разработки |
| Воспроизводимость | Результат зависит от машины и памяти автора | Есть, пока вы внутри платформы и её версий | Появляется вместе с дисциплиной; часто откладывается | Версии данных, кода и модели фиксируются с первого дня |
| Мониторинг и деградация | Обычно отсутствует: о проблеме узнают по жалобам | Базовые метрики платформы; качество модели и дрейф — отдельная работа | Делается, если дошли руки между задачами | Качество, дрейф, отказы и стоимость с оповещениями и регламентом |
| Выкатка и откат | Замена файла и надежда | Штатно внутри платформы, ограничено её возможностями | Зависит от зрелости вашего CI/CD | Стадии, канареечная выкатка и откат одной командой |
| Стоимость владения | Дешёво на старте и дорого при первой аварии | Подписка и облако растут с объёмом; цена предсказания непрозрачна | Зарплата, время и задержка между задачами продукта | Работы по договору; инфраструктура остаётся вашей и не привязана к нам |
| Если человек уйдёт | Контур уходит вместе с ним | Зависите от платформы, а не от человека — миграция стоит времени | Риск потери знаний, если нет документации | Документация, код и инфраструктура передаются вам |
Таблица прокручивается по горизонтали.
Смета и срок фиксируются после разбора контура и не растут по ходу работ без вашего согласия.
Подписываем соглашение о конфиденциальности до того, как вы покажете данные, модели и доступы.
Сдаём не «на успешном сценарии»: остановку сервиса, дрейф и деградацию проигрываем намеренно.
Период и условия гарантии фиксируются в договоре; ошибки, найденные в этот срок, исправляем без доплат.
Передаём реестр, конфигурации, дашборды и документацию. Никаких закрытых модулей и привязки к нам.
Если ваша команда хочет вести контур сама, помогаем с передачей: разбор устройства, типовых операций и инцидентов.
Четыре ситуации, в которых мы отговариваем от работ. Это не приём: построить инфраструктуру, которой нечего обслуживать, — самый быстрый способ потратить бюджет впустую.
Если предсказание пока не работает даже в эксперименте, строить эксплуатацию рано. Сначала пилот: проверить, что задача вообще решается на ваших данных.
Что нужно вместо: Машинное обучение
Если расчёт идёт раз в месяц и ошибка ни на что не влияет, хватит регламента и ручной проверки. Инфраструктура будет дороже пользы.
Что нужно вместо: Аудит и регламент
Мониторинг качества невозможен, если истина нигде не фиксируется. Сначала налаживаем сбор обратной связи, потом говорим о контуре.
Что нужно вместо: Разработка AI-решений
Если версии, проверки, мониторинг и выкатка у вас работают, платформа не нужна: полезна точечная помощь — дежурство, оптимизация стоимости, аудит.
Что нужно вместо: Сопровождение
Отвечаем так же, как на созвоне: без «зависит от задачи» там, где можно ответить конкретно. Если вашего вопроса здесь нет — задайте его в форме внизу.
Это всё, что превращает обученную модель в работающий элемент бизнес-процесса и удерживает её в рабочем состоянии: версионирование данных и моделей, воспроизводимые пайплайны обучения, выкатка новых версий с возможностью отката, мониторинг качества и дрейфа данных, переобучение и контроль стоимости вычислений. Модель без этого остаётся экспериментом: она может показывать отличную метрику в блокноте и тихо ошибаться в продуктиве.
Начинаем с аудита: проверяем, что модель в продуктиве получает те же признаки, что при обучении, есть ли версии и откат, измеряется ли качество на живых данных, известно ли, сколько стоит одно предсказание. По результату даём карту рисков и план: что чинить сразу, что можно отложить. Часто самый большой эффект даёт не переобучение модели, а устранение расхождения между обучением и инференсом.
DevOps отвечает за код, сборку и инфраструктуру. В ML к этому добавляется то, что меняется само по себе: данные, их распределение и качество модели. Поэтому кроме конвейеров появляются версионирование данных, реестр моделей, проверки качества перед выкаткой, мониторинг дрейфа и переобучение. Инфраструктурная часть во многом совпадает: контейнеры, оркестрация, инфраструктура как код.
Дрейф — это смещение распределения входных данных относительно того, на чём модель обучалась: изменился ассортимент, цены, источники трафика, поведение клиентов. Метрика на отложенной выборке при этом остаётся высокой, потому что выборка старая, а на живых данных модель отвечает всё хуже. Поэтому мы смотрим не только на качество, но и на стабильность входов и распределение предсказаний: так деградацию видно раньше, чем она дойдёт до бизнес-метрики.
Это зависит от того, как быстро приходит истина. Там, где правильный ответ известен сразу (аномалия подтвердилась, платёж оказался мошенническим), контроль качества можно вести почти в реальном времени. Где истина приходит с задержкой (отток, оплата, результат заявки) — работают прокси-метрики: дрейф входов, распределение предсказаний, доля отказов, косвенные бизнес-показатели. Пороги и окна фиксируются при внедрении, вместе с вашей ценой ошибки.
Да, и часто нужно. Если предсказания считаются пакетно раз в сутки, достаточно регулярного запуска, объектного хранилища и записи результатов в вашу базу — это дешевле и надёжнее модного стека. Kubernetes и сервинг с автмасштабированием оправданы, когда есть онлайн-нагрузка, требования к задержке и потребность в изоляции ресурсов. Мы выбираем минимальную конфигурацию, которая выдерживает вашу нагрузку, а не максимальную.
Стоимость зависит от режима, размера модели, типа ресурса и числа обращений. Основные рычаги: батчинг запросов, кэширование повторяющихся входов, уменьшение модели при сохранении качества, квантизация, автомасштабирование и остановка простаивающих ресурсов, перенос тяжёлых расчётов в пакетный режим. Цену одного предсказания мы считаем до внедрения, а не после первого счёта за инфраструктуру, иначе архитектуру приходится менять задним числом.
Переобучение запускается по расписанию или по триггеру деградации, но новая версия не попадает в продакшен автоматически: она проходит те же проверки данных и модели, что и любая другая, затем получает небольшую долю трафика и сравнивается с текущей. Только после подтверждения качества раскатка расширяется. Предыдущая версия остаётся в реестре, поэтому откат занимает минуты.
Технически качество держится на мониторинге, регламенте и дежурстве: метрики, пороги, кому приходит оповещение, что делает дежурный. Ответственность за бизнес-метрику остаётся на владельце процесса — модель не может отвечать за изменение рынка. Мы настраиваем контур так, чтобы деградация обнаруживалась до того, как её заметит клиент, и передаём регламент вашей команде.
Начинаем с того, что доступно: стабильность входных данных, распределение предсказаний, доля отказов, задержки, стоимость. Параллельно налаживаем сбор обратной связи — фиксируем фактические исходы там, где решение модели влияет на процесс. Через несколько циклов появляется размеченное окно, на котором качество можно измерять напрямую, а не косвенно.
Обычно нет. Чаще достаточно упаковать существующую модель: зафиксировать окружение и зависимости, описать контракт запроса, добавить проверку входных данных, валидацию ответа и логирование. Переписывать стоит, если модель принципиально не воспроизводится, обучение занимает неприемлемое время или требования к задержке несовместимы с выбранной архитектурой — и мы говорим об этом прямо, с оценкой.
По той же логике, что и с обычными моделями, плюс своя специфика: версионирование промптов как артефактов, набор проверок качества на эталонных задачах, фильтры на входе и выходе, контроль стоимости запроса, кэш и резервный путь при недоступности провайдера. Отдельно решаем вопрос приватности: что можно отправлять внешнему провайдеру, что анонимизируется, а что обрабатывается только локальной моделью в вашем контуре.
Доступ к данным выдаётся по минимуму, тестовый контур не видит промышленные персональные данные, персональные данные не попадают в логи инференса и в примеры для отладки. Секреты хранятся в защищённом хранилище с ротацией. Если задача чувствительная, контур разворачивается полностью в вашей инфраструктуре, без внешних сервисов. Ведётся журнал действий, а воспроизводимость позволяет доказать, на каких данных получена модель.
Срок зависит от того, что уже есть: наличие модели, единство источников данных, зрелость инфраструктуры и требований к нагрузке. Вывод одной модели в продакшен с мониторингом по времени сопоставим с несколькими неделями работы, полноценный контур для нескольких моделей — это уже отдельный проект на месяцы. Точный срок фиксируется в договоре после разбора контура: до него любая цифра была бы угадыванием.
Три частых сценария: нужен второй опытный взгляд на контур, нужна работа, которую один человек не успевает (мониторинг, инфраструктура, регламенты), или нужна передача практик команде. Мы работаем как дополнение, а не как замена: документация и регламенты пишутся так, чтобы ваши инженеры могли вести контур без нас. Если у вас всё уже сделано правильно, мы скажем это на аудите.
Код, пайплайны, конфигурации инфраструктуры, дашборды и документация принадлежат вам. Контур разворачивается в вашей инфраструктуре и работает без нашего участия. Если вы решите вести его своей командой, мы проводим передачу: разбираем устройство, показываем типовые операции, разбираем инциденты и отвечаем на вопросы в переходный период.
MLOps редко существует отдельно: модель нужно разработать, затем связать с системами, которые ею пользуются.
Расскажите, где сейчас работает модель, как измеряется качество и что мешает двигаться дальше. Скажем, с чего начать и сколько это займёт, — до договора и без обязательств.
Опишите модели, данные и текущий процесс — вернёмся со схемой контура, метриками, сроком и стоимостью.
Cookie и аналитика
Мы используем необходимые cookie для работы сайта и форм. Аналитические cookie (Яндекс.Метрика, включая запись сессий) подключаем только с вашего согласия — от него можно отказаться. Подробнее: Политика использования cookie и обработка персональных данных.