本文介绍如何使用 SynapseML 生成第一个机器学习模型,并演示 SynapseML 如何简化复杂的机器学习任务。 我们使用 SynapseML 创建一个小型机器学习训练管道,其中包含特征化阶段和 LightGBM 回归阶段。 管道根据书评数据集中的评价文本预测分级。 还可了解 SynapseML 如何简化使用预生成模型来解决机器学习问题。
先决条件
获取 Microsoft Fabric 订阅。 或者注册免费的 Microsoft Fabric 试用版。
登录 Microsoft Fabric。
使用主页左下侧的体验切换器切换到 Fabric。
准备资源
创建生成模型和管道所需的工具和资源。
- 创建新的笔记本。
- 将笔记本附加到湖屋。 若要添加现有的湖屋或创建新的湖屋,请在左侧的“资源管理器”下展开“湖屋”,然后选择“添加”。
- 按照快速入门:为 Azure AI 服务创建多服务资源中的指示,获取 Azure AI 服务密钥。
- 创建 Azure Key Vault 实例,并将 Azure AI 服务密钥作为机密添加到密钥保管库。
- 记下密钥保管库和机密的名称。 需要这些信息才能运行本文后面的单步转换。
设置环境
在笔记本中,导入 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 服务钥匙机密的名称。 - 将
<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))