Używanie innych frameworków ML w TFX

TFX jako platforma jest neutralna dla frameworka i może być używana z innymi frameworkami ML, np. JAX, scikit-learn.

Dla twórców modeli oznacza to, że nie muszą przepisywać kodu modelu zaimplementowanego w innym środowisku ML, ale zamiast tego mogą ponownie wykorzystać większość kodu szkoleniowego w niezmienionej postaci w TFX i korzystać z innych możliwości TFX i reszty ekosystemu TensorFlow oferuje.

SDK potoku TFX i większość modułów w TFX, np. orkiestrator potoku, nie są bezpośrednio zależne od TensorFlow, ale istnieją pewne aspekty, które są zorientowane na TensorFlow, takie jak formaty danych. Po uwzględnieniu potrzeb konkretnego środowiska modelowania potok TFX może służyć do uczenia modeli w dowolnym innym środowisku ML opartym na języku Python. Obejmuje to między innymi Scikit-learn, XGBoost i PyTorch. Oto niektóre uwagi dotyczące używania standardowych komponentów TFX z innymi frameworkami:

  • PrzykładGen wyprowadza tf.train.Example w plikach TFRecord. Jest to ogólna reprezentacja danych szkoleniowych, a dalsze komponenty używają TFXIO do odczytania ich jako Arrow/RecordBatch w pamięci, które można dalej konwertować do tf.dataset , Tensors lub innych formatów. Rozważane są formaty ładunku/pliku inne niż tf.train.Example/TFRecord, ale dla użytkowników TFXIO powinna to być czarna skrzynka.
  • Transformacji można użyć do wygenerowania przekształconych przykładów szkoleniowych bez względu na to, jaka platforma jest używana do szkolenia, ale jeśli format modelu nie jest saved_model , użytkownicy nie będą mogli osadzić wykresu transformacji w modelu. W takim przypadku przewidywanie modelu musi uwzględniać przekształcone funkcje, a nie surowe funkcje, a użytkownicy mogą uruchomić transformację jako krok przetwarzania wstępnego przed wywołaniem przewidywania modelu podczas udostępniania.
  • Trainer obsługuje GenericTraining , dzięki czemu użytkownicy mogą trenować swoje modele przy użyciu dowolnej platformy ML.
  • Narzędzie oceniające domyślnie obsługuje tylko saved_model , ale użytkownicy mogą udostępnić UDF, który generuje prognozy na potrzeby oceny modelu.

Uczenie modelu w środowisku innym niż Python będzie wymagało wyizolowania niestandardowego komponentu szkoleniowego w kontenerze Docker jako części potoku działającego w środowisku kontenerowym, takim jak Kubernetes.

JAX

JAX to Autograd i XLA, połączone w celu zapewnienia wysokiej wydajności badań nad uczeniem maszynowym. Flax to biblioteka sieci neuronowych i ekosystem dla JAX, zaprojektowana z myślą o elastyczności.

Dzięki jax2tf jesteśmy w stanie konwertować wytrenowane modele JAX/Flax do formatu saved_model , którego można bezproblemowo używać w TFX z ogólnym szkoleniem i oceną modelu. Aby uzyskać szczegółowe informacje, sprawdź ten przykład .

scikit-ucz się

Scikit-learn to biblioteka uczenia maszynowego dla języka programowania Python. Mamy przykład e2e z dostosowanym szkoleniem i oceną w TFX-Addons.