惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Attack and Defense Labs
Attack and Defense Labs
宝玉的分享
宝玉的分享
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
D
Darknet – Hacking Tools, Hacker News & Cyber Security
V
Vulnerabilities – Threatpost
博客园_首页
Engineering at Meta
Engineering at Meta
F
Fortinet All Blogs
C
Cyber Attacks, Cyber Crime and Cyber Security
罗磊的独立博客
V
Visual Studio Blog
Know Your Adversary
Know Your Adversary
Hacker News - Newest:
Hacker News - Newest: "LLM"
美团技术团队
L
LINUX DO - 最新话题
The Last Watchdog
The Last Watchdog
博客园 - 三生石上(FineUI控件)
T
Tor Project blog
云风的 BLOG
云风的 BLOG
N
Netflix TechBlog - Medium
MyScale Blog
MyScale Blog
The GitHub Blog
The GitHub Blog
有赞技术团队
有赞技术团队
I
InfoQ
Last Week in AI
Last Week in AI
V2EX - 技术
V2EX - 技术
量子位
S
Secure Thoughts
L
LangChain Blog
The Hacker News
The Hacker News
H
Help Net Security
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
小众软件
小众软件
K
Kaspersky official blog
Security Archives - TechRepublic
Security Archives - TechRepublic
Google Online Security Blog
Google Online Security Blog
I
Intezer
Vercel News
Vercel News
Hacker News: Ask HN
Hacker News: Ask HN
Cisco Talos Blog
Cisco Talos Blog
Google DeepMind News
Google DeepMind News
S
Securelist
阮一峰的网络日志
阮一峰的网络日志
G
Google Developers Blog
Help Net Security
Help Net Security
Martin Fowler
Martin Fowler
爱范儿
爱范儿
Y
Y Combinator Blog
C
Check Point Blog

Все публикации подряд на Хабре

Ловим музу за клавиатуру: как айтишнику стать автором Что умеет Midjourney в 2026? Мой немного грустный разбор этого шикарного инструмента Никто не любит писать тесты, но ИИ может исправить это IPv8 выглядит как мечта. Поэтому почти наверняка не взлетит Производители вернули в продажу материнки с DDR3. Что происходит? Управление агентом с телефона через Telegram теперь в KodaCode От координации к лидерству: как меняется роль руководителя разработки Я сделала родителям бизнес вместо пенсии: зарабатываем 70 тысяч, мама не даёт продать В три раза быстрее приемка товара и оптимизация трудозатрат на 73%: как «РСТ-Инвент» помог Gulliver Group ИИ-шечный мир победил? О влиянии искусственного интеллекта на игропром Кремль снижает давление на Телеграмм пока Европа строит интернет по паспорту Как CEO, CTO и CIO за 8 часов собрали ИИ-директора, который умеет держать позицию под давлением Как (не) потерять домен за выходные Вместо 8 разных VPS: как я организовал практику студентам на одном сервере Почему твой Open Source проект не замечают? R&D: искусство управления неопределенностью в разработке AI-дефляция: вакансий для разработчиков больше, а рост зарплат — худший за 15 лет Мы отдали управление роботами OpenClaw. Что из этого вышло Галактический ID: система идентификации для всех форм разумной жизни Шесть основ бизнес-анализа: начинаем с вопроса «Кто в игре?» Код-ревью, в котором дело не в коде Данные переехали. Команда — нет Системной подход к сдаче OSWE в 2025 Почему комната управления реактором покрашена в цвет морской пены 4 YAML-файла вместо PySpark: как аналитикам строить пайплайны без разработчиков LLM-агент для поиска свободных доменов: автоматизируем подбор Когда, зачем и как правильно начинать новую сессию в Claude Code? Как я заставил нейросеть писать макросы для FreeCAD Анатомия ИИ‑агента для подбора персонала. От тысячи резюме к топ‑10 за минуты Опыт разработчика как экономика внимания Автономность как точка невозврата: кто будет субъектом в цифровом будущем Обучение ИИ в «диких» условиях: как рутинные действия превращаются в датасеты Как измерить LLM для задач кибербеза: обзор открытых бенчмарков Где хранить код? Сравнение GitHub, GitLab и Bitbucket Математика объясняет, почему нормальное распределение встречается повсюду Почему ваш FinOps не работает: 12 тезисов от практиков Как подписать проектную документацию УКЭП с использованием бесплатных лицензий Pilot Адаптивное администрирование Sigla Vision Я грузил уран в бочки, а потом 20 лет строил ИТ в атомной отрасли Чем позвонить с Эвереста? История и обзор спутниковой связи. Часть 2 Как языковая модель помогает контролировать качество инструктажей по охране труда в металлургии Как не передать на desktop свой IP в РКН Анатомия SAP Privileges: как устроено управление правами в macOS MoneyDev: Сказка про три главных слова Обновлённый токенизатор видео K-VAE 2.0 от Сбера Как сделать диспетчеризацию дома на 1284 квартиры почти бесплатно Как мы разогнали железную дорогу Мы дали агентам рутину. Теперь надо решить — что делать с освободившимся временем Токсичный контент, промпт-хакинг и защита ИИ — всё о Guardrails для LLM Умный город начинается с точного взгляда: как «Фалькон Тех» меняет пространство к лучшему Навайбкодил приложение для анализа графов Почему Дюну так интересно читать? Упрощаем работу с рутиной или как стать Гендальфом Белым Деконструкция Go: CPU, RAM и что там происходит. Go Assembler база. Часть 1.1 Какие профессии исчезнут из-за ИИ, а какие появятся? И что с этим делать Как мы построили IT-отдел, где хочется расти: архитектурные встречи, прозрачные метрики и книжные подарки Rufler: Делаем из Claude Code автономный рой через один YAML-конфиг Sing-box и белый список приложений Как построить надёжный обмен сообщениями в микросервисах: лучшие практики для enterprise OpenAI строит MLM-пирамиду, а McKinsey и Accenture помогают ей в этом Дом, который не построил Фишер (Часть 2) «Сверхзвуковой математик» против «Вдумчивого логиста»: битва алгоритмов 3D-упаковки Мультимодальные модели – грубый и дорогой инструмент Разговоры ничего не стоят. Код тоже Проверки физических лиц: с кого начнет ФНС Топ-10 бесплатных нейросетей для создания видео в 2026 году Первые слои кода: как наши решения сегодня определяют архитектуру ИИ на десятилетия Разработка нового статического анализатора: PVS-Studio JavaScript Поиск уязвимостей ПО: базовый минимум или роскошный максимум Почему оценка персонала не работает как инструмент управления Как мы разработали ИИ-ассистента и сократили рутину продуктовой команды на 50% Как я ушел из найма, нажарил косточек и продал на маркетплейсах на 168 млн в год Когда 1С:ERP уже внедрена, а нормального производственного плана всё ещё нет Как я сделал Claude мультимодальным, подключив к нему Qwen Omni Как приглашение на вакансию мечты превращается в атаку Infrastructure as Code: философия и лучшие практики IaC Тестируем Yandex Code Assistant на задаче, в которой нужно хранить секреты nxs-universal-chart v3.0: новое поколение универсального Helm-чарта Callback Injection: Техника, которая отправила Microsoft Defender в глухой нокаут «Все идеи на стол»: митап как способ вывести проект из тупика Сегодня я узнал нечто новое о GPU благодаря багу в своей игре Как заставить LLM ̶ ̶г̶а̶л̶л̶ю̶ ̶ эволюционировать Карта событий как фундамент аналитики: практический кейс для E-commerce Что выбрать для AI: x86, ARM или RISC-V? Дайджест железа за март Роль соматических мутаций в развитии аутоиммунных заболеваний: путь к избирательной терапии Mythos от Anthropic — тревожный сигнал для всех, а не только для банков Guardrails для LLM на Java: как приручить промпт‑инъекции и токсичные ответы Green-VLA: как мы собрали VLA-модель для реального антропоморфного робота и не потеряли обобщение Финансовая гонка вооружений: почему умные люди добровольно в ней участвуют Эра ИИ-агентов наступила: выбираем лучшего цифрового сотрудника # Практический опыт внедрения WinCC Redundancy на производственном предприятии Сделал MVP за 3 дня, а потом неделю прикручивал оплату. Оно того стоило? Физика против Маска: почему Starship V3 может оказаться ещё одной катастрофой Нефть Венесуэлы: крупнейшие запасы в мире, но не крупнейшая нефтяная держава JPA 4. Переосмысление Hibernate Почему зеркальная фотокамера Nikon D5 десятилетней давности идеально подошла для миссии «Артемида-2» Проект «Уровень-Спутник» или как мы сделали платформу для гидрологов «Замедлиться, чтобы ускориться»: почему ИИ повышает цену ошибок в требованиях и архитектуре Как с нуля поднять трафик IT-компании на 1657% при бюджете 55 тыс. и выжить Pixel-perfect Downsampling — идеальная отрисовка 50 миллионов точек без потерь
От диплома до продакшена: … Часть 7: Инфра, MLOps и уроки масштабирования
Aleksey · 2026-06-01 · via Все публикации подряд на Хабре

9 мин

6.5K

От диплома до продакшена: Как я создавал архитектуру ИИ-проекта для… Часть 7: Инфраструктура, MLOps и уроки масштабирования

Автор: Алексей Бобрешов, руководитель отдела искусственного интеллекта Категория: Искусственный интеллект, MLOps, управление проектами, масштабирование Время чтения: 13–16 минут

Это седьмая, заключительная часть серии. Для контекста по безопасности рекомендую Часть 6.


Введение: почему модель — это ещё не продукт

Когда я защищал диплом по «умному дому» в 2021 году, у меня была работающая нейросеть с точностью 94.06%. Я думал: «Вот оно — готовое решение».

Реальность оказалась сложнее. И сразу честно, как и в Части 6: сам дипломный проект в продакшн не пошёл — это был proof of concept, который я довёл до рабочего прототипа и проверял дома. Всё, что я расскажу дальше про масштабирование, MLOps и эксплуатацию, — это уроки из последующей коммерческой работы над ИИ-проектами, наложенные на тот самый дипломный прототип как на сквозной пример.

Главный вывод за эти годы у меня сложился такой: обучить модель — это меньшая часть работы. Большая часть — это масштабирование, мониторинг, поддержка и эволюция системы в реальных условиях. Это расхожая отраслевая оценка (часто говорят про «20/80»), и мой опыт её скорее подтверждает, чем опровергает.

В этой части я разберу:

  • какие ошибки совершают при переходе из прототипа в прод и как их избежать;

  • архитектурные паттерны, которые делают модель пригодной для эксплуатации;

  • как устроены MLOps-процессы в реальной команде;

  • практический чеклист готовности проекта к масштабированию.


Глава 1. «Проклятие прототипа»: почему код из Jupyter не живёт в продакшене

1.1. Типичный путь: от ноутбука к кластеру

Этот путь проходят почти все ИИ-проекты — мой не исключение:

Этап

Инструменты

Проблемы

Решение

Прототип

Jupyter, Colab, локальные данные

Нет версионности и воспроизводимости

Git + DVC

Пилот

Docker, Flask, ручной деплой

Нет автоматизации, сложно откатывать

CI/CD

Продакшн

Kubernetes, MLflow, Prometheus

Мониторинг, дрейф моделей

Полноценный MLOps

1.2. Три ошибки, которые стоят дороже всего

Ошибка 1. «У меня же работает на ноутбуке».

Прототип живёт в идеальных условиях: чистые данные, один пользователь, никакой нагрузки. Прод — это валидация входа, таймауты, логирование и обработка отказов. Разница в коде наглядна:

# Прототип: работает локально, пока всё идёт по плану
model = load_model('my_model.h5')
result = model.predict(audio)

# Продакшн: учитываем окружение и отказы
class ProductionModel:
    def __init__(self, model_path: str, config: ModelConfig):
        self.model = self._load_with_validation(model_path)
        self.preprocessor = AudioPreprocessor(config)
        self.logger = SecurityAuditLogger()

    def predict(self, audio: bytes, context: RequestContext) -> Prediction:
        try:
            self._validate_input(audio)                       # валидация входа
            processed = self.preprocessor.process(audio)
            self.logger.log_preprocessing(context, processed.shape)
            result = self._predict_with_timeout(processed, timeout_ms=500)
            return self._validate_output(result)              # валидация выхода
        except ModelError as e:
            self.logger.log_error(context, e)
            raise

Ошибка 2. Игнорирование дрейфа данных.

Модель распознавания команд отлично работала на обучающей выборке. В реальной эксплуатации картина другая: акценты, которых не было в датасете; фоновый шум вместо лабораторной тишины; другие микрофоны. Распределение входных данных «уезжает» — и точность падает, хотя сам код не менялся.

Для контроля используют индекс стабильности популяции (PSI). Вот рабочая реализация — без заглушек:

import numpy as np

def calculate_psi(expected: np.ndarray, actual: np.ndarray, bins: int = 10) -> float:
    """Population Stability Index между эталонным и текущим распределением."""
    # Границы бинов — по квантилям эталонного распределения
    edges = np.quantile(expected, np.linspace(0, 1, bins + 1))
    edges[0], edges[-1] = -np.inf, np.inf  # покрываем хвосты

    exp_counts, _ = np.histogram(expected, bins=edges)
    act_counts, _ = np.histogram(actual, bins=edges)

    eps = 1e-6  # сглаживание, чтобы не делить на ноль
    exp_pct = exp_counts / exp_counts.sum() + eps
    act_pct = act_counts / act_counts.sum() + eps

    return float(np.sum((act_pct - exp_pct) * np.log(act_pct / exp_pct)))

# Интерпретация: < 0.1 — стабильно; 0.1–0.25 — умеренный дрейф; > 0.25 — сильный дрейф

Ошибка 3. print() вместо мониторинга.

Пока пользователей единицы, отладочный вывод в консоль ещё спасает. На масштабе он превращается в бомбу замедленного действия: когда что-то ломается, у вас нет ни метрик, ни структурированных логов, ни алертов — только тишина и недовольные пользователи.

1.3. Архитектурный паттерн: «обёртка продакшена»

Ключевая идея — не пускать запрос напрямую в модель, а оборачивать её слоями защиты и наблюдаемости:

┌─────────────────────────────────────────────────────────────┐
│                    PRODUCTION WRAPPER                         │
├─────────────────────────────────────────────────────────────┤
│  ┌─────────────┐  ┌─────────────┐  ┌─────────────┐           │
│  │ Input       │  │ Model       │  │ Output      │           │
│  │ Validation  │  │ Executor    │  │ Validation  │           │
│  └──────┬──────┘  └──────┬──────┘  └──────┬──────┘           │
│  ┌──────▼──────┐  ┌──────▼──────┐  ┌──────▼──────┐           │
│  │ Rate        │  │ Timeout     │  │ Logging &   │           │
│  │ Limiting    │  │ Control     │  │ Auditing    │           │
│  └──────┬──────┘  └──────┬──────┘  └──────┬──────┘           │
│  ┌──────▼──────┐  ┌──────▼──────┐  ┌──────▼──────┐           │
│  │ Circuit     │  │ Fallback    │  │ Metrics     │           │
│  │ Breaker     │  │ Strategy    │  │ Collection  │           │
│  └─────────────┘  └─────────────┘  └─────────────┘           │
└─────────────────────────────────────────────────────────────┘
                              ↓
                    ┌─────────────────┐
                    │   Core Model    │
                    └─────────────────┘

Модель здесь — лишь ядро. Всё вокруг — это то, что отличает демо от системы, которую не страшно вывести к пользователям.


Глава 2. MLOps на практике: как устроены процессы

2.1. Эволюция стека

Если сравнить «инструменты студента» и «инструменты команды», разница примерно такая:

Компонент

Прототип

Прод

Зачем меняли

Версионирование

Ручные бэкапы

DVC + Git LFS

Воспроизводимость экспериментов

Эксперименты

Таблицы в Excel

MLflow / Weights & Biases

Сравнение моделей и метрик

Деплой

python deploy.py

Kubernetes + ArgoCD

Автоматизация, откаты, A/B

Мониторинг

print()

Prometheus + Grafana + ELK

Проактивное обнаружение проблем

Тестирование

Ручные проверки

Pytest + Great Expectations

Гарантия качества перед деплоем

2.2. CI/CD для ML-модели

Пайплайн отличается от обычного бэкенда тем, что между тестами и деплоем появляется обучение и оценка модели:

# .github/workflows/ml-pipeline.yml
name: ML Model CI/CD
on:
  push:
    branches: [ main ]

jobs:
  test:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - name: Unit tests
        run: pytest tests/unit/
      - name: Data validation
        run: python scripts/validate_data.py

  train:
    needs: test
    runs-on: gpu-cluster
    if: github.ref == 'refs/heads/main'
    steps:
      - name: Train
        run: python train.py --config config/prod.yaml
      - name: Evaluate (gate by threshold)
        run: python evaluate.py --threshold 0.95
      - name: Register model
        run: mlflow models register --name voice_control

  deploy:
    needs: train
    runs-on: kubernetes
    if: github.ref == 'refs/heads/main'
    steps:
      - name: Deploy to staging
        run: kubectl apply -f k8s/staging/
      - name: Smoke tests
        run: python tests/smoke/test_api.py
      - name: Deploy to production (manual approval)
        run: kubectl apply -f k8s/production/

Обратите внимание на шаг Evaluate (gate by threshold): если новая модель не дотягивает до порога качества, она просто не доезжает до прода. Это дешевле любого инцидента.

2.3. Что отслеживать в эксплуатации

Полезно держать метрики на трёх уровнях:

  • Инфраструктура: CPU/Memory/GPU, latency (p50/p95/p99), error rate (4xx/5xx).

  • Модель: дрейф распределения предсказаний, распределение confidence-скоров, перекос классов.

  • Бизнес: доля успешно выполненных команд, неявная обратная связь от пользователей, стоимость одного предсказания.

Первый уровень показывает, что система жива; второй — что модель всё ещё работает; третий — что всё это вообще приносит пользу.


Глава 3. Команда и процессы: масштабируется не только код

3.1. Роли в ИИ-команде

Когда проект перерастает «одного человека с ноутбуком», важно разделить ответственность:

Роль

За что отвечает

ML Engineer

Разработка и обучение моделей

MLOps Engineer

Деплой, мониторинг, инфраструктура

Data Engineer

Пайплайны данных и их качество

AI Product Manager

Требования бизнеса, приоритизация, метрики

AI Security Specialist

Безопасность, приватность, аудит (см. Часть 6)

На раннем этапе один человек закрывает несколько ролей — это нормально. Проблема начинается, когда роли подменяются молчанием: «мониторингом займёмся потом», «безопасность — не моя зона». «Потом» обычно наступает в виде инцидента.

3.2. Жизненный цикл: от идеи до эксплуатации

1. DISCOVERY (1–2 недели)
   • Бизнес-требования и метрики успеха
   • Оценка доступности данных, рисков
        ↓
2. PROTOTYPING (2–4 недели)
   • EDA, baseline-модель, демо PoC
        ↓
3. DEVELOPMENT (4–8 недель)
   • Прод-код с тестами, оптимизация
   • Security & privacy review
        ↓
4. STAGING (1–2 недели)
   • A/B, нагрузочное тестирование, UAT
        ↓
5. PRODUCTION + MONITORING (постоянно)
   • Постепенный rollout, canary
   • Мониторинг, алерты, обратная связь, ретрейнинг

3.3. Что я сделал бы иначе

  • Закладывал бы MLOps с первого дня, а не «сначала модель, потом инфраструктура». Параллельно — дешевле.

  • Автоматизировал бы тестирование данных раньше. Самые неприятные баги — не в коде, а в «тихом» изменении распределения.

  • Завёл бы playbook для инцидентов. Когда что-то падает в три часа ночи, нужен чеклист, а не паника.


Глава 4. Чеклист: готов ли проект к масштабированию

Это самая практичная часть — её можно унести с собой.

Код и архитектура

  • [ ] Код вынесен из Jupyter в модули с тестами

  • [ ] Конфигурация отделена от кода (config-файлы, env)

  • [ ] Есть обработка ошибок и graceful degradation

  • [ ] Логирование структурированное, а не print()

  • [ ] Есть health checks и readiness probes

Данные

  • [ ] Версионирование данных (DVC, LakeFS)

  • [ ] Валидация входных данных

  • [ ] Мониторинг дрейфа

  • [ ] SLA на свежесть данных

Модель

  • [ ] Версионирование моделей (MLflow, DVC)

  • [ ] A/B-тестирование или canary-деплой

  • [ ] Механизм отката на предыдущую версию

  • [ ] Метрики успеха модели именно в проде, а не только на тесте

Инфраструктура

  • [ ] Автоматизированный деплой (CI/CD)

  • [ ] Горизонтальное/вертикальное масштабирование

  • [ ] Мониторинг инфраструктуры и приложения

  • [ ] Заданы SLO/SLI и правила алертинга

Команда и процессы

  • [ ] Чёткое разделение ролей

  • [ ] Code review с фокусом на ML-аспекты

  • [ ] On-call ротация и playbook для инцидентов

  • [ ] Регулярные ретроспективы

  • [ ] Соответствие 152-ФЗ / GDPR проверено (см. Часть 6)

Если по большинству пунктов стоит галочка — вы, скорее всего, готовы. Если нет — вы готовы к проблемам.


Глава 5. Мысленный эксперимент: как я масштабировал бы дипломный прототип

А теперь — честная оговорка, и заодно ответ внимательному читателю.

В Части 6 я прямо сказал: дипломный проект не дошёл до промышленной эксплуатации. Поэтому всё, что ниже, — это не «отчёт о реальном внедрении на 10 000 устройств», а проекция: как повёл бы себя этот прототип при масштабировании, исходя из его реальных характеристик и из закономерностей, которые я наблюдал на коммерческих проектах. Цифры здесь — ориентиры порядка величины, а не замеры конкретной прод-системы.

Проблема 1. Латентность растёт с нагрузкой. Один сервер с синхронным инференсом упрётся в потолок задолго до тысяч устройств. Лечится горизонтальным масштабированием inference-сервисов, кэшированием частых запросов (Redis) и асинхронной обработкой некритичных команд.

Проблема 2. Дрейф качества. Точность на тесте и точность через три месяца в проде — разные числа, и второе обычно ниже. Лечится мониторингом дрейфа (PSI, KS-тест), автоматическим триггером ретрейнинга и active learning: сбором «сложных» примеров для дообучения.

Проблема 3. Стоимость инфраструктуры. GPU-инференс «в лоб» дорожает быстрее, чем растёт польза. Лечится оптимизацией моделей (квантование, pruning), spot-инстансами для batch-задач и агрессивным авто-скейлингом в ночные часы.

Ориентировочная проекция «было → стало» (повторюсь: расчётные ориентиры, а не факт эксплуатации):

Метрика

Старт

Цель

Устройства

100

10 000+

Latency p95

2–5 сек

< 500 мс

Точность в проде

падает до ~87%

восстанавливается до ~93%

Время деплоя модели

дни

< 1 часа

Здесь и начинаются «разногласия», которые вы могли заметить по серии: между честным «прототип не пошёл в прод» и заманчивым «а вот как бы он полетел». Где проходит граница между проверенным опытом и обоснованной проекцией, какие из этих цифр я могу подтвердить реальными кейсами, а какие остаются гипотезой — этому я посвящу Часть 8. Там же разберу вопросы и возражения из комментариев к предыдущим частям: честный разбор расхождений полезнее, чем красивый, но непроверяемый кейс.


Заключение: масштабирование — это другая игра, а не «больше того же»

Когда я начинал, я думал, что главное — точная модель. Сегодня я думаю иначе: главное — система, которая работает в реальном мире, для реальных людей, в реальных условиях.

Три принципа, которые я вынес:

  1. Масштабируйте процессы, а не только код. Автоматизация, мониторинг и документация — это фундамент, а не «потом».

  2. Закладывайте отказоустойчивость с первого дня. Модель упадёт, данные испортятся, сеть отвалится. Вопрос не «если», а «когда».

  3. Масштабирование — командный спорт. Прототип может сделать один человек; систему — нет.

Что я сказал бы себе в начале пути: «Не спеши. Инвестируй в инфраструктуру. Документируй. Тестируй. Масштабируй постепенно. И помни: продакшн — это не финиш, а старт».


Призыв к действию

  • Если вы делаете ИИ-проект: не откладывайте MLOps, документируйте допущения и ограничения модели, тестируйте не только accuracy, но и latency, cost и устойчивость.

  • Если вы руководите направлением: вкладывайтесь в команду и процессы, измеряйте успех бизнес-метриками.

  • Если вы только начинаете: начните с малого, но думайте о масштабе, и учитесь на чужих ошибках — в том числе на моих.

И главное — оставайтесь честными с читателем. Где я опираюсь на опыт, а где на расчёт, я постарался отметить прямо. Полный разбор спорных мест — в следующей части.


Вся серия:


Автор: Алексей Бобрешов, руководитель отдела искусственного интеллекта Лицензия: CC BY-NC 4.0

Теги: искусственный интеллект, MLOps, масштабирование, продакшн, управление проектами, умный дом, голосовые интерфейсы, DevOps, мониторинг, 152-ФЗ

Хабы: Искусственный интеллект, Машинное обучение, DevOps, Голосовые интерфейсы