MLOps — это практика применения методов DevOps для автоматизации, управления и аудита рабочих процессов машинного обучения (ML). Рабочие процессы машинного обучения включают в себя следующие шаги:
- Подготовка, анализ и преобразование данных.
- Обучите и оцените модель.
- Развертывание обученных моделей в рабочей среде.
- Отслеживайте артефакты машинного обучения и анализируйте их зависимости.
Управление этими шагами в режиме ad-hoc может быть трудным и трудоемким.
TFX упрощает реализацию MLOps, предоставляя набор инструментов, который помогает организовать процесс машинного обучения на различных оркестраторах, таких как Apache Airflow, Apache Beam и Kubeflow Pipelines. Реализуя свой рабочий процесс в виде конвейера TFX, вы можете:
- Автоматизируйте процесс машинного обучения, что позволит регулярно переобучать, оценивать и развертывать модель.
- Используйте распределенные вычислительные ресурсы для обработки больших наборов данных и рабочих нагрузок.
- Увеличьте скорость экспериментов, запустив конвейер с различными наборами гиперпараметров.
В этом руководстве описываются основные понятия, необходимые для понимания конвейеров TFX.
Артефакт
Выходные данные шагов конвейера TFX называются артефактами . Последующие шаги вашего рабочего процесса могут использовать эти артефакты в качестве входных данных. Таким образом, TFX позволяет передавать данные между этапами рабочего процесса.
Например, стандартный компонент ExampleGen
сериализованные примеры, которые такие компоненты, как стандартный компонент StatisticsGen
, используют в качестве входных данных.
Артефакты должны быть строго типизированы с типом артефакта, зарегистрированным в хранилище метаданных машинного обучения . Узнайте больше о концепциях, используемых в метаданных машинного обучения .
Типы артефактов имеют имя и определяют схему своих свойств. Имена типов артефактов должны быть уникальными в вашем хранилище метаданных машинного обучения. TFX предоставляет несколько стандартных типов артефактов , которые описывают сложные типы данных и типы значений, такие как: строка, целое число и число с плавающей запятой. Вы можете повторно использовать эти типы артефактов или определить пользовательские типы артефактов, производные от Artifact
.
Параметр
Параметры — это входные данные для конвейеров, которые известны до выполнения вашего конвейера. Параметры позволяют изменить поведение конвейера или его части с помощью конфигурации, а не кода.
Например, вы можете использовать параметры для запуска конвейера с различными наборами гиперпараметров без изменения кода конвейера.
Использование параметров позволяет увеличить скорость экспериментирования, упрощая запуск конвейера с различными наборами параметров.
Узнайте больше о классе RuntimeParameter .
Составная часть
Компонент — это реализация задачи машинного обучения, которую можно использовать в качестве шага в конвейере TFX. Компоненты состоят из:
- Спецификация компонента, которая определяет входные и выходные артефакты компонента, а также необходимые параметры компонента.
- Исполнитель, который реализует код для выполнения шага рабочего процесса машинного обучения, например приема и преобразования данных или обучения и оценки модели.
- Интерфейс компонента, который упаковывает спецификацию компонента и исполнитель для использования в конвейере.
TFX предоставляет несколько стандартных компонентов , которые вы можете использовать в своих пайплайнах. Если эти компоненты не соответствуют вашим потребностям, вы можете создать собственные компоненты. Узнайте больше о пользовательских компонентах .
Трубопровод
Конвейер TFX — это переносимая реализация рабочего процесса машинного обучения, которую можно запускать на различных оркестраторах, таких как Apache Airflow, Apache Beam и Kubeflow Pipelines. Конвейер состоит из экземпляров компонентов и входных параметров.
Экземпляры компонентов создают артефакты в качестве выходных данных и обычно зависят от артефактов, создаваемых вышестоящими экземплярами компонентов в качестве входных данных. Последовательность выполнения экземпляров компонентов определяется путем создания ориентированного ациклического графа зависимостей артефактов.
Например, рассмотрим конвейер, который делает следующее:
- Получает данные непосредственно из проприетарной системы с помощью пользовательского компонента.
- Вычисляет статистику для обучающих данных с помощью стандартного компонента StatisticsGen.
- Создает схему данных с помощью стандартного компонента SchemaGen.
- Проверяет обучающие данные на наличие аномалий с помощью стандартного компонента ExampleValidator.
- Выполняет проектирование признаков в наборе данных с помощью стандартного компонента Transform.
- Обучает модель, используя стандартный компонент Trainer.
- Оценивает обученную модель с помощью компонента Evaluator.
- Если модель проходит оценку, конвейер ставит обученную модель в очередь на проприетарную систему развертывания с помощью пользовательского компонента.
Чтобы определить последовательность выполнения экземпляров компонентов, TFX анализирует зависимости артефактов.
- Компонент приема данных не имеет зависимостей от артефактов, поэтому он может быть первым узлом в графе.
- StatisticsGen зависит от примеров , созданных при приеме данных, поэтому он должен выполняться после приема данных.
- SchemaGen зависит от статистики , созданной StatisticsGen, поэтому он должен выполняться после StatisticsGen.
- ExampleValidator зависит от статистики , созданной StatisticsGen, и схемы , созданной SchemaGen, поэтому он должен выполняться после StatisticsGen и SchemaGen.
- Преобразование зависит от примеров , созданных при приеме данных, и схемы , созданной SchemaGen, поэтому оно должно выполняться после приема данных и SchemaGen.
- Trainer зависит от примеров , созданных при приеме данных, схемы , созданной SchemaGen, и сохраненной модели , созданной Transform. Trainer может быть запущен только после приема данных, SchemaGen и Transform.
- Оценщик зависит от примеров , созданных при приеме данных, и сохраненной модели , созданной инструктором, поэтому он должен выполняться после приема данных и инструктора.
- Пользовательский деплойер зависит от сохраненной модели , созданной тренером, и результатов анализа , созданных оценщиком, поэтому деплойер должен выполняться после тренера и оценщика.
На основе этого анализа оркестратор запускает:
- Прием данных, StatisticsGen, экземпляры компонентов SchemaGen последовательно.
- Компоненты ExampleValidator и Transform могут работать параллельно, поскольку они совместно используют зависимости входных артефактов и не зависят от выходных данных друг друга.
- После завершения компонента преобразования экземпляры компонента Trainer, Evaluator и пользовательского компонента развертывания запускаются последовательно.
Узнайте больше о построении конвейера TFX .
Шаблон конвейера TFX
Шаблоны конвейера TFX упрощают начало разработки конвейера, предоставляя готовый конвейер, который можно настроить для своего варианта использования.
Узнайте больше о настройке шаблона конвейера TFX .
Конвейерный запуск
Запуск — это однократное выполнение конвейера.
Оркестратор
Orchestrator — это система, в которой вы можете запускать конвейеры. TFX поддерживает оркестраторы, такие как: Apache Airflow , Apache Beam и Kubeflow Pipelines . TFX также использует термин DagRunner для обозначения реализации, поддерживающей оркестратор.