После изучения основных концепций ML/DL и применения знаний на практике это было действительно сложно и сложно. Следующим шагом является то, как мы можем двигаться к тому, чтобы сделать проект ML/DL более готовым к производству. Поэтому, чтобы узнать больше о производственном конвейере, я записался на курс специализации Машинное обучение для производства (MLOps), предлагаемый DeepLearning.AI от Coursera и Google, который был действительно интуитивно понятным и предоставлял, как сделать надлежащее производство трубопровод.

Завершив этот курс, я решил больше узнать о жизненных циклах автоматических моделей Tensorflow в книге O’Reilly под названием Создание конвейеров машинного обучения.

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

Что такое конвейеры машинного обучения?

Конвейеры машинного обучения реализуют и формализуют процессы для ускорения, повторного использования, управления и развертывания моделей машинного обучения.

Автоматизированный воспроизводимый конвейер снижает усилия, необходимые для развертывания модели. Конвейер должен включать шаги, которые:

  • Версируйте свои данные эффективно и начните обучение новой модели
  • Проверка полученных данных и проверка на предмет дрейфа данных
  • Эффективная предварительная обработка данных для обучения и проверки модели
  • Эффективно обучайте свои модели машинного обучения
  • Отслеживайте обучение модели
  • Анализируйте и проверяйте обученные и настроенные модели
  • Разверните проверенную модель
  • Масштабировать развернутую модель
  • Собирайте новые обучающие данные и показатели производительности моделей с помощью циклов обратной связи.

В этом списке отсутствует один важный момент: выбор архитектуры модели. Я предполагаю, что вы уже хорошо разбираетесь в этом шаге, что является необходимым условием для этой серии.

В настоящее время существует несколько фреймворков/инструментов, которые могут поддерживать конвейер машинного обучения, но, поскольку в книге речь идет о Tensorflow и расширенном Tensorflow, я буду следовать в том же направлении.

Почему TensorFlow и TensorFlow Extended?

  • Экосистема TensorFlow является наиболее широко доступной для машинного обучения на момент написания. Он включает в себя несколько полезных проектов и вспомогательных библиотек, выходящих за рамки его основного направления, таких как TensorFlow Privacy и TensorFlow Probability.
  • Он популярен и широко используется в малых и крупных производственных установках, и существует активное сообщество заинтересованных пользователей.
  • Поддерживаемые варианты использования охватывают диапазон от академических исследований до машинного обучения в производстве. TFX тесно интегрирован с основной платформой TensorFlow для производственных сценариев использования.
  • И TensorFlow, и TFX являются инструментами с открытым исходным кодом, и на их использование нет ограничений.

Компоненты конвейера машинного обучения

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

Прием данных и управление версиями данных

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

Валидация данных

Это очень важный этап конвейера перед обучением новой версии модели. Это означает, что когда модель машинного обучения запущена в производство и работает нормально, а через несколько дней конвейер получает новые данные, поэтому, прежде чем вводить новые данные в модель, нам необходимо проверить их.
Проверка данных направлена ​​на проверку того, что статистика новых данных, как и ожидалось (например, диапазон, количество категорий и распределение категорий). Он также предупреждает специалиста по данным, если обнаружены какие-либо аномалии. Например, если вы обучаете модель бинарной классификации, ваши обучающие данные могут содержать 50 % выборок класса X и 50 % выборок класса Y. Инструменты проверки данных выдают предупреждения, если разделение между этими классами меняется, когда, возможно, вновь собранные данные распределяются между двумя классами 70/30. Если модель обучается на таком несбалансированном обучающем наборе, а специалист по обработке и анализу данных не скорректировал функцию потерь модели или избыточную/недостаточную выборку категории X или Y, прогнозы модели могут быть смещены в сторону доминирующей категории.
Если у вас есть набор данных с доминирующей меткой, и вы разделяете набор данных на набор для обучения и проверки, вам необходимо убедиться, что разделение меток между двумя наборами данных примерно одинаковое. Как только такое поведение наблюдается, специалист по данным или инженер по машинному обучению может изменить гиперпараметр и начать жизненный цикл для корректировки новых данных.

Предварительная обработка данных

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

Обучение и настройка модели

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

Анализ модели

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

Версии модели

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

Развертывание модели

После того, как вы обучили, настроили и проанализировали свою модель, она готова к использованию в прайм-тайм. К сожалению, слишком много моделей развертывается с одноразовыми реализациями, что делает процесс обновления моделей ненадежным. Одновременное размещение нескольких версий (через API, например REST) ​​позволит вам проводить A/B-тестирование своих моделей и предоставлять ценные отзывы об улучшениях вашей модели.
Серверы моделей быстро обновляют версии моделей путем повторного развертывания, а также сократить время простоя приложения.

Обратная связь модели

Мы должны измерить эффективность и производительность недавно развернутой модели. На этом этапе мы можем получить ценную информацию о производительности модели.

Надеюсь, вам понравится контент. Оставайтесь с нами для предстоящей статьи. Не стесняйтесь оставлять свои комментарии или предложения

Ссылка — https://www.oreilly.com/library/view/building-machine-learning/9781492053187/