在入口網站中或使用 Python SDK 管理 Azure 機器學習 工作區 (v2)

適用於Python SDK azure-ai-ml v2 (目前)

在本文中,您會使用 Azure 入口網站 或適用於 Python 的 SDK,建立、檢視及刪除適用於 Azure 機器學習 的 Azure 機器學習 工作區。

隨著需求變更或自動化需求增加,您可以使用 CLIAzure PowerShellVS Code 擴充功能來管理工作區。

必要條件

  • Azure 訂用帳戶。 如果您沒有 Azure 訂用帳戶,請在開始前建立免費帳戶。 立即試用免費或付費版本的 Azure Machine Learning
  • 使用 Python SDK:
    1. 安裝 SDK v2

    2. 安裝 azure-identity: pip install azure-identity。 如果在筆記本資料格中, 請使用 %pip install azure-identity

    3. 提供您的訂用帳戶詳細資料:

      適用於Python SDK azure-ai-ml v2 (目前)

      # Enter details of your subscription
      subscription_id = "<SUBSCRIPTION_ID>"
      resource_group = "<RESOURCE_GROUP>"
    4. 取得訂用帳戶的句柄。 本文中的所有 Python 程式代碼都會使用 ml_client

      # get a handle to the subscription
      
      from azure.ai.ml import MLClient
      from azure.identity import DefaultAzureCredential
      
      ml_client = MLClient(DefaultAzureCredential(), subscription_id, resource_group)
      • (選擇性)如果您有多個帳戶,請在 中新增您想要使用之 Microsoft Entra 識別碼的 DefaultAzureCredential租用戶識別碼。 在 Azure 入口網站的 [Microsoft Entra ID,外部身分識別] 下,尋找您的租用戶識別碼。

        DefaultAzureCredential(interactive_browser_tenant_id="<TENANT_ID>")
        
      • (選擇性)如果您正在處理 主權雲端,您必須指定要驗證的雲端。 在中 DefaultAzureCredential執行此動作。

        from azure.identity import AzureAuthorityHosts
        DefaultAzureCredential(authority=AzureAuthorityHosts.AZURE_GOVERNMENT))
        

限制

  • 建立新的工作區時,您可以自動建立工作區所需的服務,或使用現有的服務。 若要使用有別於工作區的不同 Azure 訂閱的現有服務,您必須在包含這些服務的訂閱中註冊 Azure Machine Learning 命名空間。 例如,若要在訂閱 A (使用訂閱 B 的儲存體帳戶) 中建立工作區,則必須先在訂閱 B 中註冊 Azure Machine Learning 命名空間,然後才能在工作區使用儲存體帳戶。

    Azure Machine Learning 的資源提供者為 Microsoft.MachineLearningServices。 如需如何檢查是否已註冊及如何註冊的相關資訊,請參閱《Azure 資源提供者和類型》一文。

    重要

    這僅適用於建立工作區期間所提供的資源;Azure 儲存體帳戶、Azure Container Register、Azure Key Vault 和 Application Insights。

  • 針對與在線端點的網路隔離,您可以使用工作區相關聯的資源(Azure Container Registry (ACR)、儲存體 帳戶、金鑰保存庫 和 Application Insights),與工作區不同的資源群組。 不過,這些資源必須屬於與工作區相同的訂用帳戶和租用戶。 如需使用工作區受控虛擬網路保護受管理在線端點的限制相關信息,請參閱 使用受控在線端點的網路隔離。

  • 根據預設,工作區建立也會建立 Azure Container Registry (ACR)。 由於 ACR 目前不支援資源組名中的 Unicode 字元,因此請使用可避免這些字元的資源群組。

  • Azure 機器學習 不支援工作區預設記憶體帳戶的階層命名空間(Azure Data Lake 儲存體 Gen2 功能)。

提示

當您建立工作區時,會建立 Azure Application Insights 執行個體。 建立叢集後,您可以視需要刪除 Application Insights 執行個體。 刪除叢集會限制從工作區收集的資訊,且可能會使問題的疑難排解變得較為困難。 若您刪除工作區所建立的 Application Insights 執行個體,即無法在不刪除和重新建立工作區的情況下重新建立該執行個體

如需關於使用 Application Insights 執行個體的詳細資訊,請參閱監視和收集 Machine Learning Web 服務端點的資料

建立工作區

您可以直接在 Azure Machine Learning 工作室中建立工作區,來取得有限的可用選項。 您也可以使用下列其中一種方法來控制選項:

適用於Python SDK azure-ai-ml v2 (目前)

  • 預設規格。 根據預設,會自動建立相依資源和資源群組。 此程式代碼會建立名為 myworkspace的工作區,並在 中eastus2建立名為 myresourcegroup 的資源群組。

    # Creating a unique workspace name with current datetime to avoid conflicts
    from azure.ai.ml.entities import Workspace
    import datetime
    
    basic_workspace_name = "mlw-basic-prod-" + datetime.datetime.now().strftime(
        "%Y%m%d%H%M"
    )
    
    ws_basic = Workspace(
        name=basic_workspace_name,
        location="eastus",
        display_name="Basic workspace-example",
        description="This example shows how to create a basic workspace",
        hbi_workspace=False,
        tags=dict(purpose="demo"),
    )
    
    ws_basic = ml_client.workspaces.begin_create(ws_basic).result()
    print(ws_basic)
  • 使用現有的 Azure 資源。 您也可以使用 Azure 資源識別碼格式,來建立使用現有 Azure 資源的工作區。 在 Azure 入口網站 或 SDK 中尋找特定的 Azure 資源識別碼。 此範例假設資源群組、儲存體帳戶、金鑰保存庫、App Insights 以及容器登錄都已存在。

    # Creating a unique workspace name with current datetime to avoid conflicts
    import datetime
    from azure.ai.ml.entities import Workspace
    
    basic_ex_workspace_name = "mlw-basicex-prod-" + datetime.datetime.now().strftime(
        "%Y%m%d%H%M"
    )
    
    # Change the following variables to resource ids of your existing storage account, key vault, application insights
    # and container registry. Here we reuse the ones we just created for the basic workspace
    existing_storage_account = (
        # e.g. "/subscriptions/<SUBSCRIPTION_ID>/resourceGroups/<RESOURCE_GROUP>/providers/Microsoft.Storage/storageAccounts/<STORAGE_ACCOUNT>"
        ws_basic.storage_account
    )
    existing_container_registry = (
        # e.g. "/subscriptions/<SUBSCRIPTION_ID>/resourceGroups/<RESOURCE_GROUP>/providers/Microsoft.ContainerRegistry/registries/<CONTAINER_REGISTRY>"
        ws_basic.container_registry
    )
    existing_key_vault = (
        # e.g. "/subscriptions/<SUBSCRIPTION_ID>/resourceGroups/<RESOURCE_GROUP>/providers/Microsoft.KeyVault/vaults/<KEY_VAULT>"
        ws_basic.key_vault
    )
    existing_application_insights = (
        # e.g. "/subscriptions/<SUBSCRIPTION_ID>/resourceGroups/<RESOURCE_GROUP>/providers/Microsoft.insights/components/<APP_INSIGHTS>"
        ws_basic.application_insights
    )
    
    ws_with_existing_resources = Workspace(
        name=basic_ex_workspace_name,
        location="eastus",
        display_name="Bring your own dependent resources-example",
        description="This sample specifies a workspace configuration with existing dependent resources",
        storage_account=existing_storage_account,
        container_registry=existing_container_registry,
        key_vault=existing_key_vault,
        application_insights=existing_application_insights,
        tags=dict(purpose="demonstration"),
    )
    
    ws_with_existing_resources = ml_client.begin_create_or_update(
        ws_with_existing_resources
    ).result()
    
    print(ws_with_existing_resources)

如需詳細資訊,請參閱工作區 SDK 參考

如果您在存取訂用帳戶時遇到問題,請參閱設定 Azure 機器學習 資源和工作流程的驗證,以及 Azure 機器學習 Notebook 中的驗證。

網路

重要

如需搭配工作區使用私人端點和虛擬網路的詳細資訊,請參閱 網路隔離和隱私權

適用於Python SDK azure-ai-ml v2 (目前)

# Creating a unique workspace name with current datetime to avoid conflicts
import datetime
from azure.ai.ml.entities import Workspace

basic_private_link_workspace_name = (
    "mlw-privatelink-prod-" + datetime.datetime.now().strftime("%Y%m%d%H%M")
)

ws_private = Workspace(
    name=basic_private_link_workspace_name,
    location="eastus",
    display_name="Private Link endpoint workspace-example",
    description="When using private link, you must set the image_build_compute property to a cluster name to use for Docker image environment building. You can also specify whether the workspace should be accessible over the internet.",
    image_build_compute="cpu-compute",
    public_network_access="Disabled",
    tags=dict(purpose="demonstration"),
)

ml_client.workspaces.begin_create(ws_private).result()

此類別需要現有的虛擬網路。

加密

根據預設,Azure Cosmos DB 實例會儲存工作區元數據。 Microsoft 會維護此 Cosmos DB 實例。 Microsoft 管理的金鑰會加密此資料。

使用您自己的資料加密金鑰

您可以提供自己的金鑰進行資料加密。 這會建立 Azure Cosmos DB 實例,以將元數據儲存在您的 Azure 訂用帳戶中。 如需詳細資訊,請參閱客戶自控金鑰

使用下列步驟來提供您自己的金鑰:

重要

在遵循這些步驟之前,您必須先執行下列動作:

遵循設定客戶自控金鑰中的步驟,執行以下動作:

  • 註冊 Azure Cosmos DB 提供者
  • 建立及設定 Azure Key Vault
  • 產生金鑰

適用於Python SDK azure-ai-ml v2 (目前)


from azure.ai.ml.entities import Workspace, CustomerManagedKey

# specify the workspace details
ws = Workspace(
    name="my_workspace",
    location="eastus",
    display_name="My workspace",
    description="This example shows how to create a workspace",
    customer_managed_key=CustomerManagedKey(
        key_vault="/subscriptions/<SUBSCRIPTION_ID>/resourcegroups/<RESOURCE_GROUP>/providers/microsoft.keyvault/vaults/<VAULT_NAME>"
        key_uri="<KEY-IDENTIFIER>"
    )
    tags=dict(purpose="demo")
)

ml_client.workspaces.begin_create(ws)

身分識別

在入口網站中,使用 [ 身分識別 ] 頁面來設定受控識別、記憶體帳戶存取和數據影響。 如需 Python SDK,請參閱下列各節中的連結。

受控識別

您可以為工作區提供系統指派的身分識別或使用者指派的身分識別。 此身分識別可用來存取訂用帳戶中的資源。 如需詳細資訊,請參閱設定 Azure 機器學習 與其他服務之間的驗證。

儲存體 帳戶存取

在連線到預設記憶體帳戶時,選擇認證型存取身分識別型存取。 若要進行身分識別型驗證,儲存體 Blob 數據參與者角色必須授與記憶體帳戶上的工作區受控識別。

數據影響

如要限制 Microsoft 在工作區上收集的資料,請在入口網站中選取 [高業務影響工作區],或在 Python 中設定 hbi_workspace=true 。 如需此設定的詳細資訊,請參閱靜態加密

重要

選取高業務影響只能在建立工作區時發生。 建立工作區之後,您無法變更此設定。

標籤

籤標籤為成對的名稱和數值,可讓您透過將相同標籤套用至多個資源與資源群組,進而分類資源並檢視合併的帳單。

輸入名稱/值組來指派工作區的標籤。 如需詳細資訊,請參閱 使用標籤來組織您的 Azure 資源

也請使用標籤來 [強制執行工作區原則](#enforce 原則)。

下載設定檔

如果您在計算實例執行程式碼,請略過此步驟。 計算實例會為您建立並儲存此檔案的複本。

若要在參考此工作區的本機環境中使用程式代碼,請下載檔案:

  1. 在 Azure Studio 中 選取您的工作區

  2. 在右上方選取工作區名稱,然後選取 [ 下載config.json

    下載 config.json

將檔案放在保存 Python 腳本或 Jupyter Notebook 的目錄結構中。 相同的目錄、名為 .azureml 的子目錄,或父目錄可以保存此檔案。 當您建立計算執行個體時,系統會為您將此檔案新增至 VM 上的正確目錄。

強制執行原則

您可以開啟/關閉工作區的這些功能:

  • 工作區中的意見反應機會。 商機包括偶爾的產品內問卷和工作區橫幅中的笑臉意見反應工具。
  • 能夠在 工作區中試用預覽功能

這些功能預設為開啟。 若要關閉它們:

  • 建立工作區時,請從 [標記 ] 區段關閉功能:

    1. 新增 「ADMIN_HIDE_SURVEY:TRUE」來關閉意見反應
    2. 新增 「AZML_DISABLE_PREVIEW_FEATURE」: 「TRUE」 來關閉預覽
  • 針對現有的工作區,請從 [標記 ] 區段關閉功能:

    1. 移至 Azure 入口網站 中的工作區資源
    2. 從左側導覽面板開啟 [標記 ]
    3. 新增 「ADMIN_HIDE_SURVEY:TRUE」來關閉意見反應
    4. 新增 「AZML_DISABLE_PREVIEW_FEATURE: TRUE」 配對來關閉預覽
    5. 選取套用

此螢幕快照顯示設定標籤以防止工作區中的意見反應。

您可以在訂用帳戶層級關閉預覽,確保訂用帳戶中的所有工作區都關閉預覽。 在此情況下,訂用帳戶中的使用者也無法在選取工作區之前存取預覽工具。 此設定適用於想要確保組織未使用預覽功能的系統管理員。

如果在該工作區的訂用帳戶層級關閉預覽設定,則會忽略個別工作區上的預覽設定。

若要停用訂用帳戶層級的預覽功能:

  1. 移至 Azure 入口網站 中的訂用帳戶資源
  2. 從左側導覽面板開啟 [標記 ]
  3. 藉由新增配對 「AZML_DISABLE_PREVIEW_FEATURE」:「TRUE」 來關閉訂用帳戶中所有工作區的預覽
  4. 選取套用

連線到工作區

使用 SDK 執行機器學習工作時,您需要指定工作區連線的 MLClient 物件。 您可以從參數或使用組態檔建立 MLClient 物件。

適用於Python SDK azure-ai-ml v2 (目前)

  • 使用組態檔: 此程式碼會讀取組態檔的內容,以尋找您的工作區。 如果您尚未進行驗證,則會開啟登入的提示。

    from azure.ai.ml import MLClient
    
    # read the config from the current directory
    ws_from_config = MLClient.from_config(credential=DefaultAzureCredential())
    
  • 從參數:如果您使用此方法,就不需要有可用的config.json檔案。

    from azure.ai.ml import MLClient
    from azure.ai.ml.entities import Workspace
    from azure.identity import DefaultAzureCredential
    
    ws = MLClient(
        DefaultAzureCredential(),
        subscription_id="<SUBSCRIPTION_ID>",
        resource_group_name="<RESOURCE_GROUP>",
        workspace_name="<AML_WORKSPACE_NAME>",
    )
    print(ws)

如果您在存取訂用帳戶時遇到問題,請參閱設定 Azure 機器學習 資源和工作流程的驗證,以及 Azure 機器學習 Notebook 中的驗證。

尋找工作區

查看所有可用的工作區清單。 您也可以在 Studio 內搜尋工作區。 請參閱搜尋 Azure 機器學習 資產(預覽版)。

適用於Python SDK azure-ai-ml v2 (目前)

from azure.ai.ml import MLClient
from azure.ai.ml.entities import Workspace
from azure.identity import DefaultAzureCredential

# Enter details of your subscription
subscription_id = "<SUBSCRIPTION_ID>"
resource_group = "<RESOURCE_GROUP>"

my_ml_client = MLClient(DefaultAzureCredential(), subscription_id, resource_group)
for ws in my_ml_client.workspaces.list():
    print(ws.name, ":", ws.location, ":", ws.description)

若要取得特定的工作區詳細資料:

ws = my_ml_client.workspaces.get("<AML_WORKSPACE_NAME>")
# uncomment this line after providing a workspace name above
# print(ws.location,":", ws.resource_group)

刪除工作區

當您不再需要工作區時,請將其刪除。

警告

如果工作區已啟用虛刪除,可在刪除後加以復原。 如果未啟用虛刪除,或您選取永久刪除工作區的選項,則無法加以復原。 如需詳細資訊,請參閱復原已刪除的工作區

提示

Azure Machine Learning 的預設行為是虛刪除工作區。 這表示工作區不會立即刪除,而是標示為要刪除。 如需詳細資訊,請參閱虛刪除

適用於Python SDK azure-ai-ml v2 (目前)

ml_client.workspaces.begin_delete(name=ws_basic.name, delete_dependent_resources=True)

默認動作不會自動刪除資源

  • 容器登錄
  • 儲存體帳戶
  • 金鑰保存庫
  • Application Insights

與工作區相關聯。 將 delete_dependent_resources 設為 True 以一併刪除這些資源。

清除資源

重要

您所建立的資源可用來作為其他 Azure Machine Learning 教學課程和操作說明文章的先決條件。

如果不打算使用您建立的任何資源,請刪除以免產生任何費用:

  1. 在 Azure 入口網站中,選取最左邊的 [資源群組]

  2. 從清單中,選取您所建立的資源群組。

  3. 選取 [刪除資源群組]

    要刪除 Azure 入口網站 中資源群組之選取項目的螢幕快照。

  4. 輸入資源群組名稱。 接著選取刪除

疑難排解

  • Azure Machine Learning 工作室 中支援的瀏覽器:我們建議您使用與作業系統相容的最新瀏覽器。 支援這些瀏覽器:

    • Microsoft Edge (新的 Microsoft Edge,最新版本。注意:不支援 Microsoft Edge 舊版)
    • Safari (最新版本,僅限 Mac)
    • Chrome (最新版本)
    • Firefox (最新版本)
  • Azure 入口網站

工作區診斷

您可以從 Azure Machine Learning 工作室或 Python SDK 診斷工作區。 診斷執行完成後,就會傳回所有偵測到的問題清單。 這份清單包含可能的解決方案連結。 如需詳細資訊,請參閱如何使用工作區診斷

資源提供者錯誤

建立 Azure Machine Learning 工作區或工作區所使用的資源時,您可能會收到類似下列訊息的錯誤:

  • No registered resource provider found for location {location}
  • The subscription is not registered to use namespace {resource-provider-namespace}

大部分資源提供者都會自動註冊,但並非全部。 如果您收到此訊息,則需要註冊先前提及的提供者。

下表包含 Azure Machine Learning 所需的資源提供者清單:

資源提供者 需要的原因
Microsoft.MachineLearningServices 建立 Azure Machine Learning 工作區。
Microsoft.Storage Azure 儲存體帳戶用來做為工作區的預設儲存體。
Microsoft.ContainerRegistry 工作區會使用 Azure Container Registry 來建置 Docker 映像。
Microsoft.KeyVault 工作區會使用 Azure Key Vault 來儲存秘密。
Microsoft.Notebooks Azure Machine Learning 計算執行個體上的整合式筆記本。
Microsoft.ContainerService 若您打算將已定型的模型部署至 Azure Kubernetes Service。

若您打算搭配 Azure Machine Learning 使用客戶自控金鑰,則必須註冊下列服務提供者:

資源提供者 需要的原因
Microsoft.DocumentDB 記錄工作區中繼資料的 Azure CosmosDB 執行個體。
Microsoft.Search Azure 搜尋可為工作區提供索引編製功能。

如果您打算搭配 Azure Machine Learning 使用受控虛擬網路,則必須註冊 Microsoft.Network 資源提供者。 建立受控虛擬網路的私人端點時,工作區會使用此資源提供者。

如需有關註冊資源提供者的詳細資訊,請參閱解決資源提供者註冊的錯誤

刪除 Azure Container Registry

Azure 機器學習 工作區會針對某些作業使用 Azure Container Registry (ACR)。 它會在第一次需要 ACR 實例時自動建立 ACR 實例。

警告

為工作區建立 Azure Container Registry 之後,請勿將其刪除。 這樣做將會造成您的 Azure Machine Learning 工作區中斷。

範例

本文中的範例來自 workspace.ipynb

下一步

擁有工作區之後,請瞭解如何定型和部署模型

若要深入瞭解規劃貴組織需求的工作區,請瀏覽組織及設定 Azure 機器學習

如需有關如何讓 Azure 機器學習 掌握最新安全性更新的資訊,請流覽弱點管理