Azure Machine Learning 中的計算目標是什麼?
計算目標是指定的計算資源或環境,可讓您在其中執行定型指令碼或託管服務部署。 此位置可能是您的本機電腦或雲端式計算資源。 使用計算目標可讓您輕鬆地在稍後變更計算環境,而無須變更程式碼。
在一般模型開發生命週期中,您可能會:
- 從少量資料開始著手開發和試驗。 在這個階段中,請使用您的本機環境做為計算目標,例如本機電腦或雲端式虛擬機器 (VM)。
- 擴大為大型資料,或使用其中一種定型計算目標執行分散式定型。
- 當模型就緒後,請將其部署至具有其中一個部署計算目標的 Web 裝載環境。
您用於計算目標的計算資源會附加至工作區。 本機電腦以外的計算資源會由工作區的使用者共用。
定型計算目標
Azure Machine Learning 在不同計算目標上提供不同的支援。 一般模型開發生命週期會先從少量的資料開始開發和試驗。 在這個階段,我們建議您使用本機環境,例如您的本機電腦或雲端式 VM。 當您在較大的資料集上相應增加訓練或執行分散式定型時,請使用Azure Machine Learning計算來建立每次提交作業時自動調整的單一或多節點叢集。 您也可以附加自己的計算資源,但不同案例的支援可能會有所差異。
計算目標皆可重複用於多個訓練作業。 例如,將遠端 VM 連結至您的工作區之後,您可以將其重複用於多個作業。 針對機器學習管線,請針對每個計算目標使用適當的管線步驟。
您可以將下列任何資源用於大部分作業的定型計算目標。 並非所有資源都可以用於自動化機器學習、機器學習管線或設計工具。 Azure Databricks 可以用來做為本機執行和機器學習管線的定型資源,但不能做為其他定型的遠端目標。
訓練 目標 | 自動化機器學習 | 機器學習管線 | Azure Machine Learning 設計工具 |
---|---|---|---|
本機電腦 | 是 | ||
Azure Machine Learning 計算叢集 | 是 | 是 | 是 |
Azure Machine Learning 計算執行個體 | 是 (透過 SDK) | 是 | 是 |
Azure Machine Learning Kubernetes | 是 | 是 | 是 |
遠端虛擬機器 | 是 | 是 | |
Apache Spark 集區 (預覽) | 是 (僅限 SDK 本機模式) | 是 | |
Azure Databricks | 是 (僅限 SDK 本機模式) | 是 | |
Azure Data Lake Analytics | 是 | ||
Azure HDInsight | 是 | ||
Azure Batch | 是 |
深入瞭解如何將 定型作業提交至計算目標。
推斷用的計算目標
執行推斷時,Azure Machine Learning 會建立 Docker 容器來託管模型,以及使用它所需的相關聯資源。 然後,系統會將此容器用於計算目標。
用來裝載模型的計算目標會影響已部署端點的成本和可用性。 使用此資料表選擇適當的計算目標。
計算目標 | 用於 | GPU 支援 | FPGA 支援 | 描述 |
---|---|---|---|---|
本機 Web 服務 | 測試/偵錯 | 用於有限的測試和疑難排解。 硬體加速取決於本機系統中的程式庫使用情況。 | ||
Azure Machine Learning Kubernetes | 即時推斷 批次推斷 |
是 | N/A | 在內部部署、雲端和邊緣 Kubernetes 叢集上執行推斷工作負載。 |
Azure 容器執行個體 | 即時推斷 建議僅用於開發/測試目的。 |
用於需要少於 48 GB RAM 的低規模 CPU 型工作負載。 不需要您管理叢集。 在設計工具中支援。 |
||
Azure Machine Learning 計算叢集 | 批次推斷 | 是 (機器學習管線) | 在無伺服器計算上執行批次評分。 支援一般和低優先順序的 VM。 不支援即時推斷。 |
注意
雖然本機和Azure Machine Learning計算叢集等計算目標都支援 GPU 進行定型和實驗,但在部署為 Web 服務時,僅支援使用 GPU 進行推斷Azure Machine Learning Kubernetes。
僅在 Azure Machine Learning Compute 中支援使用 GPU 進行推斷當使用機器學習管線進行評分時。
選擇叢集 SKU 時,請先進行擴大再擴增。從擁有模型所需 RAM 的 150% 的電腦開始,分析結果並找出具有所需效能的電腦。 了解這點之後,請增加電腦數目,以符合您的同時推斷需求。
注意
- 容器執行個體僅適用於小於 1GB 的小型模型。
Azure Machine Learning Compute (受控)
受控計算資源是由 Azure Machine Learning 所建立和管理。 此計算已針對機器學習工作負載進行最佳化。 只有 Azure Machine Learning Compute 叢集和計算執行個體為受控的計算。
您可從下列來源建立 Azure Machine Learning Compute 執行個體或計算叢集:
- Azure Machine Learning Studio。
- Python SDK 和 Azure CLI:
- Azure Resource Manager 範本。 如需範例範本,請參閱建立 Azure Machine Learning 計算叢集。
建立時,這些計算資源會自動納入您的工作區,而與其他類型的計算目標有所不同。
功能 | 計算叢集 | 計算執行個體 |
---|---|---|
單一或多節點叢集 | ✓ | 單一節點叢集 |
每次提交作業時自動調整 | ✓ | |
自動叢集管理和工作排程 | ✓ | ✓ |
同時支援 CPU 和 GPU 資源 | ✓ | ✓ |
注意
當計算叢集閒置時,系統會自動調整至 0 個節點,因此您無須支付未使用的費用。 計算「執行個體」則會一律開啟,且不會自動調整。 當您未使用時應停止計算執行個體,以避免產生額外成本。
支援的 VM 系列和大小
當您在 Azure Machine Learning 中為受控計算資源選取節點大小時,可從 Azure 提供的選取 VM 大小中選擇。 Azure 針對不同的工作負載,提供眾多適用於 Linux 和 Windows 的大小。 如要深入瞭解,請參閱VM 類型和大小。
選擇 VM 大小時有幾個例外狀況和限制:
- Azure Machine Learning 不支援部分 VM 系列。
- 有一些 VM 系列,例如 GPU 和其他特殊 SKU,一開始可能不會出現在可用的 VM 清單中。 但您仍然可以使用它們,一旦您要求配額變更。 如需要求配額的詳細資訊,請參閱 要求配額增加。 請參閱下表以深入瞭解支援的系列。
支援的 VM 系列 | 類別 | 支援者 |
---|---|---|
DDSv4 | 一般用途 | 計算叢集和執行個體 |
Dv2 | 一般用途 | 計算叢集和執行個體 |
Dv3 | 一般用途 | 計算叢集和執行個體 |
DSv2 | 一般用途 | 計算叢集和執行個體 |
DSv3 | 一般用途 | 計算叢集和執行個體 |
EAv4 | 記憶體最佳化 | 計算叢集和執行個體 |
Ev3 | 記憶體最佳化 | 計算叢集和執行個體 |
ESv3 | 記憶體最佳化 | 計算叢集和執行個體 |
FSv2 | 計算最佳化 | 計算叢集和執行個體 |
FX | 計算最佳化 | 計算叢集 |
H | 高效能計算 | 計算叢集和執行個體 |
HB | 高效能計算 | 計算叢集和執行個體 |
HBv2 | 高效能計算 | 計算叢集和執行個體 |
HBv3 | 高效能計算 | 計算叢集和執行個體 |
HC | 高效能計算 | 計算叢集和執行個體 |
LSv2 | 儲存體最佳化 | 計算叢集和執行個體 |
M | 記憶體最佳化 | 計算叢集和執行個體 |
NC | GPU | 計算叢集和執行個體 |
NC 促銷 | GPU | 計算叢集和執行個體 |
NCv2 | GPU | 計算叢集和執行個體 |
NCv3 | GPU | 計算叢集和執行個體 |
ND | GPU | 計算叢集和執行個體 |
NDv2 | GPU | 計算叢集和執行個體 |
NV | GPU | 計算叢集和執行個體 |
NVv3 | GPU | 計算叢集和執行個體 |
NCasT4_v3 | GPU | 計算叢集和執行個體 |
NDasrA100_v4 | GPU | 計算叢集和執行個體 |
雖然 Azure Machine Learning 支援這些 VM 系列,但它們可能無法在所有 Azure 區域中使用。 如要確認 VM 系列是否適用,請參閱各區域提供的產品。
注意
Azure Machine Learning 不支援 Azure Compute 支援的所有 VM 大小。 如要列出可用的 VM 大小,請使用下列其中一種方法:
若使用啟用 GPU 的計算目標,請務必確保在定型環境中已安裝正確的 CUDA 驅動程式。 使用下表判斷要使用的正確 CUDA 版本:
GPU 架構 | Azure VM 系列 | 支援的 CUDA 版本 |
---|---|---|
Ampere | NDA100_v4 | 11.0+ |
Turing | NCT4_v3 | 10.0 + |
Volta | NCv3, NDv2 | 9.0+ |
Pascal | NCv2, ND | 9.0+ |
Maxwell | NV, NVv3 | 9.0+ |
Kepler | NC, NC 促銷 | 9.0+ |
除了確保 CUDA 版本和硬體相容之外,也請確保 CUDA 版本與您所使用的機器學習架構版本相容:
- 針對 PyTorch,您可以造訪 Pytorch 的舊版頁面來檢查相容性。
- 針對 Tensorflow,您可以造訪來自來源頁面的 Tensorflow 組建來檢查相容性。
計算隔離
Azure Machine Learning 計算所提供的 VM 大小不受特定硬體類型限制,且為單一客戶專用。 獨立 VM 大小最適合需要與其他客戶工作負載高度隔離的工作負載,原因包括符合合規性和法規需求。 使用隔離大小可確保只有您的 VM 會在該特定伺服器執行個體上執行。
目前的隔離 VM 供應項目包括:
- Standard_M128ms
- Standard_F72s_v2
- Standard_NC24s_v3
- Standard_NC24rs_v3*
*支援 RDMA
如要深入瞭解隔離,請參閱 Azure 公用雲端中的隔離。
非受控計算
非受控計算目標「並非」由 Azure Machine Learning 所管理。 您可以在 Azure Machine Learning 外部建立這種類型的計算目標,然後將其附加至工作區。 非受控計算目標可能需要額外的步驟來進行維護,或針對機器學習工作負載提升效能。
Azure Machine Learning 支援下列非受控計算類型:
- 您的本機電腦
- 遠端虛擬機器
- Azure HDInsight
- Azure Batch
- Azure Databricks
- Azure Data Lake Analytics
- Azure 容器執行個體
- Kubernetes
如需詳細資訊,請參閱針對模型定型與部署設定計算目標。
後續步驟
了解如何: