Skip to content

从 Jupyter Notebook 部署 ML 模型

Deploy ML Models from Jupyter Notebook

模型部署(deployment)的核心目标是获得一个可用于推理(inference)的 API 端点(endpoint):

ds p84 1

虽然听起来简单,但部署通常是一个相当繁琐且耗时的过程。我们必须维护环境文件、配置各种设置、确保所有依赖都正确安装等等。所以在本章中,我想帮你简化这个过程。更具体地说,我们将学习如何使用 Modelbit API,仅需三个简单步骤就能直接从 Jupyter Notebook 部署任何 ML 模型。Modelbit 让我们能够把 ML 模型从 Python notebook(或 git)无缝部署到 Snowflake、Redshift 和 REST。

ds p84 2

假设我们已经训练好了模型。为简单起见,假设它是一个用 sklearn 训练的线性回归模型,但它也可以是任何其他模型:

ds p85 1

让我们看看如何用 Modelbit 部署这个模型!

  • 首先,我们通过 pip 安装 Modelbit 包:
  • 接下来,我们从 Jupyter Notebook 登录 Modelbit(请确保你已在此创建账号:Modelbit)

ds p85 2

ds p85 3

  • 最后,我们部署它,但有一个重要的点需要注意:

要用 Modelbit 部署模型,我们必须定义一个推理函数。简单来说,这个函数包含了在推理(inference)时将被执行的代码。因此,它负责返回预测结果。

ds p86 1

我们必须在这个方法中指定模型所需的输入参数。此外,我们可以给它取任何想要的名字。对于我们的线性回归场景,推理函数可以如下所示:

ds p86 2

  • 我们定义一个函数 predict()。
  • 接下来,我们将模型的输入指定为这个方法的参数。
  • 我们对输入的数据类型进行验证(validation)。
  • 最后,我们返回预测结果。

Modelbit 的一个优点是,函数的每个依赖(本例中即模型对象)都会被序列化(pickle),并随函数一起

自动发送到生产环境(production)。因此,我们可以在这个方法中引用任何对象。一旦定义好函数,我们就可以按如下方式继续部署:

ds p87 1

ds p87 2

我们仅用三个简单步骤就成功部署了模型,而且是直接在 Jupyter Notebook 里完成的!模型成功部署后,它会出现在我们的 Modelbit 仪表板中。

如上所示,Modelbit 提供了一个 API 端点(endpoint)。我们可以按如下方式将其用于推理:

ds p87 3

在上面的请求中,传递给端点的数据是一个列表的列表。

ds p88 1

列表中的第一个数字是输入 ID。ID 之后列表中的所有条目都是函数参数。最后,我们在部署模型时还可以指定所使用的库或 Python 的具体版本。如下图所示:

ds p88 2

相比传统的部署方式,这不是既酷又简单优雅吗?

本站内容仅供学习交流,版权归原作者所有。