构建、部署、测试和监控预测性机器学习模型
本教程可能会发生成本。 使用“成本估算器”根据您的预计使用量生成成本估算。
本教程将指导您完成构建预测机器学习模型的过程,将生成的模型部署为要在应用程序中使用的 API,并在 IBM Cloud上的集成统一自助服务体验中测试所有这些模型。 然后,您将使用 IBM Watson OpenScale来监视已部署的模型。
在本教程中,将使用 Iris flower data set 来创建机器学习模型以对花的物种进行分类。
在机器学习术语中,分类被视为受监督的学习的实例,即了解已正确识别的观察结果的训练集在何处可用。
Watson Studio 提供了环境和工具,可通过协作处理数据来解决业务问题。 您可以选择执行以下操作所需的工具:分析和可视化数据,清理数据和使数据符合使用要求,摄入流式数据,或者创建和训练机器学习模型。
目标
- 将数据导入项目。
- 构建机器学习模型。
- 部署模型并试用 API。
- 测试机器学习模型。
- 监视部署的模型。
- 重新训练您的模型。
{: caption="*
- 管理员从本地计算机上传 CSV 文件。
- 上传的 CSV 文件作为数据集存储在IBM Cloud Object Storage服务中。
- 然后,数据集被用于构建和部署机器学习模型。 已部署的模型将公开为 API (scoring-endpoint)。
- 用户进行 API 调用以使用测试数据来预测结果。
- 使用测试数据对已部署的机器学习模型进行质量,准确性和其他关键参数监视。
将数据导入项目
项目是您组织资源以实现特定目标的方式。 您的项目资源可以包括数据、合作者和分析工具,例如 Jupyter 笔记本和机器学习模型。
您可以创建项目以添加数据,并在数据优化器中打开数据资产以进行数据清理和塑形。
创建项目
- 从 目录 中,创建 Watson Studio
- 选择区域
- 选择精简版定价计划
- 将 服务名称 更改为 watson-studio-tutorial
- 选择一个资源组,然后单击创建
- 单击 在 折叠标记中启动,然后选择 IBM watsonx。
- 通过单击 项目 部分中的 + 创建新项目 来创建 项目。
- 提供 iris_project 作为项目名称。
- 在 定义存储器中,添加 Object Storage 服务的新实例。
- 单击创建。 新项目将打开,可以开始向其添加资源。
导入数据
如先前所提及那样,您将使用 Iris 数据集。 Iris 数据集在 R.A. Fisher 的经典 1936 论文 The Use of Multiple 度量 in Taxonomic Problems,也可以在 UCI Machine Learning Repository上找到。 这个小型数据集常常用于测试机器学习算法和可视化。 其目标是根据萼片和花瓣的长度和宽度,将鸢尾花分类为 3 个物种(Setosa、Versicolor 或 Virginica)。 鸢尾花数据集包含 3 个类别,每个类别有 50 个实例,每个实例指一种鸢尾花植物。

败血症是血管瘤 (开花植物) 花的一部分。 通常是绿色的,花瓣通常在花蕾中起到保护作用,在盛开时通常作为对花瓣的支持。 花瓣是环绕花的生殖部分的改良叶子。 它们通常是鲜艳的颜色或异常的形状,以吸引传粉者。 https://en.wikipedia.org/wiki/Iris_flower_data_set
下载 iris_initial.csv,其中包含每个物种的 40 个实例。 确保下载的文件名为 iris_initial.csv
。
- 如果尚未选择 资产 选项卡,请选择该选项卡。
- 在 此项目中的数据下,单击 在此处删除数据文件或浏览要上载的文件。
- 上传下载的
iris_initial.csv
。 - 添加后,您应该会在项目的“所有资产”部分看到
iris_initial.csv
。
关联 Machine Learning 服务
- 在顶部导航菜单中,
iris-project
单击 管理,然后选择左侧的 服务和集成 部分。 - 单击 关联服务。
- 如果您具有现有 Watson Machine Learning 服务实例,请跳至下一步。 否则,请继续执行以下步骤以创建新实例。
- 单击 新建服务,然后单击 Watson Machine Learning 磁贴。
- 选择与 Watson Studio 服务相同的 区域,然后选择 轻量 套餐。
- 输入
machine-learning-tutorial
作为 服务名称,然后选择资源组。 - 单击 创建 以供应 Machine Learning 服务。
- 选中 Machine Learning 服务旁边的复选框,然后单击 关联。
构建机器学习模型
- 在顶部导航菜单中,单击 资产。
- 单击 新建资产 + 并搜索 auto。
- 单击 自动构建机器模型 磁贴。
- 将名称设为 iris_auto。
- 在 Watson Machine Learning 服务实例下,请注意先前关联的服务。
- 单击创建。
创建模型后,
-
点击从项目中选择数据 添加训练数据。
- 在 类别 下选择 数据资产,然后选中 iris_initial.csv。
- 单击选择资产。
-
如果出现提示,请回答 否 以 创建时间序列分析?。
-
选择 物种 作为您的 要预测的内容?。
-
单击实验设置。
-
选择数据源。
-
在 训练和坚持方法下,通过移动滑块将 坚持数据分割 设置为 14%。
-
在左侧菜单上,单击 预测:
- 将 预测类型 设置为 多类分类。
- 将 优化的度量 设置为 准确性。
- 点击保存设置。
-
点击运行实验。
-
AutoAI 试验 可能需要最多 5 分钟才能为模型选择正确的算法。
每个模型管道都会按各种指标进行评分,然后进行排名。 二元分类模型的缺省排名指标是 ROC 曲线下的面积,多类分类模型的缺省排名指标是准确度,回归模型的缺省排名指标是均方根误差 (RMSE)。 排名最高的管道会显示在排行榜中,因此您可以查看有关这些管道的更多信息。 排行榜还会提供在复审后保存选定模型管道的选项。
一旦实验完成运行,
- 向下滚动到 管道排行榜。
- 点击管道可查看有关指标和性能的更多详细信息。 通过单击 X 完成关闭时。
- 在具有 排名 1 的模型旁边,单击 另存为
- 选择型号。
- 保留缺省名称。
- 单击创建。
- 从接收到的通知中,单击 在项目中查看。
部署和测试模型
在本部分中,您将部署已保存的模型并测试已部署的模型,
- 使用面包屑导航,单击 iris_project。
- 在 资产 选项卡中,打开左侧的 模型。
- 在 模型 表中,找到模型并单击汉堡包菜单,然后选择 提升到空间。 您可以使用部署空间来部署模型和管理部署。
- 将名称设置为 iris_deployment_space。
- 选择相应下拉列表中先前步骤中使用的 Object Storage 存储服务。
- 在相应的下拉列表中选择
machine-learning-tutorial
服务。 - 单击创建。
- 单击 提升。
- 从接收到的通知中,浏览到 部署空间。
在 部署> iris_deployment_space 中:
- 单击您刚刚创建的模型的名称。
- 单击新部署按钮。
- 选择 联机 作为部署类型,提供 iris_deployment 作为名称,然后单击 创建。
- 在 部署 选项卡下,一旦状态更改为 已部署,单击表中的 名称。 将显示模型的已部署 Web Service 的属性。
测试已部署的模型
- 在部署的 测试 选项卡下,单击 输入输入数据 旁边的 JSON 输入 图标,并提供下面的
JSON
作为输入。{ "input_data": [{ "fields": ["sepal_length", "sepal_width", "petal_length", "petal_width"], "values": [ [5.1,3.5,1.4,0.2], [3.2,1.2,5.2,1.7] ] }] }
- 单击 预测,您应该会在表和 JSON 视图中看到 预测结果。
- 您可以更改输入数据,并继续测试模型。
试用 API
与 UI 一起,您还可以使用 API 评分端点来执行预测,方法是将已部署的模型公开为要从应用程序访问的 API。
-
在部署的 API 参考 选项卡下,您可以在各种编程语言的直接链接和代码片段下看到 端点。
-
复制 记事本中的 公共端点 以供将来参考。
-
在浏览器中,启动 IBM Cloud Shell 并导出要在后续请求中使用的评分端点。 确保不关闭此窗口/选项卡。
export SCORING_ENDPOINT='<SCORING_ENDPOINT_FROM_ABOVE_STEP>'
IBM Cloud Shell 是可通过浏览器访问的基于云的 shell 工作空间。 它预先配置了完整的 IBM Cloud CLI 以及可用于管理应用程序,资源和基础结构的许多插件和工具。
-
要使用Watson Machine LearningREST API,需要获取IBM Cloud Identity and Access Management(IAM)令牌。 运行以下命令,它将从上述响应中复制完整的 IAM 令牌以及
Bearer
,并将其导出为IAM_TOKEN
以在后续 API 请求中使用export IAM_TOKEN=$(ibmcloud iam oauth-tokens --output JSON | jq -r .iam_token) echo $IAM_TOKEN
-
在云 shell 中运行以下 cURL 代码以查看预测结果。
curl -X POST \ --header 'Content-Type: application/json' \ --header 'Accept: application/json' \ --header "Authorization: $IAM_TOKEN" \ -d '{"input_data": [{"fields": ["sepal_length", "sepal_width", "petal_length","petal_width"],"values": [[5.1,3.5,1.4,0.2], [3.2,1.2,5.2,1.7]]}]}' \ $SCORING_ENDPOINT
如果您观察,那么代码来自上面创建的部署的 cURL 选项卡。 此后,将
[$ARRAY_OF_INPUT_FIELDS]
占位符分别替换为 ["sepal_length "," sepal_width "," petal_length "," petal_width "],[$ARRAY_OF_VALUES_TO_BE_SCORED]
占位符与 [5.1,3.5,1.4,0.2] 和[$ANOTHER_ARRAY_OF_VALUES_TO_BE_SCORED]
占位符与 [3.2,1.2,5.2,1.7]。
使用 IBM Watson OpenScale 监视部署的模型
IBM® Watson OpenScale 跟踪和度量 AI 模型的结果,并帮助确保这些结果在模型构建或运行时保持公平,可解释且合规。Watson OpenScale 还在生产 AI 模型时检测并帮助纠正准确性漂移。
为了便于理解,本教程仅专注于通过 Watson OpenScale 服务提高 AI 模型的质量 (准确性)。
供应 IBM Watson OpenScale 服务
在此部分中,您将创建 Watson OpenScale 服务,以监视已部署的机器学习模型的运行状况,性能,准确性和质量指标。
- 创建 IBM Watson OpenScale 服务 (watsonx.governance)
- 最好选择创建了 Machine Learning 服务的同一区域中的区域。
- 选择 轻量 套餐。
- 将服务名称设置为 watson-openscale-tutorial。
- 选择资源组。
- 单击创建。
- 供应服务后,单击左侧窗格上的 管理,然后单击 启动 Watson OpenScale。
- 单击手动设置可手动设置监视器。
系统设置
在此部分中,在准备模型以进行监视的过程中,您将设置并启用要使用 IBM Watson OpenScale跟踪的每个部署的监视器。
- 单击 数据库。 这是为了存储模型事务和模型评估结果。 (可能已选中此选项)
- 单击数据库磁贴上的编辑图标
- 选择 免费轻量套餐数据库 作为数据库类型
- 单击保存。
- 单击 机器学习提供程序
- 单击 添加机器学习提供程序,然后单击 连接 磁贴上的“编辑”图标。
- 选择 Watson Machine Learning(V2) 作为服务提供者类型。
- 在 部署空间 下拉列表中,选择上面创建的部署空间
iris_deployment_space
。 - 将环境类型保留为 生产前。
- 单击保存。
- 在最左边的窗格上:
- 单击 Insights 仪表板的图标 (第一个图标) 以添加部署
- 单击 添加到仪表板 以在“选择模型位置”页面上启动向导。
- 在 部署空间 选项卡上,单击
iris_deployment_space
单选按钮 - 单击下一步
- 在 部署空间 选项卡上,单击
- 在“选择已部署的模型”页面上:
- 单击 iris_deployment
- 单击下一步
- 在“提供模型信息”页面上:
- 数据类型: 数字/分类
- 算法类型: 多类分类
- 单击查看摘要
- 点击完成
此时将显示 iris_deployment 生产前仪表板。
单击操作>配置监视器
- 单击 训练数据 磁贴上的 画笔 图标以启动向导。
- 在“选择配置”方法页面中
- 单击 使用手动设置
- 单击下一步
- 在 指定训练数据 方法页面中
- 对于“训练数据”选项,选择 数据库或云存储器
- 对于位置,请选择 Cloud Object Storage
- 对于资源实例标识和 API 密钥,请在 Cloud Shell中运行以下命令。 确保在
--instance-name
之后更改值,以匹配您已用于本教程的 Object Storage 实例的名称。ibmcloud resource service-key $(ibmcloud resource service-keys --instance-name "cloud-object-storage-tutorial" | awk '/WDP-Project-Management/ {print $1}')
- 复制并粘贴凭证 resource_instance_id。 它将以 crn 开头,并以两个冒号 :: 结尾。
- 复制并粘贴不带任何尾部空格的凭证 API 密钥。
- 然后,单击连接。
- 选择以
irisproject-donotdelete-
开头的存储区。 - 从“数据集”下拉列表中选择
iris_initial.csv
。 - 单击下一步
- 在“选择特征列和标签列”方法页面中
- 缺省值应该正确。 作为标签/目标,其余作为特征。
- 单击下一步
- 在“选择模型输出”方法页面中
- 缺省值应该是正确的,预测是预测,概率是概率。
- 单击查看摘要
- 点击完成
- 在“选择配置”方法页面中
- 单击 模型输出详细信息 磁贴上的 画笔 图标以启动向导。
- 在 指定模型输出详细信息 方法页面中
- 缺省值应该正确。
- 单击保存。
- 在 指定模型输出详细信息 方法页面中
- 在左侧窗格上,单击“评估”下的 质量,然后单击 质量阈值 磁贴上的 编辑 图标
- 在“质量阈值”页面中,设置以下值:
- 准确性 0.98
- 单击下一步
- 在“样本大小”页面中
- 将最小样本大小设置为 10
- 单击保存。
- 在“质量阈值”页面中,设置以下值:
在左侧窗格上,单击 转至模型摘要
通过质量监视器(以前称为“准确度监视器”),可以了解模型预测结果的准确度。
由于本教程使用小型数据集,因此配置公平性和漂移不会产生任何影响。
评估已部署的模型
在此部分中,您将通过上载包含每个物种的 10 个实例的 iris_retrain.csv
文件来评估模型。 下载 iris_retrain.csv。
- 单击 操作,然后单击 立即评估。
- 选择 从 CSV 文件 作为导入选项,然后单击 浏览,上载
iris_retrain.csv
文件。 - 单击并单击 上载并评估。
- 评估完成后,您应该会看到具有不同度量值的仪表板。
要了解质量指标,请参阅 质量指标概述
除去资源
- 浏览至 IBM Cloud® 资源列表。
- 在 名称下,在搜索框中输入 tutorial。
- 删除为本教程创建的服务。
根据资源的不同,可能不会立即将其删除,但会保留 (缺省情况下为 7 天)。 您可以通过永久删除该资源或在保留期内将其复原来回收该资源。 请参阅本文档,以了解如何 使用资源回收。