Κοινή χρήση μέσω


Δημιουργία μοντέλου με το SynapseML

Αυτό το άρθρο περιγράφει τον τρόπο δημιουργίας ενός μοντέλου εκμάθησης μηχανής χρησιμοποιώντας το SynapseML και παρουσιάζει πώς το SynapseML μπορεί να απλοποιήσει σύνθετες εργασίες εκμάθησης μηχανής. Χρησιμοποιείτε το SynapseML για να δημιουργήσετε μια μικρή διοχέτευση εκπαίδευσης εκμάθησης μηχανής που περιλαμβάνει ένα στάδιο δυνατότητας και ένα στάδιο παλινδρόμησης LightGBM. Η διοχέτευση προβλέπει αξιολογήσεις με βάση το κείμενο αναθεώρησης από ένα σύνολο δεδομένων κριτικών βιβλίων. Βλέπετε επίσης πώς το SynapseML μπορεί να απλοποιήσει τη χρήση προκατασκευασμένων μοντέλων για την επίλυση προβλημάτων εκμάθησης μηχανής.

Προαπαιτούμενα στοιχεία

  • Λάβετε μια συνδρομή Microsoft Fabric. Εναλλακτικά, εγγραφείτε για μια δωρεάν δοκιμαστική έκδοση του Microsoft Fabric.

  • Εισέλθετε στο Microsoft Fabric.

  • Χρησιμοποιήστε την εναλλαγή εμπειρίας στην κάτω αριστερή πλευρά της αρχικής σελίδας σας για να μεταβείτε σε Fabric.

    Στιγμιότυπο οθόνης του μενού εναλλαγής εμπειρίας, που εμφανίζει πού μπορείτε να επιλέξετε Επιστήμη δεδομένων.

Προετοιμασία πόρων

Δημιουργήστε τα εργαλεία και τους πόρους που χρειάζεστε για να δημιουργήσετε το μοντέλο και τη διοχέτευση.

  1. Δημιουργήστε ένα νέο σημειωματάριο.
  2. Επισυνάψτε το σημειωματάριό σας σε ένα lakehouse. Για να προσθέσετε μια υπάρχουσα λίμνη ή να δημιουργήσετε μια νέα, αναπτύξτε το στοιχείο Lakehouses στην περιοχή Explorer στα αριστερά και, στη συνέχεια, επιλέξτε Προσθήκη.
  3. Αποκτήστε ένα κλειδί υπηρεσιών Azure AI, ακολουθώντας τις οδηγίες στη Γρήγορη εκκίνηση: Δημιουργήστε έναν πόρο πολλαπλών υπηρεσιών για τις υπηρεσίες Azure AI.
  4. Δημιουργήστε μια παρουσία Azure Key Vault και προσθέστε το κλειδί των υπηρεσιών azure AI στον θάλαμο κλειδιών ως μυστικό κωδικό.
  5. Σημειώστε το όνομα του θαλάμου κλειδιών και το μυστικό όνομα. Χρειάζεστε αυτές τις πληροφορίες για να εκτελέσετε τον μετασχηματισμό ενός βήματος παρακάτω σε αυτό το άρθρο.

Ρύθμιση του περιβάλλοντος

Στο σημειωματάριό σας, εισαγάγετε βιβλιοθήκες SynapseML και προετοιμάστε την περίοδο λειτουργίας Spark.

from pyspark.sql import SparkSession
from synapse.ml.core.platform import *

spark = SparkSession.builder.getOrCreate()

Φόρτωση συνόλου δεδομένων

Φορτώστε το σύνολο δεδομένων σας και διαιρέστε το σε σύνολα εκπαίδευσης και δοκιμών.

train, test = (
    spark.read.parquet(
        "wasbs://publicwasb@mmlspark.blob.core.windows.net/BookReviewsFromAmazon10K.parquet"
    )
    .limit(1000)
    .cache()
    .randomSplit([0.8, 0.2])
)

display(train)

Δημιουργία της διοχέτευσης εκπαίδευσης

Δημιουργήστε μια διοχέτευση που διαθέτει δεδομένα χρησιμοποιώντας TextFeaturizer από τη synapse.ml.featurize.text βιβλιοθήκη και αντλεί μια αξιολόγηση χρησιμοποιώντας τη 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)

Πρόβλεψη της εξόδου των δεδομένων δοκιμής

Καλέστε τη transform συνάρτηση στο μοντέλο για να προβλέψετε και να εμφανίσετε την έξοδο των δεδομένων δοκιμής ως πλαίσιο δεδομένων.

display(model.transform(test))

Χρήση των υπηρεσιών AI του Azure για τον μετασχηματισμό δεδομένων σε ένα βήμα

Εναλλακτικά, για αυτές τις εργασίες που έχουν μια προκατασκευασμένο λύση, μπορείτε να χρησιμοποιήσετε την ενοποίηση του SynapseML με τις υπηρεσίες AI του Azure για να μετασχηματίσετε τα δεδομένα σας σε ένα βήμα. Εκτελέστε τον ακόλουθο κώδικα με αυτές τις αντικαταστάσεις:

  • Αντικαταστήστε <secret-name> το με το όνομα του μυστικού κωδικού κλειδιού των υπηρεσιών Azure AI.
  • Αντικαταστήστε <key-vault-name> το με το όνομα του key vault.
from synapse.ml.services import TextSentiment
from synapse.ml.core.platform import find_secret

model = TextSentiment(
    textCol="text",
    outputCol="sentiment",
    subscriptionKey=find_secret("<secret-name>", "<key-vault-name>")
).setLocation("eastus")

display(model.transform(test))