将 Azure 容器实例 Web 服务升级为托管联机终结点的升级步骤

托管联机终结点有助于以统包方式部署 ML 模型。 托管联机终结点在 Azure 中以一种可缩放的、完全托管的方式使用功能强大的 CPU 和 GPU 计算机。 托管联机终结点负责处理、缩放、保护和监视你的模型,使你没有设置和管理底层基础结构的开销。 可以在如何使用联机终结点部署机器学习模型并为其评分上找到详细信息。

可以使用以前的模型和环境直接部署到新的计算目标,或使用由我们提供的脚本导出当前服务,然后部署到新计算,而不会影响现有服务。 如果定期创建和删除 Azure 容器实例 (ACI) Web 服务,则强烈建议直接部署而不使用脚本。

重要

这些脚本为预览版,不附带服务级别协议。

支持的场景和区别

身份验证模式

托管联机终结点支持各种身份验证。 如果使用升级脚本,则会将其转换为密钥身份验证。对于密钥身份验证,将使用原始密钥。 基于令牌的身份验证也受支持。

TLS

对于使用 HTTPS 保护的 ACI 服务,不再需要提供自己的证书,所有托管联机终结点均受 TLS 保护。

不支持自定义 DNS 名称。

资源要求

ContainerResourceRequirements 不受支持,你可以为推理选择适当的 SKU。 升级工具会将 CPU/内存要求映射到相应的 SKU。 如果选择通过 CLI/SDK V2 手动重新部署,我们还建议为新部署使用对应的 SKU。

CPU 请求 内存请求(以 GB 为单位) 建议的 SKU
(0, 1] (0, 1.2] DS1 V2
(1, 2] (1.2, 1.7] F2s V2
(1, 2] (1.7, 4.7] DS2 V2
(1, 2] (4.7, 13.7] E2s V3
(2, 4] (0, 5.7] F4s V2
(2, 4] (5.7, 11.7] DS3 V2
(2, 4] (11.7, 16] E4s V3

“(”表示大于,“]”表示小于或等于。 例如,“(0, 1]”表示“大于 0 且小于或等于 1”。

重要

从 ACI 升级后,收费方式将会有一些变化。 请参阅我们的博客,获取大致成本比较,帮助你为工作负载选择适合的 VM SKU。

网络隔离

有关专用工作区和 VNet 场景,请参阅将网络隔离与托管联机终结点配合使用

重要

由于工作区和 VNet 有许多设置,因此强烈建议通过 Azure CLI 扩展 v2 重新部署机器学习,而不是使用脚本工具。

不支持

  • 不支持 ACI 容器的 EncryptionProperties
  • 升级工具不支持通过 deploy_from_model 和 deploy_from_image 部署的 ACI Web 服务。 通过 CLI/SDK V2 手动重新部署。

升级步骤

使用 CLISDK

使用模型文件和环境定义手动重新部署。 可以在 azureml-examples 上找到示例。 确切地说,这是托管联机终结点的 SDK 示例

使用升级工具

此工具将根据现有 Web 服务自动创建新托管联机终结点。 原始服务不会受到影响。 可以安全地将流量路由到新终结点,然后删除旧终结点。

注意

升级脚本是一个示例脚本,在提供时没有附带服务级别协议 (SLA)。

使用以下步骤运行脚本:

提示

脚本创建的新终结点将在同一工作区下创建。

  1. 使用 bash shell 运行脚本。 例如,Linux 上的终端会话或适用于 Linux 的 Windows 子系统 (WSL)。

  2. 安装 Python SDK V1 以运行 Python 脚本。

  3. 安装 Azure CLI

  4. 存储库克隆到本地环境。 例如 git clone https://github.com/Azure/azureml-examples

  5. 编辑 migrate-service.sh 文件中的以下值。 将值替换为适用于配置的值。

    • <SUBSCRIPTION_ID> - 包含你的工作区的 Azure 订阅的订阅 ID。
    • <RESOURCEGROUP_NAME> - 包含你的工作区的资源组。
    • <WORKSPACE_NAME> - 工作区名称。
    • <SERVICE_NAME> - 现有 ACI 服务的名称。
    • <LOCAL_PATH> - 下载脚本所使用资源和模板的本地路径。
    • <NEW_ENDPOINT_NAME> - 将创建的新终结点的名称。 建议新终结点名称不同于之前的服务名称。 否则,如果在门户中检查终结点,则不会显示原始服务。
    • <NEW_DEPLOYMENT_NAME> - 对新终结点的部署的名称。
  6. 运行 Bash 脚本。 例如 ./migrate-service.sh。 完成新部署大约需要 5-10 分钟。

    提示

    如果收到脚本不可执行的错误,或在尝试运行脚本时打开了编辑器,请使用以下命令将脚本标记为可执行文件:

    chmod +x migrate-service.sh
    
  7. 部署成功完成后,可以使用 az ml online-endpoint invoke 命令验证终结点。

联系我们

如果对升级脚本有任何疑问或反馈,请通过 moeonboard@microsoft.com 与我们联系。

后续步骤