共用方式為


Azure Well-Architected Framework 檢視 Azure Machine Learning 的觀點

Azure Machine Learning 是受控雲端服務,可用來定型、部署和管理機器學習模型。 定型和部署模型有各種不同的選擇和設定,包括計算 SKU 和組態。 您可以將機器學習模型部署到 Machine Learning 計算或其他 Azure 服務,例如 Azure Kubernetes Service (AKS) 。

本文提供在您使用 Machine Learning 來定型、部署和管理機器學習模型時做出明智的決策的架構建議。 指導方針是以 Azure Well-Architected Framework 要素為基礎。

重要

如何使用本指南

每個區段都有一個 設計檢查清單 ,其中顯示相關的架構區域,以及當地語系化為技術範圍的設計策略。

此外,也包含可協助具體化這些策略的技術功能 建議 。 建議並不代表適用於 Machine Learning 及其相依性的所有組態完整清單。 相反地,他們會列出對應至設計觀點的主要建議。 使用建議來建置概念證明,或將現有環境優化。

基本架構 基準 OpenAI 端對端聊天參考架構 示範許多重要建議。

技術範圍

此檢閱著重於這些 Azure 資源的相互關聯決策:

  • Machine Learning
  • Machine Learning 計算叢集
  • Machine Learning 計算實例

檢閱不會解決連線的資源,例如數據存放區或 Azure 金鑰保存庫。

可靠性

可靠性要素的目的是要 藉由建置足夠的復原能力,以及從失敗快速復原的能力,來提供持續的功能。

可靠性設計原則提供針對個別元件、系統流程和整個系統套用的高階設計策略。

設計檢查清單

根據 可靠性的設計檢閱檢查清單 開始您的設計策略,並判斷其與業務需求的相關性。 擴充策略,視需要包含更多方法。

  • 復原:將模型部署到支援可用性區域的環境,例如 AKS。 藉由確保部署分散到可用性區域,您可確保即使在資料中心失敗時仍可使用部署。 如需增強的可靠性與可用性,請考慮多區域部署拓撲。

  • 復原能力:請確定您有足夠的計算來訓練和推斷。 透過資源規劃,確定您的計算 SKU 和調整設定符合工作負載的需求。

  • 復原:隔離用於探勘工作的Machine Learning工作區,以及用於生產環境的工作區。

  • 復原能力:使用受控在線端點進行推斷時,請使用藍色-綠色部署之類的發行策略,將停機時間降到最低,並降低與部署新版本相關聯的風險。

  • 商務需求:根據可靠性需求,選取您使用計算叢集、計算實例和外部化推斷主機,考慮服務等級協定 (SLA) 作為因素。

  • 復原:確定您在定型大型模型時具有自我修復功能,例如Machine Learning支援的檢查點功能。

  • 復原:確定您已定義復原策略。 Machine Learning 沒有自動故障轉移。 因此,您必須設計包含工作區及其所有相依性的策略,例如 金鑰保存庫、Azure 記憶體和 Azure Container Registry。

建議
建議 優點
多區域模型部署:如需增強的可靠性與可用性,請考慮盡可能使用多區域部署環境。 多區域部署可確保即使某個區域遇到中斷,您的 Machine Learning 工作負載仍會繼續執行。 多區域部署可改善跨區域的負載分佈,進而提升位於不同地理區域之使用者的效能。 如需詳細資訊,請參閱 商務持續性和災害復原的故障轉移
模型定型復原:使用 Machine Learning 支援的檢查點功能,包括適用於 PyTorch 的 Azure 容器、TensorFlow 估算器類別,或支援模型檢查點的 FileDataset 類別。 模型檢查點會在定型期間定期儲存機器學習模型的狀態,以便在中斷、失敗或終止時還原。 如需詳細資訊,請參閱 使用 Nebula 提升檢查點速度並降低成本
針對計算叢集使用專用虛擬機層:使用專用虛擬機層進行批次推斷,以確保不會先佔您的批次作業。 低優先順序的虛擬機價格較低,但優先使用。 未先佔使用專用虛擬機層的叢集。

安全性

安全性要素的目的是要為工作負載提供 機密性、完整性和可用性 保證。

安全性設計原則提供高階設計策略,可藉由將方法套用至機器學習技術設計,以達成這些目標。

設計檢查清單

根據 安全性的設計檢閱檢查清單 開始您的設計策略,並識別弱點和控件以改善安全性狀態。 擴充策略,視需要包含更多方法。

  • 可用性:藉由限制對虛擬網路內資源的工作區存取,以減少Machine Learning工作區的攻擊面。

  • 機密性:藉由實作網路隔離,防止從Machine Learning工作區外泄數據。 請確定已明確核准所有外部資源的存取權,且不允許存取所有其他外部資源。

  • 完整性:實作訪問控制,以根據最低許可權原則驗證和授權外部資源的Machine Learning工作區。

  • 完整性:根據特定使用案例或項目來設定工作區,以實作Machine Learning工作區的使用案例隔離。 此方法遵循最低許可權的原則,方法是確保只有需要存取使用案例或專案的數據和實驗資產的個人才能存取工作區。

  • 完整性:規範基礎模型的存取。 請確定只有已核准的登錄才能存取模型登錄中的模型。

  • 完整性:規範已核准之容器登錄的存取。 確定 Machine Learning 計算只能存取核准的登錄。

  • 完整性:規範可在 Machine Learning 計算上執行的 Python 套件。 調整 Python 套件可確保只執行受信任的套件。

  • 完整性:需要用來在Machine Learning計算環境中定型的程式代碼才能簽署。 需要程式代碼簽署可確保執行的程式代碼來自受信任的來源,且尚未遭到竄改。

  • 機密性:遵循角色型訪問控制的最小許可權原則, (RBAC) Machine Learning 工作區和相關資源,例如工作區記憶體帳戶,以確保個人只有其角色的必要許可權,進而將潛在的安全性風險降至最低。

  • 完整性:為待用數據和傳輸中的數據實作加密,以建立信任和已驗證的存取權。

建議
建議 優點
安全性基準:若要增強Machine Learning服務的安全性與合規性,請 套用適用於Machine Learning的 Azure 安全性基準 安全性基準會針對網路安全性、身分識別管理、數據保護和特殊許可權存取等重要安全性層面提供量身打造的指引。 為了獲得最佳安全性,請使用 Microsoft Defender for Cloud 來監視這些層面。
受控虛擬網路隔離:設定 Machine Learning 的 受控虛擬網路隔離 。 當您啟用受控虛擬網路隔離時,會為工作區建立受控虛擬網路。 您為工作區建立的受控計算資源會自動使用此受控虛擬網路。 如果您無法實作受控虛擬網路隔離,則必須遵循 網路拓撲建議 ,將計算區隔到解決方案中其餘資源的專用子網,包括工作區資源的私人端點。 受控虛擬網路隔離可藉由隔離您的工作區與其他網路來增強安全性,降低未經授權的存取風險。 在組織內另一個網路中發生缺口的案例中,Machine Learning 工作區的隔離網路仍不會受到影響,可保護您的機器學習工作負載。
Machine Learning 網路隔離:設定 Machine Learning 工作區 的私人端點 ,並透過該私人端點連線到工作區。 Machine Learning 網路隔離可藉由確保工作區的存取安全且受到控制來增強安全性。 針對您的工作區設定私人端點之後,您便可以將工作區的存取限制為只透過私人IP位址進行。
只允許核准的輸出存取:在Machine Learning工作區上設定 輸出模式 受控輸出存取,以 Allow only approved outbound 將數據外泄的風險降到最低。 針對您需要存取的資源,設定私人端點、服務標籤或完整域名 (FQDN) 。 此設定可將數據外泄的風險降到最低,以改善數據安全性。 啟用此設定后,取得系統存取權的惡意執行者無法將數據傳送至未核准的外部目的地。
相依服務的虛擬網路隔離:使用私人端點設定相依服務,例如記憶體、金鑰保存庫 和 Container Registry,並停用公用存取。 網路隔離藉由將存取 Azure 平臺即服務限制為安全性, (PaaS) 解決方案只限制私人 IP 位址。
受控識別使用受控識別在 Machine Learning與其他服務之間進行驗證。 受控識別可藉由消除儲存認證並手動管理和輪替服務主體的需求來改善安全性。
停用本機驗證:停用Machine Learning計算叢集和實例的 本機驗證 停用本機驗證會增加 Machine Learning 計算的安全性,並提供身分識別和資源認證的集中控制和管理。
停用公用 SSH 埠:將 設定 remoteLoginPortPublicAccessDisabled,確定 Machine Learning 計算叢集上的公用安全殼層 (SSH) 埠已關閉。 如果您使用不同的計算,請套用類似的組態。 停用 SSH 存取有助於防止未經授權的人員取得存取權,並可能造成系統損害,並保護您免於遭受暴力密碼破解攻擊。
請勿布建 Machine Learning 計算的公用 IP 位址:在布建 Machine Learning 計算叢集或計算實例時,將 enableNodePublicIp 設定為 false 。 如果您使用不同的計算,請套用類似的組態。 避免布建公用IP位址,藉由限制未經授權存取計算實例或叢集的可能性來增強安全性。
取得最新的操作系統映像重新建立計算實例以取得最新的操作系統映像 使用最新的映像可確保您維持一致、穩定且安全的環境,包括確保您擁有最新的安全性修補程式。
嚴格的 Machine Learning 工作區訪問控制:使用 Microsoft Entra ID 群組來管理工作區存取,並遵守 RBAC 最低許可權的原則。 嚴格的工作區訪問控制可藉由確保個人只有其角色的必要許可權,來增強安全性。 例如,數據科學家可以存取執行實驗,但無法修改安全性設定,將潛在的安全性風險降至最低。
限制模型類別目錄部署將模型部署限制為特定登錄 將部署從模型目錄限製為特定登錄,可確保您只將模型部署至已核准的登錄。 此方法有助於規範開放原始碼基礎模型的存取。
加密待用數據:請考慮 搭配機器學習使用客戶管理的密鑰 加密待用數據可藉由使用您直接管理的密鑰來加密敏感數據,藉此增強數據安全性。 如果您有管理自己的加密密鑰的法規需求,請使用此功能來符合該需求。
將數據外流的風險降至最低實作數據外洩防護。 例如,建立服務端點原則來篩選輸出虛擬網路流量,並只允許數據外流至特定的 Azure 記憶體帳戶。 藉由限制輸入和輸出需求,將數據外泄的風險降至最低。
Advisor

以下是 Machine Learning 的建議 程式 安全性最佳做法建議的一些範例:

  • 工作區應使用客戶管理的密鑰加密, (CMK) 。
  • 工作區應該使用 Azure Private Link。
  • 工作區應停用公用網路存取。
  • 計算應該位於虛擬網路中。
  • 應重新建立計算實例,以取得最新的軟體更新。
Azure 原則

以下是適用於 Machine Learning 安全性的內建 Azure 原則 定義範例:

成本最佳化

成本優化著重於 偵測支出模式、優先處理重要領域的投資,以及優化其他人 以符合組織的預算,同時符合商務需求。

閱讀 成本優化設計原則 ,以瞭解達成這些目標和技術設計選擇中與在其環境中定型和部署模型相關的必要取捨的方法。

設計檢查清單

根據投資 成本優化的設計檢閱檢查清單 開始設計策略,並微調設計,讓工作負載符合為工作負載配置的預算。 您的設計應該使用正確的 Azure 功能、監視投資,以及尋找經過一段時間優化的機會。

  • 使用量優化:選擇適當的資源,以確保它們符合您的工作負載需求。 例如,在 CPU 或 GPU、各種 SKU 或低優先順序 VM 之間選擇。

  • 使用量優化:確保未使用的計算資源會在閑置時相應減少或關閉,以減少浪費。

  • 使用方式優化:套用原則並設定配額,以符合設計的上限和下限。

  • 使用量優化:測試平行處理定型工作負載,以判斷定型需求是否可以在成本較低的 SKU 上符合。

  • 速率優化:如果您在接下來的一到三年內有良好的使用量估計值,請購買 Azure 保留的虛擬機實例。

  • 監視和優化:在定型模型時監視您的資源使用量,例如CPU和 GPU 使用量。 如果未完全使用資源,請修改您的程式碼,以更妥善地使用資源,或縮小成較小或較便宜的 VM 大小。

建議
建議 優點
優化計算資源:根據您的工作負載需求優化計算資源。 選擇最適合您工作負載的 SKU:
  • 常規用途 – 平衡 CPU 與記憶體比率,適用於所有用途。
  • 計算優化 – 高 CPU 與記憶體比率,適用於大量數學計算。
  • 記憶體優化 – 高記憶體到CPU,適用於記憶體內部計算或資料庫應用程式。
  • M 系列 – 具有大量記憶體和 CPU 的大型機器。
  • GPU – 適用於具有大量變數的模型,可受益於較高的平行處理原則和特製化核心指令。 典型的應用程式包括深度學習、影像或視訊處理、科學模擬、數據採礦,以及利用 GPU 開發架構。 使用多個系列進行測試,並將結果記錄為基準。 隨著您的模型和數據演進,最適當的計算資源可能會變更。 視需要監視運行時間並重新評估。
選取正確的計算非常重要,因為它會直接影響執行工作負載的成本。 選擇 GPU 或高效能 SKU 而沒有適當使用量可能會導致浪費費用,而選擇過低的計算可能會導致冗長的定型時間和效能問題。
優化計算調整設定計算叢集以進行自動調整 ,以確保您只使用所需的專案。

針對定型叢集,請將節點數目下限設定為0,並將節點閑置的時間量設定為適當的時間。 針對較不反覆的實驗,請縮短節省成本的時間。 如需更反覆的實驗,請使用較高的時間來避免在每次變更之後支付相應增加或減少的費用。
設定計算叢集的自動調整,以在使用量很低時相應減少。

將節點數目下限設定為0,讓定型叢集在不使用時相應減少為0。
設定定型終止原則設定提早終止原則 ,以限制定型執行的持續時間或提早終止。 設定終止原則可協助您提早停止執行效能不佳,以節省成本。
針對批次工作負載使用低優先順序的虛擬機:請考慮針對不區分時效且可復原中斷的 批次工作負載使用低優先順序虛擬機 低優先順序虛擬機可讓大量計算能力用於低成本。 他們會利用 Azure 中的剩餘容量。
啟用計算實例的閑置關機:啟用 計算實例的閑置關機 ,或在已知使用 時間時排程開始和停止時間 根據預設,計算實例可供您使用,以累加成本。 設定計算實例在閑置時關閉,或設定排程以節省未使用時的成本。
平行處理訓練工作負載:請考慮 平行處理定型工作負載。 使用 Machine Learning 中的平行元件協助進行測試執行。 平行工作負載可以在多個較小的實例上執行,這可能會節省成本。
Azure 保留的 VM 實例:如果您在接下來的一到三年內有良好的使用量估計值,請購買 Azure 保留的 VM 實例。 當您有良好的使用量估計值時,請利用服務的保留容量選項。 購買 Azure 保留的 VM 實例以預付虛擬機使用量,並提供隨用隨付定價的折扣。 折扣會自動套用至符合保留的虛擬機使用量。

卓越營運

卓越營運主要著重於 開發實務、可觀察性和發行管理的程式。

營運卓越設計原則提供高階設計策略,以達成這些目標,以達到工作負載的操作需求。

設計檢查清單

根據 營運卓越設計檢查清單 開始設計策略,以定義與 Machine Learning 相關的可檢視性、測試和部署程式。

  • 開發標準:利用 Machine Learning 模型目錄和登錄來儲存、版本及共用機器學習資產。

  • 自動化效率:遵循良好的 機器學習作業 (MLOps) 做法。 可能的話,請建置端對端自動化管線,以進行數據準備、定型和評分程式。 在開發中,使用腳本而非筆記本來定型模型,因為腳本更容易整合到自動化管線中。

  • 放心部署:實作基礎結構即程式代碼 (Machine Learning 工作區、計算叢集、計算實例和其他部署環境的 IaC) 。

  • 可檢視性:監視已部署模型的效能,包括數據漂移。

  • 可檢視性:如果您的模型部署至在線端點, 請啟用Application Insights監視在線端點和部署。 監視訓練基礎結構,以確保您符合基準需求。

  • 簡單起見:使用針對 Machine Learning 優化的策劃環境,可用時使用。

建議
建議 優點
將 Machine Learning 工作區實例最小化:盡可能減少工作區數目,以減少維護。 限制工作區數目可減少維護工作和作業成本。 針對需求,例如安全性,您可能需要多個個別的工作區。 盡可能將工作區數目降到最低。
利用模型目錄和登錄:利用 Machine Learning 模型目錄和登錄來儲存、版本及共用機器學習資產。

使用 Machine Learning 模型目錄來協助您實作模型的 A/B 測試和部署。
使用 Machine Learning 模型登錄來儲存和設定機器學習模型的版本,以追蹤變更,並使用用於定型的作業和數據集來維護歷程。

使用 Machine Learning 模型目錄,您的數據科學小組可以探索、評估及微調預先定型的基本機器學習模型。

將版本設定的模型儲存在Machine Learning模型登錄中,支援部署策略,例如 A/B 版本、Canary 版本和復原。
監視模型效能監視已部署模型的效能,並 偵測數據集上的數據漂移 監視已部署的模型可確保您的模型符合效能需求。

監視數據漂移可協助您偵測輸入數據中的變更,進而降低模型的效能。 管理數據漂移可協助您確保模型在一段時間內提供精確的結果。
監視基礎結構:如果您的模型部署至在線端點, 請啟用Application Insights監視在線端點和部署

監視訓練基礎結構,以確保您符合基準需求。

請確定您正在收集 Machine Learning 的資源記錄
監視端點可讓您查看計量,例如要求延遲和每分鐘的要求。 您可以比較效能與基準,並使用這項資訊據以變更計算資源。 如果您要接近配額限制並防止節流,監視網路位元組之類的計量可能會發出警示。

同樣地,監視您的訓練環境會提供您對訓練環境進行變更的資訊。 使用該資訊來決定相應縮小或相應放大、以不同的效能 SKU 相應增加或減少,或選擇 CPU 或 GPU。
策展模型定型環境:使用針對MachineLearning優化的策劃環境。可用時。 策展環境 是Machine Learning所提供的預先建立環境,可加速部署時間並減少部署和訓練延遲。 使用策劃的環境可改善訓練和部署成功率,並避免不必要的映像組建。

適用於 PyTorch 的 Azure 容器等策劃環境也可以針對在 Machine Learning 上定型大型模型進行優化。

效能效率

效能效率是關於 維護用戶體驗,即使 藉由管理容量增加。 此策略包括調整資源、識別和優化潛在的瓶頸,以及優化尖峰效能。

效能效率設計原則提供針對預期使用量達成這些容量目標的高階設計策略。

設計檢查清單

根據 效能效率的設計檢閱檢查清單 ,根據Machine Learning工作負載的重要效能指標來定義基準,開始您的設計策略。

  • 效能目標:判斷模型可接受的定型時間和重新定型頻率。 設定定型時間的清楚目標以及測試,可協助您判斷符合定型時間目標所需的計算資源、CPU 與 GPU 和 CPU SKU。

  • 效能目標:定義已部署模型的可接受的效能目標,包括響應時間、每秒要求數、錯誤率和運行時間。 效能目標可作為已部署模型效率的基準檢驗。 目標可協助您進行 CPU 與 GPU 判斷、CPU SKU 選擇,以及調整需求。

  • 符合容量需求:選擇適合模型定型的計算資源。

  • 符合容量需求:為模型部署選擇正確的計算資源。

  • 符合容量需求:選擇具有自動調整功能的部署環境,以隨著需求變動來新增和移除容量。

  • 達到並維持效能:持續 監視已部署模型的效能、檢閱結果,並採取適當的動作。

  • 達到並維持效能:持續監視已部署模型基礎結構的效能、檢閱結果,以及採取適當的動作。 監視訓練基礎結構,以確保您符合訓練時間的需求。

建議
建議 優點
針對模型定型選取適當的計算服務:如果您需要自動調整,請考慮針對模型定型的計算實例考慮機器學習計算叢集。

根據定型需求優化計算資源。 首先,選擇CPU與 GPU。 默認為 CPU,但針對深度學習、影像或視訊處理或大量數據等工作負載考慮 GPU。 接下來,選擇最適合您工作負載的映射 SKU。

使用測試來選擇計算選項,以在判斷基準時針對定型時間優化成本。
選取正確的計算非常重要,因為它會直接影響定型時間。 選擇正確的 SKU 和 CPU 與 GPU 可確保您的模型定型符合您的需求和效能目標。 選擇過度使用的低效能 SKU 可能會導致冗長的定型時間和效能問題。

計算叢集可藉由相應放大支援水平調整的工作負載,來改善效能。 此方法提供處理不同需求之工作負載的彈性,並可讓您視需要新增或移除機器。
模型部署環境調整:使用部署環境的自動調整功能。 針對 AKS 部署環境,請使用叢集自動調整程式來調整以符合需求。 對於在線端點, 請透過與 Azure 監視器自動調整功能整合來自動調整規模。 自動調整會調整已部署模型的實例數目,以符合需求。
監視模型效能監視已部署模型的效能。 追蹤生產環境中模型的效能,會警示您潛在的問題,例如數據漂移、預測漂移、數據品質,以及特徵屬性漂移。

監視數據漂移可協助您偵測輸入數據中的變更,進而降低模型的效能。 管理數據漂移可協助您確保模型在一段時間內提供精確的結果。
監視基礎結構監視在線端點, 並與監視器整合,以追蹤和監視適當的計量和記錄。 建立在線部署時啟用 Application Insights

監視定型基礎結構,並在定型模型時檢閱資源使用量,例如記憶體和 CPU 或 GPU 使用量,以確保您符合基準需求。
監視端點可讓您查看計量,例如要求延遲和每分鐘的要求。 您可以比較效能與基準,並使用這項資訊據以變更計算資源。 如果您要接近配額限制並防止節流,監視網路位元組之類的計量可能會發出警示。

同樣地,監視您的訓練環境會提供您對訓練環境進行變更的資訊。 使用該資訊來決定相應縮小或相應放大、以不同的效能 SKU 相應增加或減少,或選擇 CPU 或 GPU。

Azure 原則

Azure 提供一組與 Machine Learning 及其相依性相關的大量內建原則。 您可以透過 Azure 原則稽核上述某些建議。 請考慮下列與安全性相關的原則:

請考慮下列與成本優化相關的原則:

請考慮下列與卓越營運相關的原則:

如需完整的治理,請檢閱機器學習 Azure 原則 內建定義

Advisor 建議

Advisor 是個人化的雲端顧問,可協助您依最佳做法來最佳化您的 Azure 部署。 Advisor 建議可協助您改善 Machine Learning 的可靠性、安全性、成本效益、效能和營運卓越。

請考慮下列 建議程式 的安全性建議:

  • 工作區應使用客戶管理的密鑰加密, (CMK) 。
  • 工作區應該使用私人連結。
  • 工作區應停用公用網路存取。
  • 計算應位於虛擬網路中。
  • 應該重新建立計算實例,以取得最新的軟體更新。

請考慮下列 Advisor 建議,以取得卓越營運:

  • 應該啟用Machine Learning工作區中的資源記錄。

下一步

請將這些文章視為示範本文所醒目提示建議的資源。