共用方式為


使用 CLI (v1) 將模型部署至 Azure 容器執行個體

重要事項

本文中的 Azure CLI 命令使用 azure-cli-ml 或 v1 (Azure Machine Learning 的擴充功能)。 CLI v1 的支援已於 2025 年 9 月 30 日結束。 Microsoft 將不再提供此服務的技術支援或更新。 您使用 CLI v1 的現有工作流程將在支援終止日期之後繼續運作。 不過,如果產品發生架構變更,它們可能會面臨安全性風險或重大變更。

建議您盡快轉換至 ml或 v2 擴充功能。 如需有關 v2 延伸模組的詳細資訊,請參閱 Azure Machine Learning CLI 延伸模組和 Python SDK v2

重要事項

本文提供使用 Azure Machine Learning SDK v1 的相關信息。 SDK v1 自 2025 年 3 月 31 日起已被取代。 其支援將於 2026 年 6 月 30 日結束。 您可以在該日期之前安裝並使用 SDK v1。 您使用 SDK v1 的現有工作流程將在支援終止日期後繼續運作。 不過,如果產品發生架構變更,它們可能會面臨安全性風險或重大變更。

建議您在 2026 年 6 月 30 日之前轉換至 SDK v2。 如需 SDK v2 的詳細資訊,請參閱 什麼是 Azure Machine Learning CLI 和 Python SDK v2?SDK v2 參考

重要事項

本文說明如何使用 CLI 和 SDK v1 來部署模型。 如需 v2 的建議方法,請參閱使用線上端點來部署和評分機器學習模型

了解如何使用 Azure Machine Learning,在 Azure 容器執行個體上將模型部署為 Web 服務 (ACI)。 如果您有下列情況,請使用 Azure 容器執行個體:

  • 不想管理您自己的 Kubernetes 叢集
  • 對於只擁有服務的單一複本 (這可能會影響運作時間) 可接受

如需 ACI 的配額和區域可用性,請參閱 Azure 容器執行個體的配額和區域可用性文章。

重要事項

強烈建議您先在本機上偵錯,再部署至 Web 服務。如需詳細資訊,請參閱本機偵錯

您也可以參考 Azure Machine Learning - 部署至本機筆記本

先決條件

限制

附註

  • 不支援在虛擬網路中部署 Azure 容器執行個體。 相反地,為了實現網路隔離,請考慮使用受控線上端點
  • 為了確保有效的支援,必須為 ACI 容器提供必要的記錄。 如果沒有這些記錄,則無法保證技術支援。 建議透過在部署設定中指定 enable_app_insights=True 來使用記錄分析工具,以有效地管理和分析 ACI 容器記錄。

部署到 ACI

若要將模型部署至 Azure 容器執行個體,請建立部署設定,以描述所需的計算資源。 例如,核心和記憶體數目。 您也需要推斷設定,其中描述裝載模型和 Web 服務所需的環境。 如需建立推斷設定的詳細資訊,請參閱部署模型的方式和位置

附註

  • ACI 只適用於大小小於 1 GB 的小型模型。
  • 建議使用單一節點 AKS 來開發/測試較大型的模型。
  • 要部署的模型數目限制為每個部署 (每個容器) 1,000 個模型。

使用 SDK

適用於:適用於 Python 的 Azure Machine Learning SDK v1

from azureml.core.webservice import AciWebservice, Webservice
from azureml.core.model import Model

deployment_config = AciWebservice.deploy_configuration(cpu_cores = 1, memory_gb = 1)
service = Model.deploy(ws, "aciservice", [model], inference_config, deployment_config)
service.wait_for_deployment(show_output = True)
print(service.state)

如需此範例中所使用的類別、方法和參數的詳細資訊,請參閱下列參考文件:

使用 Azure CLI

適用於:Azure CLI ml 延伸模組 v1

若要使用 CLI 進行部署,請使用下列命令。 將 mymodel:1 取代為已註冊模型的名稱和版本。 將 myservice 取代為要提供此服務的名稱:

az ml model deploy -n myservice -m mymodel:1 --ic inferenceconfig.json --dc deploymentconfig.json

deploymentconfig.json 文件中的專案會對應至 AciWebservice.deploy_configuration 的參數。 下表描述 JSON 文件中的實體之間的對應以及方法的參數:

JSON 實體 方法參數 描述
computeType 計算目標。 若為 ACI,則值必須為 ACI
containerResourceRequirements CPU 和記憶體實體的容器。
  cpu cpu_cores 要配置的 CPU 核心數目。 依預設,0.1
  memoryInGB memory_gb 要為此 Web 服務配置的記憶體 (GB) 數量。 預設值,0.5
location location 要作為部署此 Webservice 的 Azure 區域。 如果未指定,則將會使用工作區位置。 如需可用區域的詳細資訊,請參閱:ACI 區域
authEnabled auth_enabled 是否要啟用此 Webservice 的驗證。 預設為 False
sslEnabled ssl_enabled 是否要為此 Webservice 啟用 TLS。 預設為 False。
appInsightsEnabled enable_app_insights 是否要為此 Webservice 啟用 AppInsights。 預設為 False
sslCertificate ssl_cert_pem_file 若已啟用 TLS,則需要憑證檔案
sslKey ssl_key_pem_file 啟用 TLS 時所需的金鑰檔案
cname ssl_cname 如果 TLS 已啟用,則為 CNAME
dnsNameLabel dns_name_label 評分端點的 DNS 名稱標籤。 若未指定,就會為評分端點產生唯一的 DNS 名稱標籤。

下列 JSON 是與 CLI 搭配使用的範例部署設定:

{
    "computeType": "aci",
    "containerResourceRequirements":
    {
        "cpu": 0.5,
        "memoryInGB": 1.0
    },
    "authEnabled": true,
    "sslEnabled": false,
    "appInsightsEnabled": false
}

如需詳細資訊,請參閱 az ml 模型部署參考。

使用 VS Code

請參閱如何在 VS Code 中管理資源

重要事項

您不需要事先建立 ACI 容器來進行測試。 會視需要建立 ACI 容器。

重要事項

我們會將雜湊的工作區識別碼附加至所有建立的基礎 ACI 資源,來自相同工作區的所有 ACI 名稱都將有相同的尾碼。 Azure Machine Learning 服務名稱仍會與客戶提供的 "service_name" 相同,且使用 Azure Machine Learning SDK API 的所有使用者都不需要任何變更。 我們不對所建立基礎資源的名稱提供任何保證。

後續步驟