共用方式為


使用 SynapseML 組建模型

本文會描述如何使用 SynapseML 組建機器學習模型,並會展示 SynapseML 如何簡化複雜的機器學習工作。 您可以使用 SynapseML 來建立小型機器學習訓練管線,其中包含特徵化階段和 LightGBM 迴歸階段。 管線會根據書籍評論資料集的評論文字來預測評分。 您也會了解 SynapseML 如何簡化使用預建模型來解決機器學習問題。

必要條件

準備資源

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

  1. 建立新的筆記本
  2. 將筆記本連結至 Lakehouse。 若要新增現有 Lakehouse 或建立新的 Lakehouse,請展開左側 [總管] 下的 Lakehouses,然後選取 [新增]
  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)

建立訓練管線

建立管線,以使用來自 synapse.ml.featurize.text 庫的 TextFeaturizer 特徵化資料,並使用 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 函數,以預測測試資料的輸出,並將測試資料的輸出顯示為 DataFrame。

display(model.transform(test))

使用 Azure AI 服務以一個步驟轉換資料

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

  • <secret-name> 取代為您的 Azure AI 服務金鑰祕密的名稱。
  • <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))