Серия специализаций 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. Сбор, маркировка и проверка данных
  2. Разработка функций, преобразование и выбор
  3. Путь к данным и хранение данных

Ключевые уроки

В духе акцента курса на практическом применении выводы будут сосредоточены на практических советах. Информация организована на основе трех компонентов жизненного цикла, упомянутых ранее.

(1) Сбор, маркировка и проверка данных

  • Платформы сквозного машинного обучения жизненно важны для развертывания рабочих конвейеров машинного обучения. Команда Google использует TensorFlow Extended (TFX) с открытым исходным кодом для промышленного машинного обучения.

  • Конвейер TFX — это последовательность компонентов, разработанная для масштабируемых и высокопроизводительных задач машинного обучения.

  • Первые два компонента (прием данных и проверка данных) относятся к сбору данных, маркировке и задачам проверки.

(i) Сбор данных

  • Цель групп данных — преобразовать потребности пользователей в проблемы с данными, поэтому первое, что нужно оценить, — это сами данные. Вот список важных вопросов, которые следует задать:
  1. Какие и сколько данных доступны?
  2. Какие детали данных?
    Размечены ли данные? Если нет, насколько сложно/дорого это сделать?
    — Как часто новые данные поступают/обновляются?
    — Отслеживаются ли источники данных на предмет системных проблем и сбоев?
  3. Каковы прогностические функции?
    — содержит ли набор данных функции с прогностическими значениями?
  4. Какие ярлыки нужно отслеживать?
  5. Какие показатели используются для измерения эффективности модели?
  6. Какое качество данных?
    — Существуют ли несовместимые форматы данных (например, смешанные типы) и выбросы, влияющие на производительность модели?
    эм>

(ii) Маркировка данных

  • Ярлыки важны, потому что обучение с учителем (которое требует меток) обычно используется в большинстве бизнес-кейсов.
  • Существуют различные методы маркировки, два из которых наиболее распространены: обратная связь от процесса и маркировка человеком.

  • Обработка обратной связи – это способ непрерывного создания новых обучающих данных путем получения сигналов от анализа системных файлов журнала, например, кликов (т. е. кликнул ли клиент или сделал ненажимать). Проблема в том, что существует несколько сценариев, в которых это возможно.
  • Назначение ярлыков человеком – это более стандартный подход, при котором мы передаем немаркированные данные специалистам по навешиванию ярлыков (также известным как оценщики) для проверки и присвоения ярлыков вручную.
  • Хотя навешивание ярлыков человеком не представляет сложности, возникнуть может несколько проблем:
  1. Набор может быть дорогим, особенно если проект требует маркировки специалистов, например рентгенологов для маркировки рентгеновских снимков.
  2. Маркировка может быть медленной, если число оценщиков невелико.
  3. Проблемы с качеством могут возникнуть, если оценщики различаются стандартами маркировки.
  • Мы можем улучшить согласованность маркировки, создав четкие инструкции для оценщиков и способствуя активному разрешению конфликтов маркировки.

(iii) Проверка данных

  • Производительность производственных систем машинного обучения может ухудшиться со временем из-за постоянных изменений в реальных данных.
  • Необходим рабочий процесс проверки данных для обнаружения этих существенных проблем с данными.
  • TensorFlow Data Validation (TFDV) — это масштабируемая библиотека, которая помогает разработчикам поддерживать работоспособность конвейеров машинного обучения за счет понимания, проверка и мониторинг данных в масштабе.

  • Вот критически важные проблемы дрейфа и перекоса данных, которые необходимо проверить:
  1. Дрейф концепций: изменения во взаимосвязи (т.н. сопоставление) между входными и выходными переменными с течением времени.
  2. Перекос схемы: данные обучения и обслуживания не соответствуют одной и той же схеме (например, из-за наличия разных типов данных).
  3. Перекос в распределении. Распределение данных об обслуживании и обучении значительно различается (например, из-за сезонных изменений с течением времени). Этот перекос включает детализированные проблемы сдвига набора данных и сдвига ковариации.
  4. Перекос функции: значения функции обучения отличаются от значений функции обслуживания (например, из-за преобразования, применяемого только к обучающей выборке).

(2) Разработка признаков, преобразование и выбор

(i) Разработка функций

  • Важной целью разработки признаков в производственной среде машинного обучения является сокращение вычислительных ресурсов, и это достигается за счет концентрации прогностической информации в меньшем количестве функций для повышения эффективности вычислений.
  • Несоответствия в разработке функций могут привести к перекосам между обучением и обслуживанием, что приведет к снижению производительности модели обслуживания. Эти несоответствия возникают из-за:
  1. Обучение и обслуживание пути кода различаются (например, обучение на Python, но обслуживание на Java), что приводит к разным преобразованиям между двумя
  2. Различные сценарии развертывания (например, модель развертывается в разных средах, таких как мобильные устройства, веб-сайты и серверы).

(ii) Преобразование функций

  • Преобразование функций происходит с двумя типами детализации:
  1. Уровень экземпляра: включает только экземпляр (то есть одну строку данных). Примеры включают умножение (например, возведение объекта в квадрат) и отсечение (например, установка неотрицательной границы путем изменения отрицательных значений на 0).
  2. Полный проход: включает весь набор данных. Примеры включают стандартное масштабирование, минимальное-максимальное масштабирование и бинирование.
  • Существуют разные моменты времени для выполнения трансформации:
  1. Преобразование обучающих данных перед вводом в модель
  2. Преобразование внутри модели
  • У каждого момента времени есть свои плюсы и минусы, и они являются важными соображениями для стоимости и эффективности производства.

  • 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, чтобы оставаться в курсе более интересного контента по науке о данных. А пока получайте удовольствие от создания производственных систем машинного обучения!