Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Tutorial ini menunjukkan cara mengimpor model LightGBMClassifier terdaftar yang Anda buat di bagian 3. Tutorial tersebut menggunakan registri model Microsoft Fabric MLflow untuk melatih model, lalu melakukan prediksi batch pada himpunan data pengujian yang dimuat dari lakehouse.
Microsoft Fabric memungkinkan Anda mengoprasikan model pembelajaran mesin dengan fungsi yang dapat diskalakan yang disebut PREDICT, yang mendukung penilaian batch di mesin komputasi apa pun. Anda dapat membuat prediksi batch langsung dari buku catatan Microsoft Fabric atau dari halaman item model tertentu. Untuk mempelajari selengkapnya, lihat PREDICT.
Untuk menghasilkan prediksi batch pada himpunan data pengujian, Anda akan menggunakan versi 1 dari model LightGBM terlatih yang menunjukkan performa terbaik di antara semua model pembelajaran mesin terlatih. Anda akan memuat himpunan data pengujian ke dalam Spark DataFrame dan membuat objek MLFlowTransformer untuk menghasilkan prediksi batch. Anda kemudian dapat memanggil fungsi PREDICT menggunakan salah satu dari tiga cara berikut:
- TRANSFORMER API dari SynapseML
- Spark SQL API
- Fungsi yang ditentukan pengguna PySpark (UDF)
Prasyarat
Dapatkan langganan Microsoft Fabric . Atau, daftar untuk uji coba Microsoft Fabric gratis.
Masuk ke Microsoft Fabric.
Beralih ke Fabric dengan menggunakan pengalih pengalaman di sisi kiri bawah halaman beranda Anda.
Ini adalah bagian 4 dari seri tutorial lima bagian. Untuk menyelesaikan tutorial ini, selesaikan terlebih dahulu:
- Bagian 1: Memasukkan data ke dalam Microsoft Fabric Lakehouse menggunakan Apache Spark.
- Bagian 2: Menjelajahi dan memvisualisasikan data menggunakan notebook Microsoft Fabric untuk mempelajari selengkapnya tentang data.
- Bagian 3: Melatih dan mendaftarkan model pembelajaran mesin.
%pip install scikit-learn==1.6.1
Ikuti di buku catatan Anda
4-predict.ipynb adalah notebook yang menyertai tutorial ini.
Untuk membuka buku catatan yang menyertai tutorial ini, ikuti instruksi di Menyiapkan sistem Anda untuk tutorial ilmu data mengimpor buku catatan ke ruang kerja Anda.
Jika Anda lebih suka menyalin dan menempelkan kode dari halaman ini, Anda bisa membuat buku catatan baru.
Pastikan untuk melampirkan lakehouse ke notebook sebelum Anda mulai menjalankan kode.
Penting
Lampirkan lakehouse yang sama dengan yang Anda gunakan di bagian lain dari seri ini.
Memuat data uji
Dalam cuplikan kode berikut, muat data pengujian yang Anda simpan di Bagian 3:
df_test = spark.read.format("delta").load("Tables/df_test")
display(df_test)
Prediksi dengan Transformer API
Untuk menggunakan Transformer API dari SynapseML, Anda harus terlebih dahulu membuat objek MLFlowTransformer.
Menginstansiasi objek MLFlowTransformer
Objek MLFlowTransformer berfungsi sebagai pembungkus di sekitar model MLFlow yang Anda daftarkan di Bagian 3. Ini memungkinkan Anda untuk menghasilkan prediksi batch pada DataFrame tertentu. Untuk membuat instans objek MLFlowTransformer, Anda harus memberikan parameter berikut:
- Kolom DataFrame pengujian yang dibutuhkan model sebagai input (dalam hal ini, model membutuhkan semuanya)
- Nama untuk kolom output baru (dalam hal ini, prediksi)
- Nama model dan versi model yang benar untuk menghasilkan prediksi (dalam hal ini,
lgbm_smdan versi 1)
Cuplikan kode berikut menangani langkah-langkah berikut:
from synapse.ml.predict import MLFlowTransformer
model = MLFlowTransformer(
inputCols=list(df_test.columns),
outputCol='predictions',
modelName='lgbm_sm',
modelVersion=1
)
Sekarang setelah Anda memiliki objek MLFlowTransformer, Anda dapat menggunakannya untuk menghasilkan prediksi batch, seperti yang ditunjukkan dalam cuplikan kode berikut:
import pandas
predictions = model.transform(df_test)
display(predictions)
PREDICT dengan Spark SQL API
Cuplikan kode berikut menggunakan Spark SQL API untuk memanggil fungsi PREDICT:
from pyspark.ml.feature import SQLTransformer
# Substitute "model_name", "model_version", and "features" below with values for your own model name, model version, and feature columns
model_name = 'lgbm_sm'
model_version = 1
features = df_test.columns
sqlt = SQLTransformer().setStatement(
f"SELECT PREDICT('{model_name}/{model_version}', {','.join(features)}) as predictions FROM __THIS__")
# Substitute "X_test" below with your own test dataset
display(sqlt.transform(df_test))
PREDICT dengan fungsi yang ditentukan pengguna (UDF)
Cuplikan kode berikut menggunakan UDF PySpark untuk memanggil fungsi PREDICT:
from pyspark.sql.functions import col, pandas_udf, udf, lit
# Substitute "model" and "features" below with values for your own model name and feature columns
my_udf = model.to_udf()
features = df_test.columns
display(df_test.withColumn("predictions", my_udf(*[col(f) for f in features])))
Anda juga dapat membuat kode PREDICT dari halaman item model. Untuk informasi selengkapnya tentang fungsi PREDICT, lihat Penilaian model pembelajaran mesin dengan sumber daya PREDICT.
Menulis hasil prediksi model ke lakehouse
Setelah Anda membuat prediksi batch, tulis hasil prediksi model kembali ke lakehouse seperti yang ditunjukkan dalam cuplikan kode berikut:
# Save predictions to lakehouse to be used for generating a Power BI report
table_name = "df_test_with_predictions_v1"
predictions.write.format('delta').mode("overwrite").save(f"Tables/{table_name}")
print(f"Spark DataFrame saved to delta table: {table_name}")
Langkah berikutnya
Lanjutkan ke: