Что такое жизненный цикл машинного обучения в 2021 году? В эту эпоху все изучают машинное обучение (ML). Кажется, что каждая компания, собирающая данные, пытается найти способ использовать ИИ и машинное обучение для анализа своего бизнеса и предоставления автоматизированных решений.

Ожидается, что к 2027 году рыночная стоимость машинного обучения достигнет 117 миллиардов долларов США — журнал Fortune.

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

Изображение из доклада о состоянии предприятий в 2020 г. Машинное обучение от Algorithmia на основе данных 750 предприятий

55% компаний еще не запустили свои модели машинного обучения — Algorithmia

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

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

Жизненный цикл машинного обучения

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

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

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

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

Фаза 1: Данные

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

Основные этапы жизненного цикла машинного обучения, связанные с данными:

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

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

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

  • Matplotlib, Plotly — отображать атрибуты данных
  • Tableau — аналитическая платформа для лучшего понимания ваших данных

Аннотирование данных — Аннотирование — это утомительный процесс выполнения одной и той же задачи в течение нескольких часов снова и снова, поэтому услуги аннотирования — это быстро развивающийся бизнес. В результате аннотатор может сделать много ошибок. Хотя большинство компаний, занимающихся созданием аннотаций, гарантируют максимальный процент ошибок (например, максимальная ошибка составляет 2%), более серьезная проблема заключается в том, что структура аннотаций определена неправильно, в результате чего аннотатор решает пометить образец по-другому. Группе контроля качества компании, занимающейся аннотацией, сложно найти это, это то, что вам нужно проверить.

  • Scale, Labelbox, Prodigy — популярные сервисы аннотаций
  • Платформа аннотаций Mechanical Turk-Crowdsourcing
  • CVAT — аннотация компьютерного зрения своими руками
  • Doccano — инструмент аннотирования, специфичный для НЛП.
  • Centaur Labs-сервис маркировки медицинских данных

Улучшите наборы данных и аннотации — вы, вероятно, потратите здесь большую часть времени, пытаясь улучшить производительность модели. Если ваша модель учится, но работает плохо, виновником почти всегда является набор обучающих данных, который содержит систематические ошибки и ошибки, которые ограничивают производительность модели. Улучшение модели обычно включает в себя такие решения, как тщательный анализ выборки (добавление новых обучающих данных, аналогичных другим образцам, где модель дает сбой), перебалансировка набора данных на основе отклонений, полученных моделью, обновление аннотаций и шаблонов для добавления новых тегов и оптимизация. существующие теги…

  • DAGsHub - Контроль версий набора данных
  • FiftyOne — визуализируйте наборы данных и находите ошибки

Фаза 2: Модель

Даже если результатом этого процесса является модель, в идеале вы все равно потратите на этот цикл наименьшее количество времени.

В промышленности больше времени тратится на наборы данных, чем на модели. Кредит Андрею Карпати

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

  • FiftyOne Model Zoo — вы можете скачать и запустить модель всего одной строкой кода.
  • TensorFlow Hub — хранилище хорошо обученных моделей машинного обучения.
  • modelzoo.co — предварительно обученные модели глубокого обучения для различных задач и библиотек

Создайте цикл обучения — ваши данные могут отличаться от данных, используемых для предварительно обученной модели. Для наборов данных изображений такие вещи, как входное разрешение и размер объекта, необходимо учитывать при настройке конвейера обучения для модели. Вам также необходимо изменить структуру вывода модели, чтобы она соответствовала классу и структуре тегов. PyTorch Lightning предоставляет простой способ расширить масштаб обучения модели с помощью ограниченного кода.

  • Scikit Learn — создавайте и визуализируйте классические системы машинного обучения
  • PyTorch, PyTorch Lightning, TensorFlow, TRAX — популярные библиотеки Python для глубокого обучения
  • Sagemaker — создание и обучение системы машинного обучения в Sagemaker IDE

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

Фаза 3: Оценка

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

Ключевые шаги для оценки модели машинного обучения:

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

  • OpenCV, Numpy, Matplotlib — написание пользовательских сценариев визуализации
  • FiftyOne — визуализируйте результаты задач компьютерного зрения на изображениях и видео.

Выбор правильных индикаторов — предложение одного или нескольких индикаторов может помочь сравнить общую производительность модели. Чтобы убедиться, что вы выбрали лучшую модель для своей задачи, вы должны разработать метрики, которые соответствуют конечной цели. Когда вы обнаружите другие важные качества для отслеживания, вам также следует обновить показатели. Например, если вы хотите начать отслеживать производительность модели обнаружения объектов на небольших объектах, используйте mAP для объектов, ограничивающая рамка ‹0,05 которых является одним из объектов.

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

  • Обучение Scikit — предоставление общих индикаторов
  • Python, Numpy-Разработка пользовательских индикаторов

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

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

› Изображение предоставлено Тайлеру Гантеру (источник)

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

Фаза 4: Производство

Ну наконец то! Вы установили модель, которая может хорошо выполнять ваши показатели оценки и не будет вызывать серьезных ошибок в различных экстремальных ситуациях.

Теперь вам нужно:

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

  • Pachyderm, Algorithmia, Datarobot, Kubeflow, MLFlow — модели и конвейеры развертывания и мониторинга
  • Amazon Web Services, Google AutoML, облачные решения Microsoft Azure для моделей машинного обучения

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

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

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

Пятьдесят один

Приведенное выше содержание является очень общим и непредвзятым, но я хочу познакомить вас с инструментами, которые я использовал.

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

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

FiftyOne может работать на ноутбуке, поэтому, пожалуйста, используйте этот ноутбук Colab, чтобы попробовать его в браузере. Кроме того, вы можете легко установить его с помощью pip.

пип установить пятьдесят один

Резюме

Лишь небольшой процент всех компаний, которые пытаются внедрить машинное обучение (ML) в управление своим бизнесом, внедряют эту модель в производство. Модель жизненного цикла машинного обучения не является простой, но требует непрерывной итерации между улучшением данных и аннотаций, построением модели и конвейера обучения, а также оценкой на уровне выборки. Если вы знаете, что хотите сделать, то этот цикл может в конечном итоге создать модель, которую можно использовать для производства, но ее необходимо будет поддерживать и обновлять с течением времени. К счастью, было разработано бесчисленное множество инструментов, помогающих на каждом этапе этого процесса.

Первоначально опубликовано на https://scienceooze.com 21 февраля 2021 г.