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

Persyaratan dan batasan
- Dataflow ML mendukung pipeline batch dan streaming.
- API
RunInferencedidukung di Apache Beam versi 2.40.0 dan yang lebih baru. - API
MLTransformdidukung di Apache Beam versi 2.53.0 dan yang lebih baru. - Handler model tersedia untuk PyTorch, scikit-learn, TensorFlow, ONNX, dan TensorRT. Untuk framework yang tidak didukung, Anda dapat menggunakan handler model kustom.
Persiapan data untuk pelatihan
Gunakan fitur
MLTransformuntuk menyiapkan data Anda guna melatih model ML. Untuk mengetahui informasi selengkapnya, lihat Melakukan pra-pemrosesan data denganMLTransform.Gunakan Dataflow dengan framework ML-OPS, seperti Kubeflow Pipelines (KFP) atau TensorFlow Extended (TFX). Untuk mempelajari lebih lanjut, lihat Dataflow ML dalam alur kerja ML.
Pipeline prediksi dan inferensi
Dataflow ML menggabungkan kecanggihan Dataflow dengan
API RunInference
Apache Beam. Dengan
API RunInference, Anda menentukan karakteristik dan properti model serta
meneruskan konfigurasi tersebut ke transformasi RunInference. Fitur ini memungkinkan
pengguna menjalankan model dalam pipeline Dataflow mereka tanpa perlu
mengetahui detail implementasi model. Anda dapat memilih framework yang paling sesuai dengan data Anda, seperti TensorFlow dan PyTorch.
Menjalankan beberapa model dalam satu pipeline
Gunakan transformasi RunInference untuk menambahkan beberapa model inferensi ke pipeline Dataflow Anda. Untuk mengetahui informasi selengkapnya, termasuk detail kode, lihat
Pipeline multi-model
dalam dokumentasi Apache Beam.
Membangun pipeline lintas bahasa
Untuk menggunakan RunInference dengan pipeline Java, buat transformasi Python lintas bahasa. Pipeline memanggil transformasi, yang melakukan praproses, pascaproses, dan inferensi.
Untuk mengetahui petunjuk mendetail dan pipeline contoh, lihat Menggunakan RunInference dari Java SDK.
Menggunakan GPU dengan Dataflow
Untuk pipeline batch atau streaming yang memerlukan penggunaan 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 menyediakan strategi dan link pemecahan masalah yang mungkin berguna saat menggunakan Dataflow ML.
Stack mengharapkan setiap tensor memiliki ukuran yang sama
Jika Anda memberikan gambar dengan ukuran berbeda atau penyematan kata dengan panjang berbeda
saat menggunakan RunInference API, error berikut mungkin 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 API RunInference tidak dapat mengelompokkan elemen tensor dengan
ukuran yang berbeda. Untuk mengetahui solusinya, lihat Tidak dapat mengelompokkan elemen tensor dalam dokumentasi Apache Beam.
Menghindari error kehabisan memori dengan model besar
Saat Anda memuat model ML berukuran sedang atau besar, komputer Anda mungkin kehabisan memori.
Dataflow menyediakan alat untuk membantu menghindari error kehabisan memori (OOM) saat memuat model ML. Untuk mengetahui informasi selengkapnya, lihat praktik terbaik transformasi RunInference.
Langkah berikutnya
- Jelajahi notebook Dataflow ML untuk melihat kasus penggunaan tertentu.
- Dapatkan informasi mendalam tentang penggunaan ML dengan Apache Beam dalam dokumentasi pipeline AI/MLApache Beam.
- Pelajari
RunInferenceAPI lebih lanjut. - Pelajari praktik terbaik
RunInference. - Pelajari metrik yang dapat Anda gunakan untuk memantau
RunInferencetransformasi.