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

Организация конвейера машинного обучения

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

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

Этап 1. Получение исходных данных

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

Этап 2. Получение разработанных функций

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

Этап 3. Обучение модели

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

· В зависимости от размера мастер-таблицы можно определить размер выборки для обучения эффективному управлению ресурсами.

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

· Уменьшить габариты с матрицами в приемлемом рабочем диапазоне

· Настройте гиперпараметры и получите оптимальный набор значений

· Сохранение артефактов модели для будущих запусков

Этап 4. Применить

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

Этап 5. Создание вмешательства

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

Награды за конвейерную структуру

Сегодня многие поставщики услуг специализируются на предоставлении платформ для упрощения и ускорения построения конвейеров машинного обучения. Несколько примеров — Azure, Kubeflow и AWS.

1. Повторное использование модулей и согласованность

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

2. Модульность

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

3. Простота отслеживания и управления версиями

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

4. Широкое сотрудничество

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

5. Избегайте утечки данных

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

6. Гибкость

Модульные компоненты конвейера легко заменяются, модифицируются или переделываются, не затрагивая другие этапы/части конвейера. Это позволяет использовать возможности Plug & Play там, где это необходимо.

7. Улучшенная масштабируемость

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

Характеристики конвейера, готового к производству

1) Дегустации единиц

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

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

2) Обработка ошибок и ведение журналов

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

3) Отдельное управление конфигурациями

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

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

Доступные инструменты ML Ops для конвейеров

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

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

Заключение

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

Написано Надишей Эканаяке, старшим специалистом по данным.