共用方式為


使用 SynapseML 建置模型

本文說明如何使用 SynapseML 建置機器學習模型,並示範 SynapseML 如何簡化複雜的機器學習工作。 您可以使用 SynapseML 來建立小型機器學習定型管線,其中包含特徵化階段和 LightGBM 回歸階段。 管線會根據書籍評論數據集的評論文字來預測評等。 您也會瞭解 SynapseML 如何簡化使用預先建置的模型來解決機器學習問題。

必要條件

準備資源

建立建置模型和管線所需的工具和資源。

  1. 建立新的筆記本
  2. 將筆記本附加至 Lakehouse。 若要新增現有的 Lakehouse 或建立新的湖屋,請展開左側總管下的Lakehouses,然後選取 [新增]。
  3. 依照快速入門:建立適用於 Azure AI 服務的多重服務資源中的 指示,取得 Azure AI 服務密鑰。
  4. 建立 Azure 金鑰保存庫 實例,並將 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))

使用 Azure AI 服務在一個步驟中轉換數據

或者,針對具有預先建置解決方案的這類工作,您可以使用 SynapseML 與 Azure AI 服務的整合,在一個步驟中轉換您的數據。 使用這些取代項目執行下列程式代碼:

  • 將取代 <secret-name> 為您的 Azure AI Services 金鑰秘密名稱。
  • <key-vault-name> 取代為金鑰保存庫的名稱。
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))