Использование других платформ машинного обучения в TFX

TFX как платформа не зависит от платформы и может использоваться с другими платформами машинного обучения, например JAX, scikit-learn.

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

SDK конвейера TFX и большинство модулей в TFX, например оркестратор конвейера, не имеют прямой зависимости от TensorFlow, но есть некоторые аспекты, ориентированные на TensorFlow, например форматы данных. При некотором учете потребностей конкретной среды моделирования конвейер TFX можно использовать для обучения моделей в любой другой среде машинного обучения на основе Python. Сюда входят, среди прочего, Scikit-learn, XGBoost и PyTorch. Некоторые соображения по использованию стандартных компонентов TFX с другими платформами включают в себя:

  • SampleGen выводит tf.train.Example в файлах TFRecord. Это общее представление данных обучения, а последующие компоненты используют TFXIO для чтения их в памяти как Arrow/RecordBatch, которые можно в дальнейшем преобразовать в tf.dataset , Tensors или другие форматы. Рассматриваются форматы полезной нагрузки/файлов, отличные от tf.train.Example/TFRecord, но для пользователей TFXIO это должен быть черный ящик.
  • Transform можно использовать для создания преобразованных обучающих примеров независимо от того, какая платформа используется для обучения, но если формат модели не saved_model , пользователи не смогут встроить граф преобразования в модель. В этом случае прогнозирование модели должно использовать преобразованные функции вместо необработанных функций, и пользователи могут запустить преобразование в качестве этапа предварительной обработки перед вызовом прогноза модели при обслуживании.
  • Trainer поддерживает GenericTraining , поэтому пользователи могут обучать свои модели с помощью любой платформы машинного обучения.
  • Evaluator по умолчанию поддерживает только saved_model , но пользователи могут предоставить UDF, который генерирует прогнозы для оценки модели.

Обучение модели в среде, отличной от Python, потребует изоляции пользовательского компонента обучения в контейнере Docker как части конвейера, который работает в контейнерной среде, такой как Kubernetes.

ДЖАКС

JAX — это Autograd и XLA, объединенные для проведения высокопроизводительных исследований в области машинного обучения. Flax — это библиотека нейронных сетей и экосистема для JAX, разработанная для обеспечения гибкости.

С помощью jax2tf мы можем конвертировать обученные модели JAX/Flax в формат saved_model , который можно легко использовать в TFX с общим обучением и оценкой модели. Подробности смотрите в этом примере .

scikit-learn

Scikit-learn — это библиотека машинного обучения для языка программирования Python. У нас есть пример e2e с индивидуальным обучением и оценкой в ​​TFX-Addons.