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.
Artikel ini memperlihatkan kepada Anda cara membuat model pembelajaran mesin dengan SynapseML di buku catatan Microsoft Fabric. Anda membuat alur pelatihan yang menggunakan fiturisasi teks dan regresi LightGBM untuk memprediksi peringkat buku dari teks ulasan. Anda juga mempelajari cara menggunakan Foundry Tools untuk analisis sentimen bawaan.
- Buat notebook Fabric dan lampirkan lakehouse
- Mengimpor pustaka dan memuat data
- Membangun dan melatih fiturisasi teks dan alur regresi LightGBM
- Hasilkan prediksi
- (Opsional) Menjalankan analisis sentimen Foundry Tools
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.
- Buat notebook baru di ruang kerja Fabric Anda.
- Hubungkan lakehouse ke buku catatan. Di panel Explorer , perluas Lakehouses, lalu pilih Tambahkan.
- (Opsional) Untuk menjalankan langkah analisis sentimen, Anda memerlukan:
- Sebuah kunci Foundry Tools. Ikuti instruksi di Mulai Cepat: Membuat sumber daya multi-layanan untuk Foundry Tools.
- Instans Azure Key Vault yang menyimpan kunci Foundry Tools Anda sebagai rahasia.
Menyiapkan lingkungan
Di buku catatan Anda, impor pustaka SynapseML dan inisialisasi sesi Spark Anda.
from pyspark.sql import SparkSession
from synapse.ml.core.platform import *
spark = SparkSession.builder.getOrCreate()
Verifikasi: Jalankan sel berikut untuk mengonfirmasi bahwa Spark sedang berjalan:
print(f"Spark version: {spark.version}")
Keluaran menampilkan nomor versi Spark. Versi 3.4 atau yang lebih baru diharapkan. Versi yang tepat tergantung pada runtime Fabric Anda.
Memuat himpunan data
Muat himpunan data ulasan buku dan bagi menjadi set pelatihan dan pengujian. Himpunan data berisi dua kolom: rating (bilangan bulat 1-5) dan text (tinjau konten).
train, test = (
spark.read.parquet(
"wasbs://publicwasb@mmlspark.blob.core.windows.net/BookReviewsFromAmazon10K.parquet"
)
.limit(1000)
.cache()
.randomSplit([0.8, 0.2])
)
display(train)
Verifikasi: Jalankan sel berikut untuk mengonfirmasi data yang dimuat dengan benar:
print(f"Training rows: {train.count()}, Test rows: {test.count()}")
print(f"Columns: {train.columns}")
train.printSchema()
Output menunjukkan sekitar 800 baris pelatihan dan 200 baris pengujian, dengan dua kolom: rating (bilangan bulat) dan text (string). Jumlah baris yang tepat bervariasi karena randomSplit tidak deterministik.
Membuat alur pelatihan
Buat alur yang menampilkan teks ulasan dengan TextFeaturizer dan memprediksi peringkat dengan LightGBMRegressor.
from pyspark.ml import Pipeline
from synapse.ml.featurize.text import TextFeaturizer
from synapse.ml.lightgbm import LightGBMRegressor
model = Pipeline(
stages=[
TextFeaturizer(inputCol="text", outputCol="features"),
LightGBMRegressor(featuresCol="features", labelCol="rating", dataTransferMode="bulk")
]
).fit(train)
Verifikasi: Jalankan sel berikut untuk mengonfirmasi alur yang dilatih:
print(f"Pipeline stages: {len(model.stages)}")
print(f"Stage 1: {type(model.stages[0]).__name__}")
print(f"Stage 2: {type(model.stages[1]).__name__}")
Output menunjukkan dua tahap alur: TextFeaturizerModel dan LightGBMRegressionModel.
Prediksi keluaran data uji
transform Panggil metode pada model untuk memprediksi peringkat untuk data pengujian dan menampilkan hasilnya.
predictions = model.transform(test)
display(predictions)
Verifikasi: Jalankan sel berikut untuk mengonfirmasi prediksi yang dihasilkan:
print(f"Prediction columns: {predictions.columns}")
print(f"Prediction count: {predictions.count()}")
predictions.select("rating", "prediction").show(5)
Output mencantumkan empat kolom (rating, , text, featuresprediction) dan sekitar 200 baris. Kolom prediction berisi nilai hasil prediksi model dalam format float. Bandingkan dengan kolom aktual rating untuk menilai performa model.
(Opsional) Menggunakan Foundry Tools untuk analisis sentimen
Jika Anda ingin menganalisis sentimen ulasan buku, Anda dapat menggunakan integrasi SynapseML dengan Foundry Tools. Langkah ini menggunakan model bawaan untuk mengklasifikasikan TextSentiment sentimen teks, yang merupakan tugas yang berbeda dari prediksi peringkat di langkah-langkah sebelumnya.
Important
Langkah ini memerlukan kunci Foundry Tools yang disimpan di Azure Key Vault. Jika Anda melewati prasyarat tersebut, selesaikan terlebih dahulu atau lewati bagian ini.
Jalankan kode berikut dengan penggantian ini:
- Ganti
<your-secret-name>dengan nama rahasia kunci Foundry Tools Anda di Key Vault. - Ganti
<your-key-vault-name>dengan nama instans Azure Key Vault Anda.
from synapse.ml.services import TextSentiment
from synapse.ml.core.platform import find_secret
sentiment_model = TextSentiment(
textCol="text",
outputCol="sentiment",
subscriptionKey=find_secret("<your-secret-name>", "<your-key-vault-name>")
).setLocation("eastus")
sentiment_results = sentiment_model.transform(test)
display(sentiment_results)
Note
Perbarui nilai setLocation jika sumber daya Foundry Tools Anda berada di wilayah Azure yang berbeda (misalnya, "westus2" atau "westeurope").
Verifikasi: Jalankan sel berikut untuk mengonfirmasi analisis sentimen selesai:
print(f"Sentiment columns: {sentiment_results.columns}")
sentiment_results.select("text", "sentiment").show(3, truncate=50)
Output menunjukkan tiga kolom (rating, text, sentiment). Kolom sentiment berisi hasil terstruktur dengan label seperti positive, , negativeneutral, atau mixed untuk setiap tinjauan.
Troubleshooting
| Masalah | Penyebab | Resolution |
|---|---|---|
JAVA_GATEWAY_EXITED kesalahan saat membuat SparkSession |
Menjalankan kode di luar buku catatan Fabric | Jalankan kode ini di buku catatan Fabric tempat Spark telah dikonfigurasi sebelumnya. Jangan berjalan secara lokal tanpa penginstalan Spark. |
Could not find <secret> in keyvault <vault> |
nama Key Vault atau nama rahasia salah, atau identitas notebook tidak memiliki akses | Pastikan nama cocok persis. Di portal Azure, pastikan identitas ruang kerja Fabric Anda memiliki izin Get untuk rahasia Key Vault. |
TextFeaturizer mengembalikan fitur kosong |
Kolom teks input null atau kosong | Periksa nilai null: train.filter(train.text.isNull()).count() - hapus null sebelum pelatihan. |
randomSplit mengembalikan jumlah baris yang tidak terduga |
Pemisahan acak Spark bersifat non-deterministik | Ini adalah perilaku yang diharapkan. Tetapkan nilai awal untuk reprodusibilitas: .randomSplit([0.8, 0.2], seed=42) |
AnalysisException: Path does not exist |
Masalah jaringan mengakses blob data sampel | Verifikasi konektivitas jaringan. Di Fabric, konfirmasikan ruang kerja Anda dapat mengakses URL Azure Blob Storage eksternal. |
| Foundry Tools mengembalikan 401 atau 403 | Kunci langganan tidak valid atau kedaluwarsa | Buat kunci baru di portal Azure pada bagian Kunci dan Titik Akhir di bawah sumber daya Foundry Tools Anda. Perbarui rahasia Key Vault. |
setLocation mengembalikan 404 |
Ketidakcocokan wilayah | Atur lokasi agar sesuai dengan wilayah Azure tempat Anda membuat sumber daya Foundry Tools. |
Membersihkan sumber daya
Jika Anda membuat Azure sumber daya untuk langkah Foundry Tools opsional dan tidak lagi membutuhkannya, hapus untuk menghindari biaya:
- Di portal Azure, hapus sumber daya multi-layanan Foundry Tools.
- Di portal Azure, hapus instans Key Vault.
- Di ruang kerja Fabric Anda, hapus buku catatan pengujian jika Anda tidak lagi membutuhkannya.