用於即時推斷的線上端點和部署

適用於:Azure CLI ml 延伸模組 v2 (目前)Python SDK azure-ai-ml v2 (目前)

Azure Machine Learning 可讓您使用部署至線上端點的模型,對資料執行即時推斷。 推斷是一種程序,可將新的輸入資料套用至機器學習模型以產生輸出。 雖然這些輸出通常稱為「預測」,但推斷可用來產生其他機器學習工作的輸出,例如分類和叢集。

線上端點

線上端點將模型部署至可在 HTTP 通訊協定下傳回預測的網頁伺服器。 使用線上端點,讓模型針對同步低延遲要求中的即時推斷運作。 建議您在下列情況下使用它們:

  • 您沒有低延遲需求
  • 您的模型可以在相對短時間內回應要求
  • 您模型的輸入符合要求的 HTTP 承載
  • 您必須根據要求數目相應擴大

若要定義端點,您必須指定:

  • 端點名稱:此名稱在整個 Azure 區域中必須是唯一的。 如需命名規則的詳細資訊,請參閱端點限制
  • 驗證模式:您可以選擇以密鑰為基礎的驗證模式、Azure 機器學習 令牌型驗證模式,或端點的 Microsoft Entra 令牌型驗證(預覽)。 如需驗證的詳細資訊,請參閱向線上端點進行驗證

Azure 機器學習 提供使用受控在線端點以周全方式部署機器學習模型的便利性。 這是在 Azure Machine Learning 中使用線上端點的建議方法。 受控線上端點會以可調整且完全受控的方式,在 Azure 中使用強大的 CPU 和 GPU 機器。 這些端點也負責服務、調整、保護和監視您的模型,讓您免除設定和管理基礎結構的額外負荷。 若要瞭解如何定義受控在線端點,請參閱 定義端點

為何選擇受控線上端點而非 ACI 或 AKS(v1)?

使用受控線上端點是在 Azure Machine Learning 中使用線上端點的建議方法。 下表強調受控線上端點與 Azure Machine Learning SDK/CLI v1 解決方案 (ACI and AKS(v1)) 的主要屬性。

屬性 受控線上端點 (v2) ACI 或 AKS(v1)
網路安全性/隔離 使用快速切換輕鬆控制輸入/輸出 不支援虛擬網路,或需要複雜的手動設定
受控服務 - 完全受控的計算佈建/調整
- 資料外流防護的網路設定
- 主機 OS 升級,受控制推出就地更新
- v1 中調整受限
- 網路設定或升級需要由使用者管理
端點/部署概念 端點與部署之間的差異可支援複雜的案例,例如安全推出模型 沒有端點的概念
診斷和監控 - 使用 Docker 和 Visual Studio Code 進行本機端點偵錯
​ - 使用圖表/查詢執行進階計量和記錄分析,以在部署之間進行比較
- 至部署層級的成本明細
不容易執行本機偵錯
延展性 無限制、彈性和自動調整 - ACI 無法調整
- AKS (v1) 僅支援叢集內調整,且需要可擴縮性設定
企業整備 私人連結、客戶自控金鑰、Microsoft Entra ID、配額管理、帳單整合、SLA 不支援
進階 ML 功能 - 模型資料收集
- 模型監測
- 冠軍挑戰者模型、安全推出、流量鏡像
- 負責任的 AI 擴充性
不支援

或者,如果您想要使用 Kubernetes 來部署模型並提供端點,而且您習慣管理基礎結構需求,則可以使用 Kubernetes 線上端點。 這些端點可讓您在任何位置使用 CPU 或 GPU 在完全設定和受控的 Kubernetes 叢集上部署模型和提供線上端點。

為何選擇受控線上端點而非 AKS(v2)?

受控線上端點可協助簡化您的部署流程,並提供下列勝過 Kubernetes 線上端點的優點:

  • 受控基礎結構

    • 自動佈建計算並裝載模型 (您只需要指定 VM 類型和規模設定)
    • 自動更新和修補基礎主機 OS 映像
    • 當系統失敗時自動執行節點復原
  • 監視和記錄

    顯示端點延遲 Azure 監視器圖表的螢幕快照。

  • 檢視成本

    端點和部署的成本圖表螢幕快照。

    注意

    受控線上端點是以 Azure Machine Learning 計算為基礎。 使用受控線上端點時,您需支付計算和網路費用。 不會額外收費。 如需詳細資訊,請參閱 Azure 定價計算機

    若您使用 Azure Machine Learning 虛擬網路保護來自受控線上端點的輸出流量,則須支付受控虛擬網路所使用的 Azure 私人連結和 FQDN 輸出規則的費用。 如需詳細資訊,請參閱受控虛擬網路價格

受控線上端點與 Kubernetes 線上端點

下表強調受控線上端點與 Kubernetes 線上端點之間的主要差異。

受控線上端點 Kubernetes 線上端點 (AKS(v2))
建議的使用者 想要使用受控模型部署和增強式 MLOps 體驗的使用者 偏好 Kubernetes 並可自行管理基礎結構需求的使用者
節點佈建 受控計算佈建、更新、移除 使用者的責任
節點維護 受控主機 OS 映像更新和安全性強化 使用者的責任
叢集調整大小 (縮放) 受控手動和自動調整,支援額外的節點佈建 手動和自動調整,支援調整固定叢集界限內的複本數目
計算類型 由服務管理 由客戶管理的 Kubernetes 叢集 (Kubernetes)
受控識別 支援 支援
虛擬網路 (VNET) 透過受管理的網路隔離支援 使用者的責任
現成可用的監視與記錄 支援 Azure 監視器和 Log Analytics (包括端點和部署的關鍵計量和記錄資料表) 使用者的責任
使用 Application Insights (舊版) 進行記錄 支援 支援
檢視成本 提供端點/部署層級的詳細資料 叢集層級
成本套用至 指派給部署的 VM 指派給叢集的 VM
鏡像流量 支援 不支援
無程式碼部署 支援 (MLflowTriton 模型) 支援 (MLflowTriton 模型)

線上部署

部署是託管執行實際推斷模型所需的一組資源和計算。 單一端點可包含具有不同設定的多個部署。 此設定有助於將端點所呈現的介面與部署中呈現的實作詳細資料分離。 線上端點具有路由機制,可將要求導向端點中的特定部署。

下圖顯示具有藍色和綠色兩個部署的線上端點。 藍色部署會使用具有 CPU SKU 的 VM,並執行第 1 版模型。 綠色部署會使用具有 GPU SKU 的 VM,並執行第 2 版模型。 端點設定為將 90% 的傳入流量路由傳送至藍色部署,而綠色部署會收到剩餘的 10% 流量。

此圖顯示端點將流量分割至兩個部署。

要部署模型,您必須具有:

  • 模型檔案 (或已在工作區中註冊的模型名稱和版本)。
  • 評分 腳本,也就是在指定輸入要求上執行模型的程序代碼。 評分指令碼會接收提交給已部署 Web 服務的資料,並將資料傳遞給模型。 然後,此指令碼會執行模型,並將其回應傳回給用戶端。 評分指令碼是模型專用的,其必須了解模型預期的輸入資料和傳回的輸出資料。
  • 您的 模型執行所在的環境 。 環境可以是具有 Conda 相依性的 Docker 映像,或 Dockerfile。
  • 設定 指定實例類型和調整容量

部署的主要屬性

下表描述部署的主要屬性:

屬性 描述
Name 部署的名稱。
端點名稱 要在其下建立部署的端點名稱。
模型1 要用於部署的模型。 此值可以是工作區中現有已建立版本模型的參考,也可以是內嵌模型規格。 如需如何追蹤及指定模型路徑的詳細資訊,請參閱 識別與 AZUREML_MODEL_DIR相關的模型路徑。
程式碼路徑 本機開發環境上的目錄路徑,包含用來對模型進行評分的所有 Python 原始程式碼。 您可以使用巢狀目錄和套件。
評分指令碼 原始程式碼目錄中評分檔案的相對路徑。 此 Python 程式碼必須具有 init() 函式與 run() 函式。 建立或更新模型之後,即會呼叫 init() 函式 (例如,您可使用該函式來快取記憶體中的模型)。 每次引動端點時會呼叫 run() 函式,以執行實際評分和預測。
環境1 用來裝載模型和程式碼的環境。 此值可以是工作區中現有已建立版本環境的參考,也可以是內嵌環境規格。 注意: Microsoft 會定期修補已知安全性弱點的基底映射。 您必須重新部署端點,才能使用已修補的映像。 如果您提供自己的映像,則須負責加以更新。 如需詳細資訊,請參閱映像修補
執行個體類型 要用於部署的 VM 大小。 如需支援的大小清單,請參閱受控線上端點 SKU 清單
執行個體計數 要用於部署的執行個體數目。 根據您預期的工作負載做為值。 為了達到高可用性,建議您將值至少設定為 3。 我們會額外保留 20% 來執行升級。 如需詳細資訊,請參閱為部署配置的虛擬機器配額

1 有關模型和環境的一些注意事項:

  • 當部署背後的執行個體經歷安全性修補和/或其他復原作業時,部署可以隨時再次參考模型和容器映像 (如環境中所定義)。 如果您在 Azure Container Registry 中使用已註冊的模型或容器映射進行部署,並移除模型或容器映像,則重新映像處理時依賴這些資產的部署可能會失敗。 如果您移除模型或容器映像,請確定相依部署會以替代模型或容器映射重新建立或更新。
  • 環境所參考的容器登錄可以是私人的,但前提是端點身分識別具有透過 Microsoft Entra 驗證和 Azure RBAC 存取該容器登錄的權限。 基於相同原因,不支援 Azure Container Registry 以外的私人 Docker 登錄。

若要了解如何使用 CLI、SDK、Studio 和 ARM 範本部署線上端點,請參閱使用線上端點部署 ML 模型

識別與 AZUREML_MODEL_DIR 相關的模型路徑

將模型部署至 Azure Machine Learning 時,您必須指定想要部署為部署設定一部分的模型所在的位置。 在 Azure Machine Learning 中,會使用 AZUREML_MODEL_DIR 環境變數來追蹤模型的路徑。 藉由識別與 AZUREML_MODEL_DIR 相關的模型路徑,便可以部署儲存在本機電腦上的一或多個模型,或部署已在 Azure Machine Learning 工作區中註冊的模型。

為了說明,我們會在前兩個案例 (部署儲存在本機的單一模型或多個模型) 中參考下列本機資料夾結構:

顯示包含多個模型的資料夾結構的螢幕快照。

在部署中使用單一本機模型

若要在部署中使用您在本機電腦上擁有的單一模型,請在部署 YAML 中指定 modelpath。 以下是路徑為 /Downloads/multi-models-sample/models/model_1/v1/sample_m1.pkl 的部署 YAML 範例:

$schema: https://azuremlschemas.azureedge.net/latest/managedOnlineDeployment.schema.json 
name: blue 
endpoint_name: my-endpoint 
model: 
  path: /Downloads/multi-models-sample/models/model_1/v1/sample_m1.pkl 
code_configuration: 
  code: ../../model-1/onlinescoring/ 
  scoring_script: score.py 
environment:  
  conda_file: ../../model-1/environment/conda.yml 
  image: mcr.microsoft.com/azureml/openmpi4.1.0-ubuntu20.04:latest 
instance_type: Standard_DS3_v2 
instance_count: 1 

建立部署後,環境變數 AZUREML_MODEL_DIR 會指向 Azure 內模型儲存所在的儲存體位置。 例如,/var/azureml-app/azureml-models/81b3c48bbf62360c7edbbe9b280b9025/1 會包含模型 sample_m1.pkl

在您的評分指令碼 (score.py) 內,您可以在 init() 函式中載入模型 (在此範例中為 sample_m1.pkl):

def init(): 
    model_path = os.path.join(str(os.getenv("AZUREML_MODEL_DIR")), "sample_m1.pkl") 
    model = joblib.load(model_path) 

在部署中使用多個本機模型

雖然 Azure CLI、Python SDK 和其他用戶端工具只能讓您在部署定義中為每個部署指定一個模型,但您仍然可以在部署中使用多個模型,方法是將包含所有模型的模型資料夾註冊為檔案或子目錄。

在先前的範例資料夾結構中,您會注意到 models 資料夾中有多個模型。 在部署 YAML 中,您可以指定 models 資料夾的路徑,如下所示:

$schema: https://azuremlschemas.azureedge.net/latest/managedOnlineDeployment.schema.json 
name: blue 
endpoint_name: my-endpoint 
model: 
  path: /Downloads/multi-models-sample/models/ 
code_configuration: 
  code: ../../model-1/onlinescoring/ 
  scoring_script: score.py 
environment:  
  conda_file: ../../model-1/environment/conda.yml 
  image: mcr.microsoft.com/azureml/openmpi4.1.0-ubuntu20.04:latest 
instance_type: Standard_DS3_v2 
instance_count: 1 

建立部署後,環境變數 AZUREML_MODEL_DIR 會指向 Azure 內模型儲存所在的儲存體位置。 例如,/var/azureml-app/azureml-models/81b3c48bbf62360c7edbbe9b280b9025/1 會包含模型和檔案結構。

在此範例中,AZUREML_MODEL_DIR 資料夾的內容看起來會像這樣:

多個模型儲存位置資料夾結構的螢幕快照。

在您的評分指令碼 (score.py) 內,您可以在 init() 函式中載入模型。 下列程式碼會載入 sample_m1.pkl 模型:

def init(): 
    model_path = os.path.join(str(os.getenv("AZUREML_MODEL_DIR")), "models","model_1","v1", "sample_m1.pkl ") 
    model = joblib.load(model_path) 

如需如何將多個模型部署至一個部署的範例,請參閱將多個模型部署到一個部署 (CLI 範例)將多個模型部署到一個部署 (SDK 範例)

提示

如果您有超過 1500 個檔案要註冊,請考慮在註冊模型時將檔案或子目錄壓縮為 .tar.gz。 若要取用模型,您可以在評分指令碼的 init() 函式中解壓縮檔案或子目錄。 或者,當您註冊模型時,將 azureml.unpack 屬性設定為 True,以自動解壓縮檔案或子目錄。 不論是哪一種情況,一旦進入初始化階段便會進行解壓縮。

在部署中使用已在 Azure Machine Learning 工作區中註冊的模型

若要使用已在 Azure Machine Learning 工作區中註冊的一或多個模型,請在部署 YAML 中指定已註冊模型的名稱。 例如,下列部署 YAML 設定會將已註冊的 model 名稱指定為 azureml:local-multimodel:3

$schema: https://azuremlschemas.azureedge.net/latest/managedOnlineDeployment.schema.json 
name: blue 
endpoint_name: my-endpoint 
model: azureml:local-multimodel:3 
code_configuration: 
  code: ../../model-1/onlinescoring/ 
  scoring_script: score.py 
environment:  
  conda_file: ../../model-1/environment/conda.yml 
  image: mcr.microsoft.com/azureml/openmpi4.1.0-ubuntu20.04:latest 
instance_type: Standard_DS3_v2 
instance_count: 1 

在此範例中,請考慮到 local-multimodel:3 包含下列模型成品,而您可以從 Azure Machine Learning 工作室中的 [模型] 索引標籤檢視這些成品:

資料夾結構的螢幕快照,其中顯示已註冊模型的模型成品。

建立部署後,環境變數 AZUREML_MODEL_DIR 會指向 Azure 內模型儲存所在的儲存體位置。 例如,/var/azureml-app/azureml-models/local-multimodel/3 會包含模型和檔案結構。 AZUREML_MODEL_DIR 會指向包含模型成品根目錄的資料夾。 根據此範例,AZUREML_MODEL_DIR 資料夾的內容看起來會像這樣:

顯示多個模型的資料夾結構的螢幕快照。

在您的評分指令碼 (score.py) 內,您可以在 init() 函式中載入模型。 例如,載入 diabetes.sav 模型:

def init(): 
    model_path = os.path.join(str(os.getenv("AZUREML_MODEL_DIR"), "models", "diabetes", "1", "diabetes.sav") 
    model = joblib.load(model_path) 

為部署配置的虛擬機器配額

針對受控線上端點,Azure Machine Learning 會保留 20% 的計算資源,以在某些 VM SKU 上執行升級。 如果您在部署中要求這些 VM SKU 的指定實例數目,您必須有可用的配額 ceil(1.2 * number of instances requested for deployment) * number of cores for the VM SKU ,以避免收到錯誤。 例如,如果您在部署中要求 10 個 Standard_DS3_v2 VM 實例(隨附四個核心),則應該有 48 個核心 (12 instances * 4 cores) 可用的配額。 此額外配額會保留給系統起始的作業,例如操作系統升級和 VM 復原,除非執行這類作業,否則不會產生成本。

有某些 VM SKU 不必額外保留配額。 若要檢視完整清單,請參閱受控線上端點 SKU 清單

若要檢視使用量並要求增加配額,請參閱在 Azure 入口網站中檢視您的使用量和配額。 若要檢視執行受控在線端點的成本,請參閱 檢視受控在線端點的成本。

Azure Machine Learning 提供了共用配額集區供所有使用者存取配額以進行一定時間的測試。 當您使用 Studio 將 Llama 模型 (從模型目錄) 部署到受控在線端點時,Azure 機器學習 可讓您短暫存取此共用配額。

若要部署 Llama-2-70b 或 Llama-2-70b-chat 模型,您必須先擁有 Enterprise 合約 訂用帳戶,才能使用共用配額進行部署。 如需如何使用共用配額來部署線上端點的詳細資訊,請參閱如何使用工作室部署基礎模型

如需 Azure 機器學習 中資源配額和限制的詳細資訊,請參閱使用 Azure 機器學習 管理及增加資源的配額和限制。

針對程式設計者和非程式設計者的部署

針對程式設計者和非程式設計者,Azure Machine Learning 提供將模型部署至線上端點的幾個選項,包括無程式碼部署、低程式碼部署以及自備容器 (BYOC) 部署

  • 無程式碼部署透過 MLflow 和 Triton 為常見架構 (例如 scikit-learn、TensorFlow、PyTorch 和 ONNX) 提供現成可用的推斷功能。
  • 低程式代碼部署 可讓您提供最少的程式碼,以及用於部署的機器學習模型。
  • BYOC 部署可讓您使用幾乎任何容器來執行線上端點。 您可以使用所有 Azure Machine Learning 平台功能 (例如自動調整、GitOps、偵錯和安全推出) 來管理 MLOps 管線。

下表強調線上部署選項的主要層面:

無程式碼 低程式碼 BYOC
摘要 透過 MLflow 和 Triton 對常見架構 (例如 scikit-learn、TensorFlow、PyTorch 和 ONNX) 使用現成可用的推斷功能。 如需詳細資訊,請參閱將 MLflow 模型部署至線上端點 針對常見架構使用安全、公開發行的策展映像,每兩週更新一次以解決弱點。 您提供評分指令碼和/或 Python 相依性。 如需詳細資訊,請參閱 Azure Machine Learning 策展環境 您可以透過 Azure Machine Learning 對自訂映像的支援,提供完整的堆疊。 如需詳細資訊,請參閱使用自訂容器將模型部署至線上端點
自訂基礎映像 否,策展環境會提供這項功能,以便輕鬆部署。 是和否,您可以選擇使用策展映像或自訂映像。 是,請攜帶可存取的容器映像位置 (例如,docker.io、Azure Container Registry (ACR) 或 Microsoft Container Registry (MCR)) 或可使用 ACR 為您的容器建置/推送的 Dockerfile。
自訂相依性 否,策展環境會提供這項功能,以便輕鬆部署。 是,攜帶模型執行所在的 Azure Machine Learning 環境,可以是具有 Conda 相依性的 Docker 映像或 dockerfile。 是,這會包含在容器映像中。
自訂程式碼 否,系統會自動產生評分指令碼,以便輕鬆部署。 是,攜帶您的評分指令碼。 是,這會包含在容器映像中。

注意

AutoML 執行會自動為使用者建立評分指令碼和相依性,因此您不必撰寫額外的程式碼,即可部署任何 AutoML 模型 (適用於無程式碼部署),或者您也可以根據業務需求修改自動產生的指令碼 (適用於低程式碼部署)。若要了解如何使用 AutoML 模型進行部署,請參閱使用線上端點部署 AutoML 模型

線上端點偵錯

強烈建議您在本機測試您的端點,以在部署至 Azure 之前驗證和偵錯您的程式代碼和組態。 Azure CLI 和 Python SDK 支援本機端點和部署,Azure Machine Learning 工作室和 ARM 範本則不支援。

Azure Machine Learning 提供了多種在本機和使用容器記錄對線上端點偵錯的方法。

使用 Azure 機器學習 推斷 HTTP 伺服器的本機偵錯

您可以使用 Azure Machine Learning 推斷 HTTP 伺服器,在本機執行評分指令碼偵錯。 HTTP 伺服器是 Python 套件,可將評分函式公開為 HTTP 端點,並將 Flask 伺服器程式碼和相依性包裝成單一套件。 其包含在使用 Azure Machine Learning 部署模型時用於推斷的預建 Docker 映像。 單獨使用套件,您可以在本機部署模型以供生產環境使用,而且也可以在本機開發環境中輕鬆驗證評分 (輸入) 指令碼。 如果評分指令碼發生問題,伺服器會傳回錯誤以及發生錯誤的位置。 您也可以使用 Visual Studio Code 搭配 Azure Machine Learning 推斷 HTTP 伺服器進行偵錯。

提示

您可以使用 Azure 機器學習 推斷 HTTP 伺服器 Python 套件,在本機偵錯評分腳本,而不需要 Docker 引擎。 使用推斷伺服器進行偵錯可協助您先偵錯評分指令碼再部署至本機端點,以在不受部署容器設定影響的情況下進行偵錯。

若要深入了解使用 HTTP 伺服器進行偵錯,請參閱使用 Azure Machine Learning 推斷 HTTP 伺服器偵錯評分指令碼

使用本機端點進行本機偵錯

針對本機偵錯,您需要本機部署,即部署至本機 Docker 環境的模型。 在部署至雲端之前,您可以使用此本機部署進行測試和偵錯。 若要在本機部署,您必須安裝並執行 Docker 引擎。 然後,Azure Machine Learning 會建立可模擬 Azure Machine Learning 映像的本機 Docker 映像。 Azure Machine Learning 會在本機建置並執行部署,並快取該映像以執行快速反覆運算。

提示

Docker 引擎通常會在電腦啟動時啟動。 若未啟動,您可針對 Docker 引擎進行疑難排解。 您可以使用 Docker Desktop 之類的用戶端工具來偵錯容器中發生的情況。

本機偵錯的步驟通常包括:

  • 確認本機部署成功
  • 叫用本機端點進行推斷
  • 檢閱記錄以取得叫用作業的輸出

注意

本機端點有下列限制:

  • 支援流量規則、驗證或探查設定。
  • 其只會為每個端點支援一個部署。
  • 其只支援本機模型檔案和具有本機 conda 檔案的環境。 如果您想要測試已註冊的模型,請先使用 CLISDK 下載這些模型,再於部署定義中使用 path 來參考父資料夾。 如果您想要測試已註冊的環境,請檢查 Azure Machine Learning 工作室 中的環境內容,並準備要使用的本機 conda 檔案。

若要深入瞭解本機偵錯,請參閱 使用本機端點在本機部署和偵錯。

使用本機端點和 Visual Studio Code 進行本機偵錯 (預覽)

重要

此功能目前處於公開預覽。 此預覽版本沒有服務等級協定,不建議用於處理生產工作負載。 可能不支援特定功能,或可能已經限制功能。

如需詳細資訊,請參閱 Microsoft Azure 預覽版增補使用條款

如同本機偵錯,您必須先安裝並執行 Docker 引擎,然後將模型部署至本機 Docker 環境。 當您完成本機部署後,Azure Machine Learning 本機端點會使用 Docker 和 Visual Studio Code 開發容器 (開發容器) 來建置和設定本機偵錯環境。 開發容器可讓您從 Docker 容器內部利用 Visual Studio Code 功能 (例如互動式偵錯)。

若要深入了解在 VS Code 中以互動方式偵錯線上端點,請參閱在 Visual Studio Code 中從本機偵錯線上端點

使用容器記錄進行偵錯

針對部署,您無法直接存取部署模型的 VM。 不過,您可以從 VM 上執行的某些容器中取得記錄。 您可以從下列兩種容器類型中取得紀錄:

  • 推斷伺服器:記錄中包含主控台記錄 (來自推斷伺服器),其中含有來自評分指令碼 (score.py 指令碼) 的 print/logging 函式輸出。
  • 儲存體初始設定式:這些記錄包含是否已成功將程式碼和模型資料下載至容器的資訊。 該容器會在推斷伺服器容器開始執行之前執行。

若要深入了解使用容器記錄進行偵錯,請參閱取得容器記錄

流量路由和鏡像至線上部署

回想一下,單一線上端點可以有多個部署。 當端點接收傳入流量 (或要求) 時,可以將部分流量百分比路由傳送至每個部署,如原生藍/綠部署策略中所使用的比例。 其也可以將流量從一個部署鏡像 (或複製) 到另一個部署,亦稱為流量鏡像或陰影。

藍/綠部署的流量路由傳送

藍/綠部署是一種部署策略,可讓您在完全推出新部署之前,先向一小部分使用者或要求推出新部署 (綠色部署)。 端點可以實現負載平衡,將特定百分比的流量配置給每個部署,所有部署的總配置最多可達 100%。

提示

要求可以包含 azureml-model-deployment 的 HTTP 標頭,以略過設定的流量負載平衡。 將標頭值設為您想將要求路由傳送的目標部署名稱。

下圖顯示 Azure Machine Learning 工作室中的設定,用於配置藍色和綠色部署之間的流量。

顯示滑桿介面以設定部署之間流量配置的螢幕快照。

此流量配置會依下圖所示路由傳送流量,其中 10% 的流量會進入綠色部署,而 90% 的流量則會進入藍色部署。

此圖顯示端點將流量分割至兩個部署。

流量鏡像至線上部署

端點也可以將流量從一個部署鏡像 (或複製) 到另一個部署。 當您想要使用生產流量測試新部署,而不影響客戶從現有部署收到的結果時,流量鏡像 (亦稱為陰影測試) 相當實用。 例如,在實作藍/綠部署 (100% 的流量會路由傳送至藍色部署) 時將 10% 的流量鏡像到綠色部署,此時鏡像到綠色部署的流量結果不會傳回至用戶端,但會記錄計量和記錄。

此圖顯示端點鏡像至部署的流量。

若要了解如何使用流量鏡像,請參閱線上端點的安全推出

Azure Machine Learning 中關於線上端點的更多功能

驗證和加密

  • 驗證:金鑰和 Azure Machine Learning 權杖
  • 受控識別:使用者指派和系統指派
  • 端點叫用的預設 SSL

自動調整規模

自動調整會自動執行正確的資源量,以處理應用程式的負載。 受控端點透過與 Azure 監視器自動調整功能的整合,支援自動調整。 您可設定以計量為基礎的調整 (例如:CPU 使用率 > 70%)、以排程為基礎的調整 (例如:尖峰上班時間的調整規則) 或上述兩者的組合。

顯示自動調整彈性提供最小和最大實例之間的螢幕快照,視規則而定。

若要了解如何設定自動調整,請參閱如何自動調整線上端點

受管理的網路隔離

將機器學習模型部署至受控線上端點時,您可以使用私人端點來保護與線上端點的通訊。

您可以分別為工作區和其他服務設定輸入評分要求和輸出通訊的安全性。 輸入通訊會使用 Azure Machine Learning 工作區的私人端點。 輸出通訊使用為工作區受控虛擬網路所建立的私人端點。

如需詳細資訊,請參閱受控線上端點的網路隔離

監視線上端點和部署

透過與 Azure 監視器整合,可以監視 Azure Machine Learning 端點。 此整合可讓您檢視圖表中的計量、設定警示、從記錄資料表查詢、使用 Application Insights 分析使用者容器的事件等。

  • 計量:使用 Azure 監視器來追蹤各種端點計量,例如要求延遲,以及向下切入至部署或狀態層級。 您也可以追蹤部署層級計量 (例如 CPU/GPU 使用率),並向下切入至執行個體層級。 Azure 監視器可讓您在圖表中追蹤這些計量,以及設定儀表板和警示以進一步分析。

  • 記錄:將計量傳送至 Log Analytics 工作區,在此處您可以使用 Kusto 查詢語法來查詢記錄。 您也可以將計量傳送至儲存體帳戶和/或事件中樞,以進一步處理。 此外,您可以對線上端點相關事件、流量和容器記錄使用專用記錄資料表。 Kusto 查詢可用來聯結多個資料表並進行複雜的分析。

  • Application Insights:策展環境包含與 Application Insights 的整合,而您可以在建立線上部署時啟用或停用此整合。 內建計量和記錄會傳送至 Application Insights,您可以使用其內建功能 (例如即時計量、交易搜尋、失敗和效能) 進行進一步分析。

如需監視功能的詳細資訊,請參閱監視線上端點

線上部署中的秘密插入 (預覽)

線上部署內容中的秘密插入是從秘密存放區擷取秘密 (例如 API 金鑰),並將其插入使用者容器 (在線上部署內執行) 中的流程。 最後,您可以透過環境變數存取秘密,從而讓執行評分指令碼的推斷伺服器或使用 BYOC (自備容器) 部署方法帶來的推斷堆疊,能夠安全地取用秘密。

有兩種方式可插入秘密。 您可以使用受控識別自行插入秘密,也可以使用秘密插入功能。 若要深入了解插入秘密的方式,請參閱線上端點中的秘密插入 (預覽)

下一步