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

DeepLearning.AI 58,7 тыс. 12 мин 3 мин 20.04.2022
Главное

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

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

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

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

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

📝 Работа с данными: Проблема консистентности 1:44

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

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

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

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

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

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

🛠️ Моделирование: Код против данных 5:39

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

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

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

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

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

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

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

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

💬 Цитаты

«Для многих задач вы можете использовать open-source реализацию с GitHub и вместо кода сфокусироваться на оптимизации данных.»

«Вместо того чтобы просто собирать всё больше и больше данных, анализ ошибок поможет вам действовать более целенаправленно.»

👥 Спикер
🔗 Упомянутые сайты и проекты
📖 Термины
VAD (Voice Activity Detection)
Алгоритм, определяющий наличие человеческой речи в аудиопотоке для экономии ресурсов при отправке данных на сервер.
Concept drift / Data drift
Изменение статистических свойств входных данных со временем, приводящее к снижению точности работающей модели.
Latency (Задержка)
Время, которое проходит с момента получения входных данных до выдачи результата системой.
Throughput (Пропускная способность)
Объем данных или количество запросов, которые система способна обработать за единицу времени.
📊 Цифры
⚖️ Другая сторона
Искусственный интеллект Эндрю Ын MLOps Распознавание речи DeepLearning.AI Data-centric AI