托管在线终结点可帮助你以一站式方式部署机器学习模型。 托管在线终结点以可扩展、完全托管的方式在 Azure 上运行强大的 CPU 和 GPU 服务器。 托管联机终结点负责处理、缩放、保护和监视你的模型,使你没有设置和管理底层基础结构的开销。 可以在如何使用联机终结点部署机器学习模型并为其评分上找到详细信息。
可以使用以前的模型和环境直接部署到新的计算目标,或使用 脚本 导出当前服务,然后部署到新计算,而不会影响现有服务。 如果定期创建和删除Azure Container Instances (ACI) Web 服务,我们强烈建议直接部署,而不使用脚本。
重要
升级后评分 URL 将会更改。
支持的场景和区别
身份验证模式
托管联机终结点支持各种身份验证。 如果使用升级脚本,则会将其转换为密钥身份验证。对于密钥身份验证,将使用原始密钥。 基于令牌的身份验证也受支持。
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。
网络隔离
有关专用工作区和虚拟网络方案,请参阅 将网络隔离与托管联机终结点配合使用。
重要
由于工作区和虚拟网络有许多设置,因此强烈建议通过用于机器学习的 Azure CLI 扩展 v2 重新部署,而不是使用脚本工具。
不支持
- 不支持 ACI 容器的 EncryptionProperties。
- 升级工具不支持通过 deploy_from_model 和 deploy_from_image 部署的 ACI Web 服务。 通过 CLI/SDK V2 手动重新部署。
升级步骤
使用 CLI 或 SDK
使用模型文件和环境定义手动重新部署。 可以在 azureml-examples 上找到我们的示例。 具体而言,这是托管联机终结点的 SDK 示例。
使用我们的升级工具
此工具将根据现有 Web 服务自动创建新托管联机终结点。 原始服务不会受到影响。 可以安全地将流量路由到新终结点,然后删除旧终结点。
警告
Azure CLI ML 扩展 v1 (azure-cli-ml) 已于 2025 年 9 月 30 日终止支持。 在CLI v1为当前版本时编写了迁移脚本。 如果脚本使用 azure-cli-ml 命令,则它可能无法按预期运行。 建议在运行脚本内容之前对其进行验证。 对于完全支持的路径,请使用 CLI v2 或 SDK v2 方法手动重新部署。
注释
升级脚本是一个示例脚本,在提供时没有附带服务级别协议 (SLA)。
使用以下步骤运行脚本:
小窍门
脚本创建的新终结点将在同一工作区下创建。
使用 bash shell 运行脚本。 例如,Linux 上的终端会话或 Windows Subsystem for Linux (WSL)。
安装 Python SDK V1以运行Python脚本。
警告
Python SDK V1(
azureml-core)于 2025 年 3 月 31 日弃用,支持将于 2026 年 6 月 30 日结束。 在该日期之前迁移到 SDK v2。注释
使用 Python 3.10 或更高版本。 在 SDK V1 安装页上引用的 Python 3.7 和 3.8 已达到生命周期结束,不再受支持。
安装 Azure CLI。
将存储库克隆到本地 env。 例如,
git clone https://github.com/Azure/azureml-examples。编辑
migrate-service.sh文件中的以下值。 将值替换为适用于配置的值。-
<SUBSCRIPTION_ID>- 包含工作区的Azure订阅的订阅 ID。 -
<RESOURCEGROUP_NAME>- 包含工作区的资源组。 -
<WORKSPACE_NAME>- 工作区名称。 -
<SERVICE_NAME>- 现有 ACI 服务的名称。 -
<LOCAL_PATH>- 脚本所用资源和模板的下载本地路径。 -
<NEW_ENDPOINT_NAME>- 将创建的新终结点的名称。 建议新终结点名称不同于之前的服务名称。 否则,如果在门户中检查终结点,则不会显示原始服务。 -
<NEW_DEPLOYMENT_NAME>- 新终结点的部署名称。
-
运行 Bash 脚本。 例如,
./migrate-service.sh。 完成新部署大约需要 5-10 分钟。小窍门
如果收到脚本不可执行的错误,或者在尝试运行脚本时打开编辑器,请使用以下命令将脚本标记为可执行文件:
chmod +x migrate-service.sh部署成功完成后,可以使用 az ml online-endpoint invoke 命令验证终结点。