IBM Cloud Docs
使用机器学习模型

本文档适用于 IBM Watson® Knowledge Studio 上的 IBM Cloud®。 要查看 Knowledge Studio Marketplace 上 IBM 先前版本的文档,请单击此链接

使用机器学习模型

将通过 Knowledge Studio 训练的机器学习模型提供给其他 Watson 应用程序,以利用该模型。

您可以部署或导出机器学习模型。 字典或 Natural Language Understanding 预注释器只能用于对 Knowledge Studio 内的文档进行预注释。

必须先预订服务,然后才能部署模型以供服务使用。 IBM Watson 服务托管在 IBM Cloud®上,这是 IBM的云平台。 有关该平台的更多信息,请参阅什么是 IBM Cloud?。 要预订其中一个 IBM Watson 服务,请从 IBM Cloud Web 站点创建帐户。

对于某些服务,您必须了解计划部署到的服务实例的详细信息,例如 IBM Cloud 空间名称和服务实例名称。 空间和实例名称信息可从 IBM Cloud“服务”页面获取。

您还可以使用机器学习模型对新文档进行预注释。 有关详细信息,请参阅使用机器学习模型对文档进行预注释

将机器学习模型部署到 IBM Watson Discovery

如果您对模型的性能感到满意,可以将其版本部署到 IBM Watson Discovery。 通过此功能,应用程序可以使用部署的机器学习模型来扩充您从数据获取的洞察,以识别与您的领域相关的概念和关系。

关于本任务

部署机器学习模型时,选择要部署的模型版本。

过程

要部署机器学习模型,请完成以下步骤:

  1. 以 Knowledge Studio 管理员或项目经理身份登录,然后选择工作空间。

  2. 选择机器学习模型 > 版本

  3. 选择要部署的模型版本。

    如果模型只有一个有效版本,请创建当前模型的快照。 这将对模型进行版本控制(支持您部署一个版本),同时您可继续改进当前版本。 在创建至少一个版本后,才会显示用于部署的选项。

    每个版本都可以部署到任意数量的服务实例上。 一个模型版本的每个已部署实例都会获得唯一的模型标识,但在其他所有方面都完全相同。

  4. 单击部署,选择将其部署到 Discovery,然后单击下一步

  5. 选择 IBM Cloud 空间和实例。 如果需要,请选择其他区域。

  6. 单击部署

  7. 部署过程可能需要几分钟时间。 要检查部署的状态,请单击版本选项卡上已部署版本旁边的状态

    如果模型仍在部署中,状态会指示“正在部署”。 部署完成后,如果部署成功,那么状态会更改为“可用”或“已部署”;如果发生问题,那么状态会更改为“错误”。

    一旦状态变为可用,请记下模型标识 (model_id)。

后续操作

要使用该模型,必须导出该模型,然后将其导入到 Discovery中。

  1. 选择机器学习模型 > 版本

  2. 单击导出当前模型

    如果您拥有的是轻量套餐预订,就没有可用的导出选项。

    模型会另存为 ZIP 文件,系统会提示您下载该文件。

  3. 将该文件下载到本地系统。

  4. 从 Discovery 服务中,执行创建 Machine Learning 扩充项 (包括上载 ZIP 文件) 的步骤。 有关更多详细信息,请参阅 Discovery v2 文档中的 Machine Learning 模型

如果您正在使用 Discovery v1 服务实例,那么必须在 Discovery 服务扩充配置过程中请求模型标识时提供该标识。 有关更多信息,请参阅 Discovery v1 文档中的 将定制模型与 Discovery 工具集成

将机器学习模型部署到 IBM Watson Natural Language Understanding

如果您对模型的性能感到满意,可以将其版本部署到 IBM Watson Natural Language Understanding。 通过此功能,应用程序可以使用部署的机器学习模型来分析文本输入的语义特征,包括实体和关系。

开始之前

您必须具有要部署到的 Natural Language Understanding 服务。 您还必须知道与该服务关联的 IBM Cloud 空间和实例名称。 如果您不记得空间或实例名称,请通过登录到 IBM Cloud 来查找这些名称。 如果您没有 IBM Cloud 帐户,请注册一个帐户。

关于本任务

部署机器学习模型时,选择要部署的模型版本。

过程

要将机器学习模型部署到 Natural Language Understanding 服务,请完成以下步骤:

  1. 以 Knowledge Studio 管理员或项目经理身份登录,然后选择工作空间。

  2. 选择机器学习模型 > 版本

  3. 选择要部署的模型版本。

    如果模型只有一个有效版本,请创建当前模型的快照。 这将对模型进行版本控制(支持您部署一个版本),同时您可继续改进当前版本。 在创建至少一个版本后,才会显示用于部署的选项。

    每个版本都可以部署到任意数量的服务实例上。 一个模型版本的每个已部署实例都会获得唯一的模型标识,但在其他所有方面都完全相同。

  4. 单击部署,选择将其部署到 Natural Language Understanding,然后单击下一步

  5. 选择 IBM Cloud 空间和实例。 如果需要,请选择其他区域。

  6. 单击部署

  7. 部署过程可能需要几分钟时间。 要检查部署的状态,请单击版本选项卡上已部署版本旁边的状态。 如果模型仍在部署中,状态会指示“正在发布”。 部署完成后,如果部署成功,那么状态会更改为“可用”;如果发生问题,那么状态会更改为“错误”。

    一旦状态变为可用,请记下模型标识 (model_id)。 您将需要向 Natural Language Understanding 服务提供此标识,使该服务能够使用您的定制模型。

后续操作

通过调用以下 API 方法,可以列出 Natural Language Understanding 服务实例中部署的模型。

curl --user "apikey:{apikey}" "{url}/v1/models?version=2018-11-16"

任何部署的模型都会以类似下列内容的数组形式返回:

{
  "models": [
    {
      "workspace_id": "{workspace_id}",
      "version_description": "{version_description}",
      "version": "{version}",
      "status": "available",
      "name": null,
      "model_id": "10:7abc4c2f-5846-3334-b8f7-af5a6fad3398",
      "language": "en",
      "description": null,
      "created": "2018-11-28T17:08:00.000000Z"
    }
  ]
}

{workspace_id}{version_description}{version} 都将与 Knowledge Studio 服务实例的版本页面上列出的信息相匹配。

要使用部署的模型,必须在 entities.modelanalyze** 调用的 ** 参数中指定定制模型的模型标识。

可以将模型与 Natural Language Understanding GET /analyze 请求配合使用来抽取以下特征:

  • ENTITIES

    以下命令查找使用 text 参数传递的句子中存在的实体:

    curl --user "apikey":"{apikey}" "{url}/v1/analyze?version=2018-09-21"
    --request POST
    --header "Content-Type: application/json"
    -d '{"text": "Vehicle 1, a 1995 Honda Civic was traveling north on a two lane
           undivided roadway, negotiating a curve to the left on an upgrade.",
            "features": {
              "entities": {
                "model": "your-model-id-here"
              }
            }
         }'
    

    该服务会返回其找到的在定制模型中定义的实体类型实例的 JSON 对象:

    {
      "language": "en",
      "entities": [
        {
          "type": "MANUFACTURER",
          "text": "Honda",
          "count": 1
        },
        {
          "type": "MODEL",
          "text": "Civic",
          "count": 1
        },
        {
          "type": "VEHICLE",
          "text": "Vehicle 1",
          "count": 1
        },
        {
          "type": "STRUCTURE",
          "text": "two lane undivided roadway",
          "count": 1
        },
        {
          "type": "STRUCTURE",
          "text": "curve",
          "count": 1
        },
        {
          "type": "MODEL_YEAR",
          "text": "1995",
          "count": 1
        },
        {
          "type": "CONDITION",
          "text": "negotiating",
          "count": 1
        }
      ],
      "language": "en"
    }
    
  • relations

    以下命令查找使用 text 参数传递的句子中存在的关系:

    curl --user "apikey":"{apikey}" "{url}/v1/analyze?version=2018-09-21"
    --request POST
    --header "Content-Type: application/json"
    -d '{"text": "Vehicle 1, a 1995 Honda Civic was traveling north on a two lane
           undivided roadway, negotiating a curve to the left on an upgrade.",
            "features": {
              "relations": {
                "model": "your-model-id-here"
              }
            }
         }'
    

    该服务会返回其找到的在定制模型中定义的关系类型实例的 JSON 对象:

    {
      "relations": [
        {
          "type": "timeOf",
          "sentence": "Vehicle 1, a 1995 Honda Civic was traveling north
           on a two lane undivided roadway, negotiating a curve to
           the left on an upgrade.",
          "score": 0.954254,
          "arguments": [
            {
              "text": "1995",
              "entities": [
                {
                  "type": "Date",
                  "text": "1995"
                }
              ]
            },
            {
              "text": "Honda Civic",
              "entities": [
                {
                  "type": "SportingEvent",
                  "text": "Honda Civic"
                }
              ]
            }
          ]
        },
        {
          "type": "locatedAt",
          "sentence": "Vehicle 1, a 1995 Honda Civic was traveling north
           on a two lane undivided roadway, negotiating a curve to
           the left on an upgrade.",
          "score": 0.40592,
          "arguments": [
            {
              "text": "negotiating",
              "entities": [
                {
                  "type": "EventMeeting",
                  "text": "negotiating"
                }
              ]
            },
            {
              "text": "roadway",
              "entities": [
                {
                  "type": "Facility",
                  "text": "roadway"
                }
              ]
            }
          ]
        }
      ],
      "language": "en"
    }
    

有关更多信息,请参阅 Natural Language Understanding 文档

将同一模型版本部署到多个服务

如果想要将同一机器学习模型的特定版本部署到多个 IBM Watson 服务实例,请导航至版本页面,然后单击要部署到其他服务的版本所在行上的部署链接。

取消部署模型

如果要取消部署模型或查找模型标识,请查看部署的模型页面。

过程

要取消部署模型或查找模型标识,请执行以下操作:

  1. 启动 Knowledge Studio。
  2. 从右上角菜单栏中的设置菜单中,选择管理部署的模型
  3. 从已部署模型的列表中,找到要查看或取消部署的模型。
  4. 要取消部署模型,请在该模型所在行的最后一列中,单击取消部署模型
  5. 要查找模型标识,请查看模型标识列。

或者,也可以从基于规则的模型和机器学习模型的“版本”页面中取消部署模型。

删除版本

如果想要删除同一机器学习模型的特定版本,请导航至版本页面,然后单击要删除的版本所在行上的删除链接。 :仅当没有已部署模型与该模型版本关联时,删除模型版本链接才处于活动状态。 在删除某个版本之前,请取消部署所有关联的模型。

在 IBM Watson Explorer 中利用机器学习模型

导出已训练的机器学习模型,这样就能够在 IBM Watson Explorer 中使用该模型。

开始之前

如果选择识别关系类型并对其进行注释,那么必须在导出模型之前至少定义两种关系类型,并对参考标准中这些关系的实例进行注释。 仅对一种关系类型进行定义和注释会导致 IBM Watson Explorer R11.0.1.0 中后续出现问题。

关于本任务

既然已训练机器学习模型识别特定领域的实体和关系,您就可以在 IBM Watson Explorer 中对其加以利用。

观看简短视频 ,说明如何导出模型并在 IBM Watson Explorer 中使用该模型。

过程

要在 IBM Watson Explorer 中利用机器学习模型,请完成以下步骤。

  1. 以 Knowledge Studio 管理员或项目经理身份登录,然后选择工作空间。

  2. 选择机器学习模型 > 版本

  3. 单击导出当前模型

    如果您拥有的是轻量套餐预订,就没有可用的导出选项。

    模型会另存为 ZIP 文件,系统会提示您下载该文件。

  4. 将该文件下载到本地系统。

  5. 在 IBMWatson Explorer 应用程序中,导入该模型。

    然后,可以将该模型映射到 Watson Explorer Content Analytics 中的一个机器学习模型。 执行映射步骤后,当搜寻文档时,该模型将查找您的模型所理解的实体和关系的实例。 有关如何在 IBM Watson Explorer 中导入和配置模型的更多信息,请参阅描述集成的技术文档: 在 Watson Explorer 中使用来自 Knowledge Studio 的机器学习注释器