Понимание конвейеров TFX

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 для обозначения реализации, поддерживающей оркестратор.