使用 SynapseML 生成模型
本文介绍如何使用 SynapseML 生成第一个机器学习模型,并演示 SynapseML 如何简化复杂的机器学习任务。 我们使用 SynapseML 创建一个小型机器学习训练管道,其中包含特征化阶段和 LightGBM 回归阶段。 管道根据书评数据集中的评价文本预测分级。 还可了解 SynapseML 如何简化使用预生成模型来解决机器学习问题。
先决条件
获取 Microsoft Fabric 订阅。 或者注册免费的 Microsoft Fabric 试用版。
登录 Microsoft Fabric。
使用主页左侧的体验切换器切换到 Synapse 数据科学体验。
准备资源
创建生成模型和管道所需的工具和资源。
- 创建新的笔记本。
- 将笔记本附加到湖屋。 若要添加现有的湖屋或创建新的湖屋,请在左侧的“资源管理器”下展开“湖屋”,然后选择“添加”。
- 按照快速入门:为 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)
创建训练管道
创建一个管道,该管道使用 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
函数,以预测测试数据的输出并将其显示为数据帧。
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))