Dataflow ML

Dengan Dataflow ML, Anda dapat menggunakan Dataflow untuk men-deploy dan mengelola pipeline machine learning (ML) yang lengkap. Gunakan model ML untuk melakukan inferensi lokal dan jarak jauh dengan pipeline streaming dan batch. Gunakan alat pemrosesan data guna menyiapkan data Anda untuk pelatihan model dan memproses hasil model.
Jika Anda ingin mengklasifikasikan gambar secara real-time, menjalankan panggilan inferensi jarak jauh, atau membuat handler model kustom, Anda dapat menemukan contoh ML Dataflow yang lengkap.
Gunakan class MLTransform untuk melakukan pra-pemrosesan pada data untuk alur kerja machine learning (ML). Dengan menggabungkan beberapa transformasi pemrosesan data dalam satu class, MLTransform menyederhanakan proses penerapan transformasi pemrosesan data ML Apache Beam ke alur kerja Anda.
with pipeline as p:
  predictions = (
      p
      | beam.ReadFromSource('a_source')
      | RunInference(MODEL_HANDLER))
Menggunakan RunInference itu semudah menambahkan kode transformasi ke pipeline Anda. Dalam contoh ini, MODEL_HANDLER adalah objek konfigurasi model.
with beam.Pipeline() as p:
  transformed_data = (
    p
    | beam.Create(data)
    | MLTransform(...)
    | beam.Map(print))
Untuk menyiapkan data Anda untuk melatih model ML, gunakan MLTransform di pipeline Anda. MLTransform menggabungkan beberapa transformasi pemrosesan data dalam satu class, sehingga Anda dapat menggunakan satu class untuk berbagai tugas pra-pemrosesan.

Prediksi dan inferensi dengan model terlatih

Menggunakan model terlatih dengan Pytorch.
Gunakan model terlatih dengan scikit-learn.
Gunakan model terlatih dengan TensorFlow.
Apache Beam memiliki dukungan bawaan untuk mengirim permintaan ke endpoint Vertex AI yang di-deploy dari jarak jauh. Notebook ini menunjukkan cara menggunakan transformasi RunInference Apache Beam untuk klasifikasi gambar dengan Vertex AI.
Gunakan transformasi RunInference dengan handler model yang dilengkapi kunci untuk menggunakan beberapa model dalam transformasi RunInference yang sama.

Pemrosesan data dengan MLTransform

Gunakan class MLTransform Apache Beam dengan Vertex AI text-embeddings API untuk membuat embedding teks. Embedding teks adalah cara untuk merepresentasikan teks sebagai vektor numerik, yang diperlukan untuk banyak tugas natural language processing (NLP).
Gunakan class MLTransform Apache Beam dengan model Hugging Face Hub untuk membuat embedding teks. Framework SentenceTransformers Hugging Face menggunakan Python untuk membuat embedding kalimat, teks, dan gambar.
Hitung kosakata unik dari set data, lalu petakan setiap kata atau token ke indeks bilangan bulat yang berbeda. Gunakan transformasi ini untuk mengubah data tekstual menjadi representasi numerik untuk tugas machine learning.
Menskalakan data agar Anda dapat menggunakannya untuk melatih model ML. Class MLTransform Apache Beam mencakup beberapa transformasi penskalaan data.

Prediksi dan inferensi dengan model hub

Anda dapat menggunakan model Gemma di pipeline inferensi untuk mengukur sentimen percakapan, meringkas konten percakapan tersebut, dan membuat draf balasan untuk percakapan yang sulit.
Gunakan transformasi RunInference dengan model terlatih dari Hugging Face.
Gunakan transformasi RunInference untuk TensorFlow dengan model terlatih dari TensorFlow Hub.
Gunakan transformasi RunInference untuk tugas AI generatif. Notebook ini menggunakan model bahasa dari Model Hub Hugging Face.

Orkestrasi alur kerja ML

Vertex AI Pipelines membantu Anda dalam melakukan otomatisasi, memantau, dan mengelola sistem ML dengan mengorkestrasi alur kerja ML Anda tanpa server. Gunakan Vertex AI Pipelines untuk mengorkestrasi DAG alur kerja yang ditentukan oleh TFX atau KFP dan untuk melacak artefak ML Anda secara otomatis menggunakan Vertex ML Metadata.
TensorFlow Extended (TFX) memungkinkan Anda men-deploy pipeline ML lengkap menggunakan framework orkestrasi yang memiliki integrasi bawaan dengan Apache Beam dan runner Dataflow.
Dengan Kubeflow, deployment alur kerja ML di Kubernetes menjadi simpel, portabel, dan skalabel. Kubeflow Pipelines adalah alur kerja ML lengkap yang dapat digunakan kembali dan dibangun menggunakan Kubeflow Pipelines SDK.

Deteksi Anomali

Notebook ini menunjukkan cara melakukan deteksi anomali pada data batch dan streaming menggunakan PTransform AnomalyDetection. Fitur ini menggunakan algoritma Z-Score untuk mengidentifikasi anomali dalam set data.

Fitur tambahan

Penggunaan akselerator seperti GPU dan TPU dalam tugas Dataflow dapat secara signifikan mempercepat tugas pemrosesan data yang sering digunakan dalam kasus penggunaan machine learning dan pemrosesan gambar.

TPU, khususnya, adalah akselerator AI yang dirancang khusus dan dioptimalkan untuk melatih dan menggunakan model AI berskala besar, sehingga memberikan cara serbaguna untuk menskalakan berbagai workload AI.

Padukan GPU dan CPU untuk performa tinggi dan biaya lebih rendah. Kemampuan untuk menargetkan resource ke langkah-langkah pipeline tertentu memberikan fleksibilitas dan kemampuan pipeline tambahan, serta potensi penghematan biaya.
Apache Beam menyederhanakan alur kerja pengayaan data dengan menyediakan transformasi pengayaan siap pakai yang dapat Anda tambahkan ke pipeline.

Pemeliharaan dan evaluasi model

RunInference memungkinkan Anda melakukan pembaruan model otomatis tanpa menghentikan pipeline Apache Beam. Gunakan input samping untuk memperbarui model Anda secara real time, bahkan saat pipeline sedang berjalan.
Gunakan TensorFlow Model Analysis (TFMA) untuk menyelidiki dan memvisualisasikan performa model dengan membuat dan membandingkan dua model. Dengan Apache Beam, Anda dapat mengevaluasi dan membandingkan beberapa model dalam satu langkah.

Referensi

Untuk menggunakan RunInference dengan pipeline Java, buat transformasi Python lintas bahasa. Pipeline memanggil transformasi, yang melakukan pra-pemrosesan, pasca-pemrosesan, dan inferensi.
Untuk menjalankan contoh Dataflow ML, Anda mungkin perlu mengonfigurasi izin Google Cloud. Baca panduan mendetail tentang izin yang diperlukan untuk pipeline Dataflow.
Contoh dan kode sumber yang sesuai tersedia di GitHub. Di GitHub, Anda juga dapat menemukan petunjuk untuk menjalankan contoh di Colab.
Postingan blog ini menjelaskan cara membangun aplikasi RAG dengan penelusuran semantik dan representasi numerik (embedding) secara real-time. Solusi ini menggunakan Dataflow ML untuk menyiapkan data dengan mengonversinya menjadi embedding dan menyimpannya dalam database vektor seperti AlloyDB.