Присоединяйтесь к сообществу SIG TFX-Addons и помогите сделать TFX еще лучше!

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

MLOps - это практика применения методов DevOps для автоматизации, управления и аудита рабочих процессов машинного обучения (ML). Рабочие процессы машинного обучения включают в себя следующие шаги:

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

Осуществление этих шагов в произвольной манере может быть трудным и требовать много времени.

TFX упрощает реализацию MLOps, предоставляя набор инструментов, который помогает вам организовать ваш процесс машинного обучения на различных оркестраторах, таких как Apache Airflow, Apache Beam и Kubeflow Pipelines. Реализуя рабочий процесс в виде конвейера TFX, вы можете:

  • Автоматизируйте процесс машинного обучения, который позволит вам регулярно переобучать, оценивать и развертывать вашу модель.
  • Используйте распределенные вычислительные ресурсы для обработки больших наборов данных и рабочих нагрузок.
  • Увеличьте скорость экспериментирования, запустив конвейер с различными наборами гиперпараметров.

В этом руководстве описаны основные концепции, необходимые для понимания конвейеров TFX.

Артефакт

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

Например, стандартный компонент ExampleGen генерирует сериализованные примеры, которые такие компоненты, как стандартный компонент StatisticsGen используют в качестве входных данных.

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

Типы артефактов имеют имя и определяют схему его свойств. Имена типов артефактов должны быть уникальными в вашем хранилище метаданных ML. 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. Тренажер можно запустить только после приема данных, SchemaGen и Transform.
  • Оценщик зависит от примеров, созданных при приеме данных, и сохраненной модели, созданной обучающим модулем, поэтому он должен выполняться после приема данных и обучающего модуля.
  • Настраиваемая программа развертывания зависит от сохраненной модели, созданной инструктором, и результатов анализа, созданных оценщиком, поэтому средство развертывания должно выполняться после инструктора и оценщика.

На основе этого анализа запускается оркестратор:

  • Прием данных, StatisticsGen, экземпляры компонентов SchemaGen последовательно.
  • Компоненты ExampleValidator и Transform могут работать параллельно, поскольку они разделяют зависимости входных артефактов и не зависят от выходных данных друг друга.
  • После завершения компонента Transform последовательно запускаются экземпляры компонента Trainer, Evaluator и настраиваемого компонента развертывания.

Узнайте больше о создании конвейера TFX .

Шаблон конвейера TFX

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

Узнайте больше о настройке шаблона конвейера TFX .

Прогон трубопровода

Прогон - это однократное выполнение конвейера.

Оркестратор

Orchestrator - это система, в которой вы можете выполнять конвейерные запуски. TFX поддерживает такие оркестраторы, как Apache Airflow , Apache Beam и Kubeflow Pipelines . TFX также использует термин DagRunner для обозначения реализации, которая поддерживает оркестратор.