# Эндрю Ын об MLOps: почему «чистые» данные важнее идеального кода

Источник: https://www.youtube.com/watch?v=YJsRD_hU4tc
Канал: DeepLearning.AI
Опубликовано: 20.04.2022

---

Переход от лабораторных исследований к реальным продуктам в области машинного обучения требует не только качественных алгоритмов, но и понимания полного жизненного цикла проекта. В этом видеоуроке основатель DeepLearning.AI Эндрю Ын на примере системы распознавания речи разбирает этапы MLOps — от постановки задачи до мониторинга работающего приложения.

## 🎯 Этап первый: Определение рамок и метрик (Scoping)
[[JUMP:00:00]]

Успех глубокого обучения значительно повысил точность распознавания речи по сравнению с показателями десятилетней давности [0:00]. Это позволило внедрить голосовой поиск и умные колонки в повседневную жизнь. Однако для создания коммерчески ценной системы первым шагом всегда является «скоупинг» (scoping) — определение рамок проекта [0:39].

По мнению Эндрю Ына, на этом этапе критически важно не просто выбрать задачу (например, голосовой поиск), но и оценить ключевые показатели [0:52]:

*   **Точность:** насколько корректно система переводит звуки в текст [1:06].
*   **Задержка (Latency):** сколько времени требуется для выдачи результата пользователю [1:19].
*   **Пропускная способность (Throughput):** какое количество запросов в секунду может обрабатывать сервер [1:19].

Кроме технических метрик, Ын рекомендует заранее «прикинуть» необходимые ресурсы: бюджет, вычислительные мощности и реалистичные сроки реализации [1:31].

## 📝 Работа с данными: Проблема консистентности
[[JUMP:01:44]]

Второй этап — работа с данными (Data), которая включает их определение, разметку и организацию. Одной из главных проблем практического распознавания речи является непоследовательность в разметке [1:59].

В качестве примера Эндрю Ын приводит аудиозапись фразы: *«М-м... сегодня погода»* [2:11]. Он выделяет три варианта того, как разные специалисты могут это транскрибировать:

1.  Записать дословно, включая междометия: «М-м, сегодня погода» [2:24].
2.  Записать только значимые слова: «Сегодня погода» [2:36].
3.  Посчитать начало просто шумом и не фиксировать его в тексте [2:50].

По утверждению спикера, любой из этих вариантов приемлем, но алгоритм начнет ошибаться, если данные будут размечены вперемешку разными способами [3:15]. Несогласованность сбивает модель с толку, так как она не понимает, какой конвенции придерживаться [3:28]. Эндрю Ын считает, что стандартизация процесса разметки и исправление таких нестыковок могут существенно повысить производительность модели [3:42].

Помимо транскрипции, возникают и другие вопросы определения данных:

*   **Тишина:** сколько миллисекунд тишины оставлять до и после фразы (100, 300 или 500 мс) [3:55].
*   **Нормализация громкости:** как обрабатывать записи, где один человек говорит громко, а другой тихо, или когда громкость меняется внутри одной записи [4:22].

Ын подчеркивает разницу в подходах: если в академических исследованиях датасеты часто фиксированы (бенчмарки), то в промышленной разработке (Production) редактирование тренировочных и тестовых наборов данных для повышения их качества является стандартной практикой [5:00].

## 🛠️ Моделирование: Код против данных
[[JUMP:05:39]]

Процесс моделирования состоит из выбора архитектуры, обучения и анализа ошибок. Традиционно обучение ML-модели базируется на трех компонентах: коде (алгоритме), гиперпараметрах и данных [5:52].

Эндрю Ын отмечает ключевое различие между академическим и продуктовым подходом:

*   **Академический подход (Model-centric):** исследователи держат данные неизменными и пытаются улучшить код или подобрать гиперпараметры для достижения лучших результатов [6:18].
*   **Продуктовый подход (Data-centric):** для большинства продуктовых команд эффективнее зафиксировать код (например, использовать готовую реализацию архитектуры с GitHub) и сфокусироваться на оптимизации данных [6:44].

Спикер полагает, что во многих задачах использование открытых моделей и целенаправленное улучшение датасета на основе анализа ошибок — самый быстрый путь к высокой точности [7:24]. Вместо того чтобы бесконечно собирать «просто больше данных», Ын советует использовать анализ ошибок, чтобы понять, какие именно данные нужно добавить [8:08].

## 🚀 Деплой и «деградация» моделей в реальности
[[JUMP:08:36]]

Когда модель обучена и показывает хорошие результаты, наступает этап развертывания (Deployment). Типичная схема для смартфона выглядит так:

1.  На устройстве работает модуль **VAD (Voice Activity Detection)**, который определяет, говорит ли человек в данный момент [8:49].
2.  Только фрагменты с речью отправляются на сервер предсказаний в облако [9:28].
3.  Сервер возвращает транскрипт и результаты поиска, которые отображаются во фронтенде приложения [9:42].

Однако работа инженера не заканчивается после запуска. Система требует постоянного мониторинга. Эндрю Ын делится личной историей: однажды его команда запустила систему, обученную в основном на голосах взрослых [10:22]. Со временем приложением стало пользоваться всё больше подростков и детей. Из-за того, что детские голоса звучат иначе, точность системы начала падать [10:35].

Это явление называется **«дрейф концепта» (concept drift)** или **«дрейф данных» (data drift)** — ситуация, когда распределение данных, поступающих на вход модели, меняется со временем [11:01]. Умение вовремя заметить такие изменения с помощью мониторинга и быстро исправить их (например, дообучив модель на новых данных) является критически важным навыком для MLOps-инженера [11:28].