Серия специализаций MLOps
Ключевые моменты обучения по специализации MLOps — курс 2
Резюме (с конспектами лекций) из курса Machine Learning Engineering for Production (MLOps) DeepLearning.AI и Эндрю Нг
Хотя концепции машинного обучения (ML) очень важны, возможности производственного проектирования являются ключом к развертыванию моделей ML и получению отдачи от них в реальном мире.
DeepLearning.AI и Coursera недавно разработали курс Специализация MLOps, чтобы поделиться тем, как концептуализировать, создавать и поддерживать интегрированные системы машинного обучения.
В этой статье я подытожу уроки, чтобы вы могли пропустить длинные лекции, но при этом получить ключевые идеи.
Содержание
(1)Обзор курса 2
(2)Основные уроки
(3) Конспект лекций в формате PDF
Эта статья посвящена курсу 2 специализации MLOps из 4-курса. Подпишитесь на эту страницу Medium, чтобы быть в курсе материалов следующих курсов.
Обзор курса 2
Этот второй курс (Жизненный цикл данных машинного обучения в производственной среде) посвящен производственному машинному обучению, определяемому как развертывание систем машинного обучения в производственной среде.
Производственное машинное обучение сочетает в себе машинное обучение иразработку современного программного обеспечения, поскольку для реальных решений машинного обучения требуется нечто большее, чем просто обучение точным алгоритмам.
Цель специалистов по работе с данными должна заключаться в создании интегрированных систем машинного обучения, которые постоянно работают в производственной среде, автоматически принимают и переобучают постоянно меняющиеся данные и оптимизируют вычислительные затраты.
Этот курс охватывает три ключевых компонента жизненного цикла промышленного машинного обучения:
- Сбор, маркировка и проверка данных
- Разработка функций, преобразование и выбор
- Путь к данным и хранение данных
Ключевые уроки
В духе акцента курса на практическом применении выводы будут сосредоточены на практических советах. Информация организована на основе трех компонентов жизненного цикла, упомянутых ранее.
(1) Сбор, маркировка и проверка данных
- Платформы сквозного машинного обучения жизненно важны для развертывания рабочих конвейеров машинного обучения. Команда Google использует TensorFlow Extended (TFX) с открытым исходным кодом для промышленного машинного обучения.
- Конвейер TFX — это последовательность компонентов, разработанная для масштабируемых и высокопроизводительных задач машинного обучения.
- Первые два компонента (прием данных и проверка данных) относятся к сбору данных, маркировке и задачам проверки.
(i) Сбор данных
- Цель групп данных — преобразовать потребности пользователей в проблемы с данными, поэтому первое, что нужно оценить, — это сами данные. Вот список важных вопросов, которые следует задать:
- Какие и сколько данных доступны?
- Какие детали данных?
— Размечены ли данные? Если нет, насколько сложно/дорого это сделать?
— Как часто новые данные поступают/обновляются?
— Отслеживаются ли источники данных на предмет системных проблем и сбоев? - Каковы прогностические функции?
— содержит ли набор данных функции с прогностическими значениями? - Какие ярлыки нужно отслеживать?
- Какие показатели используются для измерения эффективности модели?
- Какое качество данных?
— Существуют ли несовместимые форматы данных (например, смешанные типы) и выбросы, влияющие на производительность модели?
эм>
(ii) Маркировка данных
- Ярлыки важны, потому что обучение с учителем (которое требует меток) обычно используется в большинстве бизнес-кейсов.
- Существуют различные методы маркировки, два из которых наиболее распространены: обратная связь от процесса и маркировка человеком.
- Обработка обратной связи – это способ непрерывного создания новых обучающих данных путем получения сигналов от анализа системных файлов журнала, например, кликов (т. е. кликнул ли клиент или сделал ненажимать). Проблема в том, что существует несколько сценариев, в которых это возможно.
- Назначение ярлыков человеком – это более стандартный подход, при котором мы передаем немаркированные данные специалистам по навешиванию ярлыков (также известным как оценщики) для проверки и присвоения ярлыков вручную.
- Хотя навешивание ярлыков человеком не представляет сложности, возникнуть может несколько проблем:
- Набор может быть дорогим, особенно если проект требует маркировки специалистов, например рентгенологов для маркировки рентгеновских снимков.
- Маркировка может быть медленной, если число оценщиков невелико.
- Проблемы с качеством могут возникнуть, если оценщики различаются стандартами маркировки.
- Мы можем улучшить согласованность маркировки, создав четкие инструкции для оценщиков и способствуя активному разрешению конфликтов маркировки.
(iii) Проверка данных
- Производительность производственных систем машинного обучения может ухудшиться со временем из-за постоянных изменений в реальных данных.
- Необходим рабочий процесс проверки данных для обнаружения этих существенных проблем с данными.
- TensorFlow Data Validation (TFDV) — это масштабируемая библиотека, которая помогает разработчикам поддерживать работоспособность конвейеров машинного обучения за счет понимания, проверка и мониторинг данных в масштабе.
- Вот критически важные проблемы дрейфа и перекоса данных, которые необходимо проверить:
- Дрейф концепций: изменения во взаимосвязи (т.н. сопоставление) между входными и выходными переменными с течением времени.
- Перекос схемы: данные обучения и обслуживания не соответствуют одной и той же схеме (например, из-за наличия разных типов данных).
- Перекос в распределении. Распределение данных об обслуживании и обучении значительно различается (например, из-за сезонных изменений с течением времени). Этот перекос включает детализированные проблемы сдвига набора данных и сдвига ковариации.
- Перекос функции: значения функции обучения отличаются от значений функции обслуживания (например, из-за преобразования, применяемого только к обучающей выборке).
(2) Разработка признаков, преобразование и выбор
(i) Разработка функций
- Важной целью разработки признаков в производственной среде машинного обучения является сокращение вычислительных ресурсов, и это достигается за счет концентрации прогностической информации в меньшем количестве функций для повышения эффективности вычислений.
- Несоответствия в разработке функций могут привести к перекосам между обучением и обслуживанием, что приведет к снижению производительности модели обслуживания. Эти несоответствия возникают из-за:
- Обучение и обслуживание пути кода различаются (например, обучение на Python, но обслуживание на Java), что приводит к разным преобразованиям между двумя
- Различные сценарии развертывания (например, модель развертывается в разных средах, таких как мобильные устройства, веб-сайты и серверы).
(ii) Преобразование функций
- Преобразование функций происходит с двумя типами детализации:
- Уровень экземпляра: включает только экземпляр (то есть одну строку данных). Примеры включают умножение (например, возведение объекта в квадрат) и отсечение (например, установка неотрицательной границы путем изменения отрицательных значений на 0).
- Полный проход: включает весь набор данных. Примеры включают стандартное масштабирование, минимальное-максимальное масштабирование и бинирование.
- Существуют разные моменты времени для выполнения трансформации:
- Преобразование обучающих данных перед вводом в модель
- Преобразование внутри модели
- У каждого момента времени есть свои плюсы и минусы, и они являются важными соображениями для стоимости и эффективности производства.
- TensorFlow Transform (TFT) — это полезная библиотека для предварительной обработки и преобразования данных, и такие фреймворки необходимы для эффективной и распределенной обработки больших наборов данных.
(iii) Выбор функций
- Существует три основных категории методов контролируемого выбора функций: фильтр, оболочка и встроенный.
- Помимо использования показателей производительности (например, оценки F1, AUC) для оценки методов, после применения этих методов следует оценить количество функций (также называемых количеством функций).
- Идеальный сценарий — это когда метрика производительности максимальна, а количество функций сведено к минимуму.
(3) Путь к данным и хранение данных
(i) Происхождение данных
- Происхождение данных (также известное как родословная) – это отслеживание ряда преобразований в эволюции данных и моделей от необработанных входных данных до выходных артефактов.
- Понимание пути передачи данных (и, следовательно, происхождения данных) жизненно важно для отладки и воспроизводимости. Без отслеживания невозможно воссоздать, сравнить или объяснить модели машинного обучения.
- При каждом запуске конвейера создаются полезные метаданные, содержащие информацию о выполнении конвейера, обучающих запусках и полученных артефактах.
- ML Metadata (MLMD) — это библиотека для записи и извлечения метаданных, связанных с запуском производственного конвейера.
(ii) Версии данных
- Управление конвейерами данных представляет собой сложную задачу, поскольку данные развиваются в ходе различных обучающих циклов жизненного цикла проекта.
- Хотя мы знакомы с управлением версиями кода (например, Git) и управлением версиями среды (например, Docker), управление версиями данных одинаково важно и играет решающую роль в происхождении данных.
- Инструменты управления версиями данных становятся доступными, и некоторые из существующих примеров — DVC и Git LFS.
(iii) Магазины функций
- Хранилище функций — это центральный репозиторий для задокументированных, курируемых и контролируемых функций данных, которыми команды могут делиться, обнаруживать и использовать для обучения и обслуживания моделей.
- Хранилища функций уменьшают избыточную работу, поскольку во многих задачах моделирования используются идентичные или похожие функции.
- Цель состоит в том, чтобы предоставить унифицированные, согласованные и постоянные средства управления функциями данных, которые являются производительными и масштабируемыми.
(iv) Хранилища данных, базы данных и озера данных
- Существует несколько ведущих решений для хранения данных, а именно базы данных, хранилища данных и данные озера.
- База данных – это организованный набор данных, обеспечивающий легкий доступ и поиск.
- Хранилище данных – это центральный репозиторий информации, предназначенный для анализа и принятия взвешенных решений.
- Озеро данных — это централизованное хранилище, позволяющее хранить все ваши структурированные и неструктурированные данные в любом масштабе.
- Вот сравнения, объясняющие полезность этих решений:
Хранилище данных и база данных
Хранилище данных и озеро данных
Конспекты лекций в формате PDF
В знак признательности привожу ссылку на репозиторий GitHub с конспектами лекций в формате pdf, составленный мной на основе слайдов и расшифровок.
Чтобы оставаться в курсе последних заметок из последующих курсов, не стесняйтесь ставить репозиторию звезду.
Готовы к большему?
Вот статья для следующего Курса 3:
Если нет, ознакомьтесь с Курсом 1 из этой серии:
Перед тем, как ты уйдешь
Я приветствую вас, присоединяйтесь ко мне в изучении науки о данных! Подпишитесь на эту страницу Средний и загляните на мой GitHub, чтобы оставаться в курсе более интересного контента по науке о данных. А пока получайте удовольствие от создания производственных систем машинного обучения!