什麼是 Azure Machine Learning?

Azure Machine Learning 是一種雲端服務,用於加速和管理機器學習專案生命週期:定型和部署模型,以及管理 MLOps。 機器學習專業人員、資料科學家和工程師可以在日常工作流程中使用 Azure Machine Learning:定型和部署模型,以及管理 MLOps。

您可以在 Azure Machine Learning 中建立模型,或使用從開放原始碼平台建立的模型,例如 Pytorch、TensorFlow 或 scikit-learn。 MLOps 工具可協助您監視、重新定型和重新部署模型。

提示

免費試用! 如果您沒有 Azure 訂用帳戶,請在開始前先建立一個免費帳戶。 試用免費或付費版本的 Azure Machine Learning。 即可取得用於 Azure 服務的點數。 信用額度用完之後,您可以保留帳戶並使用免費的 Azure 服務。 除非您明確變更您的設定且同意付費,否則我們絕對不會從您的信用卡收取任何費用。

Azure Machine Learning 的對象?

Azure Machine Learning 適用於在其組織內實作 MLOps 的個人和小組,以在安全且可稽核的生產環境中,將機器學習模型帶入生產環境中。

資料科學家和 ML 工程師將找到可加速和自動化其日常工作流程的工具。 應用程式開發人員將找到可將模型整合至應用程式或服務的工具。 平台開發人員將發現一組強大的工具,由持久的 Azure Resource Manager API 提供支援,用於建置進階 ML 工具。

在 Microsoft Azure 雲端中工作的企業將會找到適用於基礎結構的熟悉安全性和角色型存取控制 (RBAC)。 您可以設定專案以拒絕受保護資料的存取,並選取作業。

機器學習小組的共同作業

機器學習專案通常需要具有各種技能集的小組才能建置和維護。 Azure Machine Learning 具有可協助您啟用共同作業的工具,例如:

  • 共用的筆記本、計算資源、資料和環境
  • 顯示誰進行了變更以及何時進行的追蹤和稽核能力
  • 資產版本設定

適用於開發人員的工具

開發人員在 Azure Machine Learning 中找到熟悉的介面,例如:

工作室 UI

Azure Machine Learning 工作室是適用於專案工作區的圖形化使用者介面。 在工作室中,您可以:

  • 檢視執行、計量、記錄、輸出等等。
  • 撰寫和編輯筆記本和檔案。
  • 管理常用的資產,例如
    • 資料認證
    • 計算
    • 環境
  • 將執行計量、結果和報告視覺化。
  • 將透過開發人員介面撰寫的管線視覺化。
  • 撰寫 AutoML 作業。

此外,設計工具也有拖放介面,可讓您在其中定型和部署模型。

如果您是 ML 工作室 (傳統) 使用者,請了解工作室 (傳統) 淘汰,以及其與 Azure Machine Learning 工作室之間的差異

企業整備和安全性

Azure Machine Learning 會與 Azure 雲端平台整合,以將安全性新增至 ML 專案。

安全性整合包括:

  • 具有網路安全性群組的 Azure 虛擬網路 (Vnet)
  • Azure Key Vault,您可以在其中儲存安全性秘密,例如儲存體帳戶的存取資訊
  • 在 VNet 後方設定的 Azure Container Registry

請參閱教學課程:設定安全工作區

適用於完整解決方案的 Azure 整合

其他與 Azure 服務的整合支援來自端對端的機器學習專案。 包括:

  • 使用 Spark 處理和串流資料的 Azure Synapse Analytics
  • Azure Arc,您可以在其中執行 Kubernetes 環境中的 Azure 服務
  • 儲存體和資料庫選項,例如 Azure SQL Database、Azure 儲存體 Blob 等等
  • Azure App Service,可讓您部署和管理 ML 支援的應用程式

重要

Azure Machine Learning 不會在您部署的區域外儲存或處理您的資料。

機器學習專案工作流程

通常模型會開發為具有目標的專案一部分。 專案通常涉及多人。 使用資料、演算法和模型進行實驗時,開發會反覆進行。

專案生命週期

雖然專案生命週期可能會隨著專案而有所不同,但其通常看起來像這樣:

Machine learning project lifecycle diagram

工作區會組織專案,並允許眾多使用者共同作業,以達成共同目標。 工作區中的使用者可以輕鬆地在工作室使用者介面中共用其來自實驗的執行結果,或將已設定版本的資產用於環境和儲存體參考之類的作業。

如需詳細資訊,請參閱管理 Azure Machine Learning 工作區

當專案準備好進行運算化時,使用者的工作可以在機器學習管線中自動化,並根據排程或 HTTPS 要求觸發。

模型可以部署至受控推斷方案,用於即時和批次部署,將部署模型時通常需要的基礎結構管理抽象化。

將模型定型

在 Azure Machine Learning 中,您可以在雲端中執行定型指令碼,或從頭開始建置模型。 客戶通常會將其已建置和定型的模型帶入開放原始碼架構中,讓他們可以在雲端中將這些模型運算化。

開放且互通

資料科學家可以在 Azure Machine Learning 中使用其已在常用 Python 架構中建立的模型,例如:

  • PyTorch
  • TensorFlow
  • scikit-learn
  • XGBoost
  • LightGBM

也支援其他語言和架構,包括:

  • R
  • .NET

請參閱開放原始碼與 Azure Machine Learning 的整合

自動特徵化和演算法選取 (AutoML)

在重複且耗時的流程中,傳統機器學習資料科學家會使用先前的經驗和直覺,來選取適當的資料特徵化和演算法進行定型。 自動 ML (AutoML) 可加速此流程,並可透過工作室 UI 或 Python SDK 來使用。

請參閱什麼是自動化機器學習?

超參數最佳化

超參數最佳化或超參數調整可能是一項繁瑣的工作。 Azure Machine Learning 可以將這項工作自動化,讓任意參數化的命令只需略為修改您的作業定義。 結果會在工作室中視覺化。

請參閱如何調整超參數

多節點分散式定型

深度學習和有時傳統機器學習定型作業的定型效率,可以透過多節點分散式定型來大幅改善。 Azure Machine Learning 計算叢集會提供最新的 GPU 選項。

透過 Azure Arc 附加的 Kubernetes (預覽) 和 Azure ML 計算叢集來支援:

  • PyTorch
  • TensorFlow
  • MPI

MPI 分佈可以用於 Horovod 或自訂多節點邏輯。 此外,Apache Spark 可透過 Azure Synapse Analytics Spark 叢集 (預覽) 來支援。

請參閱使用 Azure Machine Learning 進行分散式定型

易於平行定型

調整機器學習專案可能需要調整易於平行模型定型。 這種模式常見於預測需求這類案例,其中模型可能會針對許多存放區定型。

部署模型

若要將模型帶入生產環境中,系統會對該模型進行部署。 Azure Machine Learning 的受控端點會將批次或即時 (線上) 模型評分的必要基礎結構抽象化 (推斷)。

即時和批次評分 (推斷)

「批次評分」或「批次推斷」涉及叫用具有資料參考的端點。 批次端點會以非同步方式執行作業,以在計算叢集上平行處理資料,並儲存資料以供進一步分析。

「即時評分」或「線上推斷」涉及使用一或多個模型部署來叫用端點,以及透過 HTTPs 近乎即時地接收回應。 流量可以跨多個部署進行分割,讓您可以藉由一開始轉移少量的流量,並一旦在新模型中建立了信賴度後增加流量,來測試新的模型版本。

請參閱:

MLOps:適用於機器學習的 DevOps

適用於機器學習模型的 DevOps (通常稱為 MLOps) 是針對生產環境開發模型的流程。 模型從定型到部署的生命週期必須是可稽核的 (如果無法重現的話)。

ML 模型生命週期

Machine learning model lifecycle - MLOps

深入了解 Azure Machine Learning 中的 MLOps

啟用 MLOPs 的整合

建置 Azure Machine Learning 時將模型生命週期謹記於心。 您可以將模型生命週期向下稽核至特定的認可和環境。

啟用 MLOps 的一些重要功能包括:

  • git 整合
  • MLflow 整合
  • 機器學習管線排程
  • 適用於自訂觸發程式的 Azure 事件方格整合
  • 可輕鬆搭配 CI/CD 工具使用,例如 GitHub Actions 或 Azure DevOps

此外,Azure Machine Learning 還包含監視和稽核功能:

  • 作業成品,例如程式碼快照集、記錄和其他輸出
  • 作業與資產 (例如容器、資料和計算資源) 之間的譜系

後續步驟

開始使用 Azure Machine Learning: