CI/CD-конвейер для ML-модели с шаблонами инфраструктуры
Промпт проектирует полный CI/CD-конвейер для ML-модели и требует практические артефакты: workflow CI, Dockerfile, шаблоны пайплайнов, deployment-манифесты, реестры, мониторинг, rollback и план внедрения.
Используй только переданные placeholders и значения в фигурных скобках. Если данных не хватает, явно помечай допущения вместо выдуманных значений.
Вы — инженер MLOps. Ваша задача — спроектировать полный автоматизированный CI/CD‑конвейер для модели {model_type}, реализованной с помощью {framework}, которая используется в контексте {business_context}. Конвейер должен обрабатывать данные из {data_source}, поддерживать рабочие процессы и масштаб, соответствующие {team_size}, и развёртываться на {platform}.
Требуется детальное, готовое к внедрению описание и набор артефактов. Не задавайте уточняющих вопросов — используйте переданные значения в фигурных скобках как единственные входные параметры и при необходимости делайте разумные предположения. Ответ структурируйте точно в соответствии с форматом «Требуемых артефактов» ниже.
Общие требования:
- Охват: проверка и валидация данных → подготовка данных и версионирование → оркестрация и обучение модели → тестирование (unit, integration, model quality, performance, canary) → упаковка/артефакты → развёртывание (стейджинг, прод) → наблюдаемость, мониторинг и alerting → процедуры отката и runbook → автоматический/плановый ретрейнинг.
- Для каждого шага укажите: цель, входы/выходы, инструменты (конкретные продукты/версии), команды/скрипты и пример конфигурации (готовые шаблоны).
- Учитывайте безопасность и соответствие: управление секретами, RBAC, сканирование уязвимостей, контроль доступа к данным и журналирование.
- Учитывайте требования команды {team_size} (например, рекомендации по сплиту обязанностей, процессам ревью и CI параллелизации).
- Подберите инструменты, максимально подходящие для {framework} и {platform}. Если есть несколько разумных вариантов — выберите 2–3 и обоснуйте выбор коротко.
- Укажите, где хранить артефакты (модели, метаданные, логи) и как производить версионирование (семантическое/хеши), интеграцию с реестром моделей (например, MLflow, Model Registry) и контейнерным реестром (Docker Hub, ECR, GCR и т.д.).
- Опишите критерии «acceptance» для продакшен‑развёртывания: метрики качества (accuracy, F1, AUC), latency/p95, resource usage, и пороги, при превышении которых должна сработать остановка/откат.
- Описывайте всё прагматично и применимо: команды CLI, примерные скрипты, и реальные шаблоны конфигураций.
Требуемые артефакты (строго в этом порядке):
1) Краткое архитектурное описание конвейера (1–2 абзаца) — компонентная диаграмма словами (CI, CD, registry, data store, monitoring).
2) Рекомендованный стэк инструментов с коротким обоснованием (5–8 пунктов): CI, оркестратор задач/тренировок, модельный реестр, валидация данных, версия данных/артефактов, контейнеризация, развёртывание, мониторинг, секрет‑менеджер.
3) Подробный рабочий процесс (workflow) — шаги с триггерами (push, PR, schedule, data arrival), последовательность задач, условия перехода между этапами, требования к ресурсам и тайм‑ауты.
4) Конфигурационные шаблоны (в виде файлов с именами и содержимым):
- CI workflow (например .github/workflows/ci.yml или .gitlab-ci.yml) для выбранного CI.
- Dockerfile для контейнеризации модели и приложений.
- Оркестратор тренировок/пайплайнов (пример: Airflow DAG / Kubeflow Pipeline / Argo Workflow) с основными task'ами.
- Манифест развёртывания для {platform} (Kubernetes Deployment/Service/Ingress и/или serverless function template), и пример Helm values.yaml или Kustomize overlay.
- Пример Terraform/CloudFormation модуля или скелета (инициация infra: k8s cluster, storage, registry), если релевантно для {platform}.
- Пример конфигурации model registry (например, MLflow tracking URI, S3 backend) и команды «register model / promote to production».
- Шаблон для валидации данных (например, Great Expectations suite) и тесты данных.
- Пример мониторинга/alerting (Prometheus rules, Grafana dashboard JSON или SLOs) и логирования.
- Примеры runbook'ов: ручный откат, автоматический откат (условия и команды).
5) Тестирование и контроль качества:
- Список автоматических тестов (unit, integration, model quality, performance), примеры команд запуска и CI‑шагов.
- Процедуры для тестирования модели на данных стейджинга и A/B/canary rollout.
- Метрики и пороги для автоматизации отката.
6) Стратегии развёртывания и отката:
- Подробные варианты: blue/green, canary, shadow, rolling with automatic rollback. Для каждого — какие инструменты и конфигурации требуются, пример политики.
- Шаги отката: от инициатора (alert/manual) до полного возврата на предыдущую версию, включая откат данных, если требуется.
7) Управление секретами и безопасность:
- Интеграция с Vault/KMS/Secrets Manager, RBAC примеры, сканирование контейнеров.
8) Операции и мониторинг в продакшене:
- Список метрик (инфраструктура, latency, predictions/labels drift, feature drift), алерты и примеры dashboard'ов, процедуры расследования инцидентов.
9) План адаптации под {team_size}:
- Короткие практические рекомендации под малую, среднюю и большую команды (workflow, ревью, ownership).
10) Краткий план поэтапного внедрения (минимально жизнеспособный конвейер за 1–2 недели, затем расширения).
11) Список всех артефактов/файлов, которые вы привели, с путями и кратким описанием назначения.
Требования к формату ответа:
- Разбейте ответ на нумерованные разделы, соответствующие «Требуемым артефактам».
- Для конфигурационных файлов указывайте имя файла в одной строке (например: Filename: .github/workflows/ci.yml), затем блок кода с содержимым (YAML/Bash/JSON), затем краткое пояснение (1–2 строки).
- Все команды и конфиги должны быть реалистичными и готовыми для прямого использования с минимальными правками (подставить реальные имена/пути).
- Где присутствуют переменные окружения, используйте явные плейсхолдеры в виде {{PLACEHOLDER_NAME}}.
- Не включайте лишние общие рассуждения — концентрируйтесь на практических, воспроизводимых шагах и примерах.
- Под конец дайте 3–5 конкретных рекомендаций по приоритету внедрения (что делать в первую неделю, второй и т.д.).
Типы промптов