Tentang Dataflow ML

Anda dapat menggunakan kemampuan pemrosesan data skala Dataflow ML untuk pipeline prediksi dan inferensi dan untuk persiapan data untuk pelatihan.

Diagram alur kerja Dataflow ML.

Gambar 1. Alur kerja Dataflow ML lengkap.

Persyaratan dan batasan

  • Dataflow ML mendukung pipeline batch dan streaming.
  • RunInference API didukung di Apache Beam 2.40.0 dan versi yang lebih baru.
  • MLTransform API didukung di Apache Beam 2.53.0 dan versi yang lebih baru.
  • Pengendali model tersedia untuk PyTorch, scikit-learn, TensorFlow, ONNX, dan TensorRT. Untuk framework yang tidak didukung, Anda dapat menggunakan pengendali model kustom.

Persiapan data untuk pelatihan

Pipeline prediksi dan inferensi

Dataflow ML menggabungkan kecanggihan Dataflow dengan RunInference API Apache Beam. Dengan RunInference API, Anda menentukan karakteristik dan properti model serta meneruskan konfigurasi tersebut ke transformasi RunInference. Fitur ini memungkinkan pengguna menjalankan model dalam pipeline Dataflow tanpa perlu mengetahui detail penerapan model. Anda dapat memilih framework yang paling sesuai dengan data, seperti TensorFlow dan PyTorch.

Menjalankan beberapa model dalam pipeline

Gunakan transformasi RunInference untuk menambahkan beberapa model inferensi ke pipeline Dataflow Anda. Untuk mengetahui informasi selengkapnya, termasuk detail kode, lihat Pipeline multimodel dalam dokumentasi Apache Beam.

Menggunakan GPU dengan Dataflow

Untuk pipeline streaming atau batch yang perlu menggunakan akselerator, Anda dapat menjalankan pipeline Dataflow di perangkat GPU NVIDIA. Untuk mengetahui informasi selengkapnya, lihat Menjalankan pipeline Dataflow dengan GPU.

Memecahkan masalah Dataflow ML

Bagian ini memberikan link dan strategi pemecahan masalah yang mungkin berguna bagi Anda saat menggunakan Dataflow ML.

Stack mengharapkan setiap TensorFlow memiliki ukuran yang sama

Jika Anda memberikan gambar dengan ukuran yang berbeda atau embedding kata dengan panjang yang berbeda saat menggunakan RunInference API, error berikut mungkin akan terjadi:

File "/beam/sdks/python/apache_beam/ml/inference/pytorch_inference.py", line 232, in run_inference batched_tensors = torch.stack(key_to_tensor_list[key]) RuntimeError: stack expects each tensor to be equal size, but got [12] at entry 0 and [10] at entry 1 [while running 'PyTorchRunInference/ParDo(_RunInferenceDoFn)']

Error ini terjadi karena RunInference API tidak dapat mengelompokkan elemen TensorFlow dengan ukuran yang berbeda. Untuk solusinya, lihat Tidak dapat mengelompokkan elemen TensorFlow dalam dokumentasi Apache Beam.

Langkah selanjutnya