Bagikan melalui


Menyebarkan model untuk inferensi dan prediksi batch

Artikel ini menjelaskan cara menyebarkan model MLflow untuk inferensi offline (batch dan streaming). Databricks merekomendasikan agar Anda menggunakan MLflow untuk menyebarkan model pembelajaran mesin untuk inferensi batch atau streaming. Untuk informasi umum tentang bekerja dengan model MLflow, lihat Mencatat, memuat, mendaftarkan, dan menyebarkan model MLflow.

Untuk informasi tentang penyajian model real-time di Azure Databricks, lihat Model yang melayani dengan Azure Databricks.

Menggunakan MLflow untuk inferensi model

MLflow membantu Anda menghasilkan kode untuk inferensi batch atau streaming.

Anda juga dapat menyesuaikan kode yang dihasilkan oleh salah satu opsi di atas. Lihat notebook berikut untuk contoh:

  • Contoh inferensi model menggunakan model yang dilatih dengan scikit-learn dan sebelumnya masuk ke MLflow untuk menunjukkan cara memuat model dan menggunakannya untuk membuat prediksi pada data dalam format yang berbeda. Notebook ini mengilustrasikan cara menerapkan model sebagai model scikit-learn ke DataFrame pandas, dan cara menerapkan model sebagai UDF PySpark ke Spark DataFrame.
  • Contoh MLflow Model Registry menunjukkan cara membuat, mengelola, dan menyebarkan model dengan Model Registry. Di halaman tersebut, Anda dapat menelusuri .predict untuk mengidentifikasi contoh prediksi offline (batch).

Membuat pekerjaan Azure Databricks

Untuk menjalankan prediksi batch atau streaming sebagai pekerjaan, buat notebook atau JAR yang menyertakan kode yang digunakan untuk melakukan prediksi. Kemudian, jalankan notebook atau JAR sebagai pekerjaan Azure Databricks. Pekerjaan dapat segera dijalankan atau sesuai jadwal.

Inferensi streaming

Dari MLflow Model Registry, Anda dapat secara otomatis membuat notebook yang mengintegrasikan UDF inferensi MLflow PySpark dengan Tabel Langsung Delta.

Anda juga dapat memodifikasi notebook inferensi yang dihasilkan untuk menggunakan API Streaming Terstruktur Apache Spark.

Inferensi dengan model pembelajaran mendalam

Untuk informasi tentang dan contoh inferensi model pembelajaran mendalam di Azure Databricks, lihat artikel berikut:

Inferensi dengan model MLlib dan XGBoost4J

Untuk inferensi model yang dapat diskalakan dengan model MLlib dan XGBoost4J, gunakan metode asli transform untuk melakukan inferensi langsung pada Spark DataFrames. Buku catatan contoh MLlib menyertakan langkah-langkah inferensi.

Menyesuaikan dan mengoptimalkan inferensi model

Saat Anda menggunakan MLflow API untuk menjalankan inferensi pada Spark DataFrames, Anda dapat memuat model sebagai Spark UDF dan menerapkannya dalam skala besar menggunakan komputasi terdistribusi.

Anda dapat menyesuaikan model Anda untuk menambahkan pra-pemrosesan atau pasca-pemrosesan dan untuk mengoptimalkan performa komputasi untuk model besar. Opsi yang baik untuk menyesuaikan model adalah MLflow pyfunc API, yang memungkinkan Anda menggabungkan model dengan logika kustom.

Jika Anda perlu melakukan penyesuaian lebih lanjut, Anda dapat membungkus model pembelajaran mesin secara manual dalam Pandas UDF atau pandas Iterator UDF. Lihat contoh pembelajaran mendalam.

Untuk himpunan data yang lebih kecil, Anda juga dapat menggunakan rutinitas inferensi model asli yang disediakan oleh pustaka.