IBM Cloud Docs
构建、部署、测试和监控预测性机器学习模型

构建、部署、测试和监控预测性机器学习模型

本教程可能会发生成本。 使用“成本估算器”根据您的预计使用量生成成本估算。

本教程将指导您完成构建预测机器学习模型的过程,将生成的模型部署为要在应用程序中使用的 API,并在 IBM Cloud上的集成统一自助服务体验中测试所有这些模型。 然后,您将使用 IBM Watson OpenScale来监视已部署的模型。

在本教程中,将使用 Iris flower data set 来创建机器学习模型以对花的物种进行分类。

在机器学习术语中,分类被视为受监督的学习的实例,即了解已正确识别的观察结果的训练集在何处可用。

Watson Studio 提供了环境和工具,可通过协作处理数据来解决业务问题。 您可以选择执行以下操作所需的工具:分析和可视化数据,清理数据和使数据符合使用要求,摄入流式数据,或者创建和训练机器学习模型。

目标

  • 将数据导入项目。
  • 构建机器学习模型。
  • 部署模型并试用 API。
  • 测试机器学习模型。
  • 监视部署的模型。
  • 重新训练您的模型。

架构图*" caption-side="bottom"}{: caption="*

  1. 管理员从本地计算机上传 CSV 文件。
  2. 上传的 CSV 文件作为数据集存储在IBM Cloud Object Storage服务中。
  3. 然后,数据集被用于构建和部署机器学习模型。 已部署的模型将公开为 API (scoring-endpoint)。
  4. 用户进行 API 调用以使用测试数据来预测结果。
  5. 使用测试数据对已部署的机器学习模型进行质量,准确性和其他关键参数监视。

将数据导入项目

项目是您组织资源以实现特定目标的方式。 您的项目资源可以包括数据、合作者和分析工具,例如 Jupyter 笔记本和机器学习模型。

您可以创建项目以添加数据,并在数据优化器中打开数据资产以进行数据清理和塑形。

创建项目

  1. 目录 中,创建 Watson Studio
    1. 选择区域
    2. 选择精简版定价计划
    3. 服务名称 更改为 watson-studio-tutorial
    4. 选择一个资源组,然后单击创建
  2. 单击 折叠标记中启动,然后选择 IBM watsonx
  3. 通过单击 项目 部分中的 + 创建新项目 来创建 项目
  4. 提供 iris_project 作为项目名称。
  5. 定义存储器中,添加 Object Storage 服务的新实例。
  6. 单击创建。 新项目将打开,可以开始向其添加资源。

导入数据

如先前所提及那样,您将使用 Iris 数据集。 Iris 数据集在 R.A. Fisher 的经典 1936 论文 The Use of Multiple 度量 in Taxonomic Problems,也可以在 UCI Machine Learning Repository上找到。 这个小型数据集常常用于测试机器学习算法和可视化。 其目标是根据萼片和花瓣的长度和宽度,将鸢尾花分类为 3 个物种(Setosa、Versicolor 或 Virginica)。 鸢尾花数据集包含 3 个类别,每个类别有 50 个实例,每个实例指一种鸢尾花植物。

Iris 示例
Iris 示例

败血症是血管瘤 (开花植物) 花的一部分。 通常是绿色的,花瓣通常在花蕾中起到保护作用,在盛开时通常作为对花瓣的支持。 花瓣是环绕花的生殖部分的改良叶子。 它们通常是鲜艳的颜色或异常的形状,以吸引传粉者。 https://en.wikipedia.org/wiki/Iris_flower_data_set

下载 iris_initial.csv,其中包含每个物种的 40 个实例。 确保下载的文件名为 iris_initial.csv

  1. 如果尚未选择 资产 选项卡,请选择该选项卡。
  2. 此项目中的数据下,单击 在此处删除数据文件或浏览要上载的文件
  3. 上传下载的 iris_initial.csv
  4. 添加后,您应该会在项目的“所有资产”部分看到 iris_initial.csv

关联 Machine Learning 服务

  1. 在顶部导航菜单中,iris-project 单击 管理,然后选择左侧的 服务和集成 部分。
  2. 单击 关联服务
  3. 如果您具有现有 Watson Machine Learning 服务实例,请跳至下一步。 否则,请继续执行以下步骤以创建新实例。
    1. 单击 新建服务,然后单击 Watson Machine Learning 磁贴。
    2. 选择与 Watson Studio 服务相同的 区域,然后选择 轻量 套餐。
    3. 输入 machine-learning-tutorial 作为 服务名称,然后选择资源组。
    4. 单击 创建 以供应 Machine Learning 服务。
  4. 选中 Machine Learning 服务旁边的复选框,然后单击 关联

构建机器学习模型

  1. 在顶部导航菜单中,单击 资产
  2. 单击 新建资产 + 并搜索 auto
    1. 单击 自动构建机器模型 磁贴。
    2. 将名称设为 iris_auto
    3. Watson Machine Learning 服务实例下,请注意先前关联的服务。
  3. 单击创建

创建模型后,

  1. 点击从项目中选择数据 添加训练数据。

    1. 类别 下选择 数据资产,然后选中 iris_initial.csv
    2. 单击选择资产
  2. 如果出现提示,请回答 创建时间序列分析?

  3. 选择 物种 作为您的 要预测的内容?

  4. 单击实验设置

  5. 选择数据源

  6. 训练和坚持方法下,通过移动滑块将 坚持数据分割 设置为 14%

  7. 在左侧菜单上,单击 预测:

    1. 预测类型 设置为 多类分类
    2. 优化的度量 设置为 准确性
    3. 点击保存设置
  8. 点击运行实验

  9. AutoAI 试验 可能需要最多 5 分钟才能为模型选择正确的算法。

    每个模型管道都会按各种指标进行评分,然后进行排名。 二元分类模型的缺省排名指标是 ROC 曲线下的面积,多类分类模型的缺省排名指标是准确度,回归模型的缺省排名指标是均方根误差 (RMSE)。 排名最高的管道会显示在排行榜中,因此您可以查看有关这些管道的更多信息。 排行榜还会提供在复审后保存选定模型管道的选项。

一旦实验完成运行,

  1. 向下滚动到 管道排行榜
  2. 点击管道可查看有关指标和性能的更多详细信息。 通过单击 X 完成关闭时。
  3. 在具有 排名 1 的模型旁边,单击 另存为
    1. 选择型号
    2. 保留缺省名称。
    3. 单击创建
  4. 从接收到的通知中,单击 在项目中查看

部署和测试模型

在本部分中,您将部署已保存的模型并测试已部署的模型,

  1. 使用面包屑导航,单击 iris_project
  2. 资产 选项卡中,打开左侧的 模型
  3. 模型 表中,找到模型并单击汉堡包菜单,然后选择 提升到空间您可以使用部署空间来部署模型和管理部署。
    1. 名称设置为 iris_deployment_space
    2. 选择相应下拉列表中先前步骤中使用的 Object Storage 存储服务。
    3. 在相应的下拉列表中选择 machine-learning-tutorial 服务。
    4. 单击创建
  4. 单击 提升
  5. 从接收到的通知中,浏览到 部署空间

部署> iris_deployment_space 中:

  1. 单击您刚刚创建的模型的名称。
  2. 单击新部署按钮。
  3. 选择 联机 作为部署类型,提供 iris_deployment 作为名称,然后单击 创建
  4. 部署 选项卡下,一旦状态更改为 已部署,单击表中的 名称。 将显示模型的已部署 Web Service 的属性。

测试已部署的模型

  1. 在部署的 测试 选项卡下,单击 输入输入数据 旁边的 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]
         ]
       }]
     }
    
  2. 单击 预测,您应该会在表和 JSON 视图中看到 预测结果
  3. 您可以更改输入数据,并继续测试模型。

试用 API

与 UI 一起,您还可以使用 API 评分端点来执行预测,方法是将已部署的模型公开为要从应用程序访问的 API。

  1. 在部署的 API 参考 选项卡下,您可以在各种编程语言的直接链接和代码片段下看到 端点

  2. 复制 记事本中的 公共端点 以供将来参考。

  3. 在浏览器中,启动 IBM Cloud Shell 并导出要在后续请求中使用的评分端点。 确保不关闭此窗口/选项卡

    export SCORING_ENDPOINT='<SCORING_ENDPOINT_FROM_ABOVE_STEP>'
    

    IBM Cloud Shell 是可通过浏览器访问的基于云的 shell 工作空间。 它预先配置了完整的 IBM Cloud CLI 以及可用于管理应用程序,资源和基础结构的许多插件和工具。

  4. 要使用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
    
  5. 在云 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 服务,以监视已部署的机器学习模型的运行状况,性能,准确性和质量指标。

  1. 创建 IBM Watson OpenScale 服务 (watsonx.governance)
    1. 最好选择创建了 Machine Learning 服务的同一区域中的区域。
    2. 选择 轻量 套餐。
    3. 将服务名称设置为 watson-openscale-tutorial
    4. 选择资源组。
    5. 单击创建
  2. 供应服务后,单击左侧窗格上的 管理,然后单击 启动 Watson OpenScale
  3. 单击手动设置可手动设置监视器。

系统设置

在此部分中,在准备模型以进行监视的过程中,您将设置并启用要使用 IBM Watson OpenScale跟踪的每个部署的监视器。

  1. 单击 数据库这是为了存储模型事务和模型评估结果。 (可能已选中此选项)
    1. 单击数据库磁贴上的编辑图标
    2. 选择 免费轻量套餐数据库 作为数据库类型
    3. 单击保存
  2. 单击 机器学习提供程序
    1. 单击 添加机器学习提供程序,然后单击 连接 磁贴上的“编辑”图标。
    2. 选择 Watson Machine Learning(V2) 作为服务提供者类型。
    3. 部署空间 下拉列表中,选择上面创建的部署空间 iris_deployment_space
    4. 将环境类型保留为 生产前
    5. 单击保存
  3. 在最左边的窗格上:
    1. 单击 Insights 仪表板的图标 (第一个图标) 以添加部署
    2. 单击 添加到仪表板 以在“选择模型位置”页面上启动向导。
      1. 部署空间 选项卡上,单击 iris_deployment_space 单选按钮
      2. 单击下一步
    3. 在“选择已部署的模型”页面上:
      1. 单击 iris_deployment
      2. 单击下一步
    4. 在“提供模型信息”页面上:
      1. 数据类型: 数字/分类
      2. 算法类型: 多类分类
      3. 单击查看摘要
    5. 点击完成

此时将显示 iris_deployment 生产前仪表板。

单击操作>配置监视器

  1. 单击 训练数据 磁贴上的 画笔 图标以启动向导。
    1. 在“选择配置”方法页面中
      1. 单击 使用手动设置
      2. 单击下一步
    2. 指定训练数据 方法页面中
      1. 对于“训练数据”选项,选择 数据库或云存储器
      2. 对于位置,请选择 Cloud Object Storage
      3. 对于资源实例标识和 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}')
        
      4. 复制并粘贴凭证 resource_instance_id。 它将以 crn 开头,并以两个冒号 :: 结尾。
      5. 复制并粘贴不带任何尾部空格的凭证 API 密钥。
      6. 然后,单击连接
      7. 选择以 irisproject-donotdelete- 开头的存储区。
      8. 从“数据集”下拉列表中选择 iris_initial.csv
      9. 单击下一步
    3. 在“选择特征列和标签列”方法页面中
      1. 缺省值应该正确。 作为标签/目标,其余作为特征。
      2. 单击下一步
    4. 在“选择模型输出”方法页面中
      1. 缺省值应该是正确的,预测是预测,概率是概率。
      2. 单击查看摘要
    5. 点击完成
  2. 单击 模型输出详细信息 磁贴上的 画笔 图标以启动向导。
    1. 指定模型输出详细信息 方法页面中
      1. 缺省值应该正确。
      2. 单击保存
  3. 在左侧窗格上,单击“评估”下的 质量,然后单击 质量阈值 磁贴上的 编辑 图标
    1. 在“质量阈值”页面中,设置以下值:
      1. 准确性 0.98
      2. 单击下一步
    2. 在“样本大小”页面中
      1. 将最小样本大小设置为 10
      2. 单击保存

在左侧窗格上,单击 转至模型摘要

通过质量监视器(以前称为“准确度监视器”),可以了解模型预测结果的准确度。

由于本教程使用小型数据集,因此配置公平性和漂移不会产生任何影响。

评估已部署的模型

在此部分中,您将通过上载包含每个物种的 10 个实例的 iris_retrain.csv 文件来评估模型。 下载 iris_retrain.csv

  1. 单击 操作,然后单击 立即评估
  2. 选择 从 CSV 文件 作为导入选项,然后单击 浏览,上载 iris_retrain.csv 文件。
  3. 单击并单击 上载并评估
  4. 评估完成后,您应该会看到具有不同度量值的仪表板。

要了解质量指标,请参阅 质量指标概述

除去资源

  1. 浏览至 IBM Cloud® 资源列表
  2. 名称下,在搜索框中输入 tutorial
  3. 删除为本教程创建的服务。

根据资源的不同,可能不会立即将其删除,但会保留 (缺省情况下为 7 天)。 您可以通过永久删除该资源或在保留期内将其复原来回收该资源。 请参阅本文档,以了解如何 使用资源回收

相关内容