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