0 / 0
Go back to the English version of the documentation
将模型导入到部署空间
Last updated: 2024年11月28日
将模型导入到部署空间

导入在IBM watsonx.aiRuntime 之外训练的机器学习模型,以便部署和测试模型。 查看可用于导入模型的模型框架。

在这里,导入经过训练的模型是指:

  1. 将训练好的模型存储在watsonx.aiRuntime 资源库中
  2. 可选:在watsonx.ai运行时服务中部署存储模型

repository 表示 Cloud Object Storage 存储区。 有关更多信息,请参阅 创建部署空间

您可以通过以下方式导入模型:

有关更多信息,请参阅:

有关如何使用 Python 客户机以编程方式添加模型的示例,请参阅以下 Notebook:

有关如何使用 REST API以编程方式添加模型的示例,请参阅以下 Notebook:

按框架类型导入模型的可用方法

本表列出了按框架类型将模型导入watsonx.aiRuntime 的可用方法。

每个框架类型的模型导入选项
import 选项 Spark MLlib Scikit-learn XGBoost TensorFlow PyTorch
导入模型对象
使用文件路径导入模型
使用目录路径导入模型

使用 UI 添加模型

注:

如果要导入 PMML 格式的模型,可以直接导入模型 .xml 文件。

要使用 UI 导入模型:

  1. 在 "watsonx.ai运行时空间的 "资产选项卡中,点击 "进口资产
  2. 转至 本地文件 ,然后选择 模型
  3. 选择要导入的模型文件,然后单击 导入

导入机制根据 .xml 文件中的版本字符串自动选择匹配的模型类型和软件规范。

导入模型对象

注:

此导入方法受有限数量的 ML 框架支持。 有关更多信息,请参阅 按框架类型导入模型的可用方法

要导入模型对象:

  1. 如果您的模型位于远程位置,请遵循 下载存储在远程位置的模型
  2. 将模型对象存储在watsonx.aiRuntime 资源库中。 更多信息,请参阅将模型存储在watsonx.aiRuntime 资源库中

使用文件路径导入模型

注:

此导入方法受有限数量的 ML 框架支持。 有关更多信息,请参阅 按框架类型导入模型的可用方法

要使用文件路径导入模型,请执行以下操作:

  1. 如果您的模型位于远程位置,请遵循 下载存储在远程位置的模型 以下载该模型。

  2. 如果模型位于本地,请将其放置在特定目录中:

      !cp <saved model> <target directory>
      !cd <target directory>
    
  3. 对于 scikit-learnXGBoostTensorflowPyTorch 模型,如果下载的文件不是 .tar.gz 存档,请进行归档:

      !tar -zcvf <saved model>.tar.gz <saved model>
    

    模型文件必须位于目录的顶级文件夹中,例如:

    assets/
    <saved model>
    variables/
    variables/variables.data-00000-of-00001
    variables/variables.index
    
  4. 使用保存文件的路径将模型文件存储到watsonx.aiRuntime 资源库中。 更多信息,请参阅将模型存储在watsonx.aiRuntime 资源库中

使用目录路径导入模型

注:

此导入方法受有限数量的 ML 框架支持。 有关更多信息,请参阅 按框架类型导入模型的可用方法

要使用目录路径导入模型,请执行以下操作:

  1. 如果模型位于远程位置,请参阅下载存储在远程位置中的模型

  2. 如果模型位于本地,请将其放置在特定目录中:

    !cp <saved model> <target directory>
    !cd <target directory>
    

    对于 scikit-learnXGBoostTensorflowPyTorch 模型,模型文件必须位于目录的顶级文件夹中,例如:

    assets/
    <saved model>
    variables/
    variables/variables.data-00000-of-00001
    variables/variables.index
    
  3. 使用目录路径将模型文件存储在watsonx.aiRuntime 资源库中。 更多信息,请参阅将模型存储在watsonx.aiRuntime 资源库中

下载存储在远程位置中的模型

请按照此样本代码从远程位置下载模型:

import os
from wget import download

target_dir = '<target directory name>'
if not os.path.isdir(target_dir):
    os.mkdir(target_dir)
filename = os.path.join(target_dir, '<model name>')
if not os.path.isfile(filename):
    filename = download('<url to model>', out = target_dir)

导入模型时要考虑的事项

要了解有关导入特定模型类型的更多信息,请参阅:

要进一步了解可与 "watsonx.ai运行时一起使用的框架,请参阅 "支持的框架

以 PMML 格式保存的模型

  • 从 PMML 导入的模型的唯一可用部署类型是联机部署。
  • PMML 文件必须具有 .xml 文件扩展名。
  • PMML 模型无法用于 SPSS 流式流程。
  • PMML 文件不得包含序言。 根据您在保存模型时使用的库,缺省情况下可能会将序言添加到文件的开头。 例如,如果文件包含 prolog 字符串(例如 spark-mllib-lr-model-pmml.xml),请在将 PMML 文件导入到部署空间之前移除该字符串。

根据您在保存模型时使用的库,缺省情况下可能会将序言添加到文件的开头,如以下示例中所示:

::::::::::::::
spark-mllib-lr-model-pmml.xml
::::::::::::::

在将 PMML 文件导入watsonx.aiRuntime 之前,必须先删除该序言。

Spark MLlib 模型

  • 只有分类和回归模型可用。
  • 定制变换器,用户定义的函数和类不可用。

Scikit-learn 模型

  • .pkl.pickle 是可用的导入格式。
  • 要序列化或选取模型,请使用 joblib 包。
  • 只有分类和回归模型可用。
  • predict() API 的 pandas 数据帧输入类型不可用。
  • scikit-learn 模型的唯一可用部署类型是联机部署。

XGBoost 模型

  • .pkl.pickle 是可用的导入格式。
  • 要序列化或选取模型,请使用 joblib 包。
  • 只有分类和回归模型可用。
  • predict() API 的 pandas 数据帧输入类型不可用。
  • XGBoost 模型的唯一可用部署类型是联机部署。

TensorFlow 模型

  • .pb.h5.hdf5 是可用的导入格式。
  • 要保存或序列化 TensorFlow 模型,请使用 tf.saved_model.save() 方法。
  • tf.estimator 不可用。
  • TensorFlow 模型的唯一可用部署类型为: 联机部署和批处理部署。

PyTorch 模型

  • PyTorch 模型的唯一可用部署类型是联机部署。

  • 要将 Pytorch 模型导入watsonx.aiRuntime,必须先将其导出为 ".onnx格式。 请参阅此代码。

    torch.onnx.export(<model object>, <prediction/training input data>, "<serialized model>.onnx", verbose=True, input_names=<input tensor names>, output_names=<output tensor names>)
    

在watsonx.ai运行时资源库中存储模型

使用此代码将模型存储在watsonx.aiRuntime 资源库中:

from ibm_watson_machine_learning import APIClient

client = APIClient(<your credentials>)
sw_spec_uid = client.software_specifications.get_uid_by_name("<software specification name>")

meta_props = {
    client.repository.ModelMetaNames.NAME: "<your model name>",
    client.repository.ModelMetaNames.SOFTWARE_SPEC_UID: sw_spec_uid,
    client.repository.ModelMetaNames.TYPE: "<model type>"}

client.repository.store_model(model=<your model>, meta_props=meta_props)

备注

  • 根据所使用的模型框架, <your model> 可以是实际模型对象,保存的模型文件的完整路径或模型文件所在目录的路径。 有关更多信息,请参阅 按框架类型导入模型的可用方法

  • 要获取要用作 <software specification name>的可用软件规范的列表,请使用 client.software_specifications.list() 方法。

  • 有关要用作 model_type的可用模型类型的列表,请参阅 部署的软件规范和硬件规范

  • 将 Pytorch 模型导出为 ".onnx格式时,请指定 "keep_initializers_as_inputs=True标记,并将 "opset_version设为 9watsonx.ai运行时部署使用的是 "caffe2ONNX 运行时,它不支持高于 9 的 opset 版本)。

    torch.onnx.export(net, x, 'lin_reg1.onnx', verbose=True, keep_initializers_as_inputs=True, opset_version=9)
    

父主题: 部署空间中的资产

Generative AI search and answer
These answers are generated by a large language model in watsonx.ai based on content from the product documentation. Learn more