AI-модели: запуск инференса

Зачем это нужно

Выкатить обученную модель (из S3, реестра MLflow или собственного контейнерного образа) живым inference-эндпоинтом — с канареечным раскатом, API-ключом и встроенной песочницей для проверки — не описывая руками ни одного манифеста.

Как выкатить модель

  1. Откройте Models в меню проекта → Deploy model.
  2. Заполните:
    • Name — строчные буквы, цифры и дефисы, например iris-classifier.
    • Model type — sklearn / xgboost / lightgbm / pytorch / tensorflow / triton / huggingface / custom.
    • Source:
      • S3Artifact URI, например s3://platform-models/<project>/iris/v1.
      • MLflowName зарегистрированной модели и Version.
      • Custom — собственный Container image.
    • Profilecpu-small / cpu-medium / gpu-t4 / gpu-a100; рядом с каждым вариантом показаны CPU, RAM и количество GPU.
    • Auth modeapikey / jwt / public.
    • Attached app и Version label — оба поля необязательные.
  3. Если выбран GPU-профиль, а квота GPU у проекта сейчас 0, форма предупредит, что деплою потребуется согласование администратора — см. согласование AI-моделей.
  4. Отправьте форму — вас перебросит в Operations смотреть, как модель выкатывается.

Деплой прямо из реестра MLflow

Чтобы не вбивать имя и версию руками, откройте меню аккаунта (аватар справа сверху) → AI Studio. Это кросс-проектный обозреватель реестра: выбираете проект, видите все зарегистрированные MLflow-модели с последней версией, стадией и временем обновления, жмёте Deploy vN — откроется страница Models с уже заполненной формой создания (источник, имя, версия) именно под эту версию.

Как управлять выкаченной моделью

Карточка модели ведёт на страницу с вкладками Overview / Versions / Access / Playground / Operations, плюс Manifests для Owner и Admin.

  • Set Canary вверху страницы — ползунком 0–100% отправьте часть трафика на новую запинованную версию. Как только канарейка выше 0%, появляется кнопка Promote, которая делает версию стабильной на 100%.
  • Вкладка Versions — залить новый артефакт без полного передеплоя: вставьте новый S3 URI или запиньте другую версию MLflow.
  • Вкладка Access — режим аутентификации и, для режима apikey, кнопка Reveal: полный API-ключ показывается в подсвеченном блоке с предупреждением «сохраните сейчас».
  • Вкладка Playground — отправить модели живой тестовый запрос прямо из консоли.
  • Delete вверху страницы — с галочкой Force для моделей, застрявших в плохом состоянии.

Подводные камни

  • GPU-профиль может молча потребовать согласования. Если квота GPU у проекта 0, деплой на gpu-t4 или gpu-a100 создаёт заявку, которая висит, пока Owner или Admin не согласует её в очереди согласований. Деплой при этом не падает — он просто ещё не живой.
  • Показ API-ключа визуально не помечен как одноразовый: кнопку можно нажать снова после перезагрузки страницы. Всё равно считайте ключ секретом и копируйте сразу, а не оставляйте вкладку открытой.
  • Вкладка Manifests доступна только Owner и Admin. Developer может деплоить, включать канарейку, промоутить и удалять, но не увидит ни итоговой спецификации, ни деталей GitOps-коммита.
  • Счётчик вызовов инференса на карточках квот справочный: жёсткой отсечки в интерфейсе нет. Реально блокируют деплой квоты на количество CPU- и GPU-моделей.

Чего пока нет

  • Изменения типа модели, профиля и режима аутентификации после создания: доступны только обновление артефакта или версии, процент канарейки и удаление.
  • A/B-тестов сложнее простого процента канарейки — разлива трафика по нескольким версиям нет.
  • Инструмента «покажи, почему модель застряла»: для зависших остаётся только Force-удаление.

Куда дальше