共用方式為


使用批次端點從 Fabric 執行 Azure Machine Learning 模型 (預覽版)

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

在本文中,您將了解如何從 Microsoft Fabric 取用 Azure Machine Learning 批次部署。 雖然工作流程使用部署至批次端點的模型,但也支援從 Fabric 使用批次管線部署。

重要

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

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

必要條件

  • 取得 Microsoft Fabric 訂用帳戶。 或註冊免費的 Microsoft Intune 試用版
  • 登入 Microsoft Fabric。
  • Azure 訂用帳戶。 如果您沒有 Azure 訂用帳戶,請在開始前建立免費帳戶。 試用免費或付費版本的 Azure Machine Learning
  • Azure Machine Learning 工作區。 如果您沒有工作區,請使用如何管理工作區中的步驟來建立。
    • 請確定您在工作區中具有下列權限:
      • 建立/管理批次端點和部署:使用角色擁有者、參與者或允許 Microsoft.MachineLearningServices/workspaces/batchEndpoints/* 的自訂角色。
      • 在工作區資源群組中建立 ARM 部署:在已部署工作區的資源群組中使用角色擁有者、參與者或允許 Microsoft.Resources/deployments/write 的自訂角色。
  • 部署於批次端點的模型。 若沒有模型,請使用在批次端點中部署評分用模型中的步驟來建立一個。
  • 下載 heart-unlabeled.csv 評分用範例資料集。

架構

Azure Machine Learning 無法直接存取 Fabric OneLake 中儲存的資料。 不過,您可以利用 OneLake 的功能在 Lakehouse 中建立捷徑,以讀取和寫入 Azure Data Lake Gen2 中儲存的資料。 由於 Azure Machine Learning 支援 Azure Data Lake Gen2 儲存體,因此透過此設定,可同時使用 Fabric 與 Azure Machine Learning。 資料結構如下所示:

A diagram showing how Azure Storage accounts are used to connect Fabric with Azure Machine Learning.

設定資料存取

若要在不複製資料的情況下,允許 Fabric 與 Azure Machine Learning 讀取和寫入相同資料,可以使用 OneLake 捷徑Azure Machine Learning 資料存放區。 藉由將 OneLake 捷徑和資料存放區指向同一個儲存體帳戶,可以確保 Fabric 和 Azure Machine Learning 讀取和寫入相同的基礎資料。

在本節中,您將了解如何建立或識別儲存體帳戶,藉此儲存批次端點將取用的資訊,以及 Fabric 使用者在 OneLake 中看到的資訊。 Fabric 僅支援啟用階層式命名的儲存體帳戶,例如 Azure Data Lake Gen2。

在儲存體帳戶中建立 OneLake 捷徑

  1. 在 Fabric 中開啟 [Synapse 資料工程] 體驗。

  2. 從左側面板選取您的 Fabric 工作區並開啟。

  3. 開啟您要用來設定連線的 Lakehouse。 如果尚未擁有 Lakehouse,請至 [資料工程] 體驗建立 Lakehouse。 在此範例中,您將使用名為 trusted 的 Lakehouse。

  4. 在左側導覽列,開啟 [檔案] 的 [更多選項],然後選取 [新增捷徑] 以啟動精靈。

    A screenshot showing how to create a new shortcut in a lakehouse.

  5. 選取 [Azure Data Lake Storage Gen2] 選項。

    A screenshot showing how to create an Azure Data Lake Storage Gen2 shortcut.

  6. 在 [連線設定] 區段,貼上與 Azure Data Lake Gen2 儲存體帳戶相關聯的 URL。

    A screenshot showing how to configure the URL of the shortcut.

  7. 在 [連線認證] 區段中:

    1. 針對 [連線],選取 [新增連線]
    2. 針對 [連線名稱],保留預設填入的值。
    3. 針對 [驗證類型],選取 [組織帳戶],以透過 OAuth 2.0. 使用已連線使用者的認證。
    4. 選取 [登入] 以登入。
  8. 選取 [下一步]。

  9. 如有需要,請設定相對於儲存體帳戶的捷徑路徑。 進行此設定以決定捷徑指向的資料夾。

  10. 設定捷徑的 [名稱]。 此名稱將是 Lakehouse 內的路徑。 在此範例中,請將捷徑命名為資料集

  11. 儲存變更。

建立指向儲存體帳戶的資料存放區

  1. 開啟 Azure Machine Learning 工作室

  2. 前往您的 Azure Machine Learning 工作區。

  3. 前往 [資料] 區段。

  4. 選取 [資料存放區] 索引標籤。

  5. 選取 建立

  6. 根據下列方式設定資料存放區:

    1. 針對 [資料庫名稱],輸入 trusted_blob

    2. 針對 [資料存放區類型],選取 [Azure Blob 儲存體]

      提示

      為何應設定 Azure Blob 儲存體,而非 Azure Data Lake Gen2? 批次端點只能將預測寫入 Blob 儲存體帳戶。 然而,每個 Azure Data Lake Gen2 儲存體帳戶都同時是 Blob 儲存體帳戶,因此可交替使用。

    3. 利用 [儲存體帳戶識別碼]、[儲存體帳戶] 以及 [Blob 容器] (檔案系統),從精靈選取儲存體帳戶。

      A screenshot showing how to configure the Azure Machine Learning data store.

    4. 選取 建立

  7. 確認執行批次端點的計算有權掛接此儲存體帳戶中的資料。 儘管存取權仍由叫用端點的身分識別授與,執行批次端點的計算必須有權掛接您提供的儲存體帳戶。 如需詳細資訊,請參閱存取儲存體服務

上傳範例資料集

上傳部分範例資料,以供端點用作輸出:

  1. 前往您的 Fabric 工作區。

  2. 選取已建立捷徑的 Lakehouse。

  3. 前往資料集捷徑。

  4. 建立資料夾,以儲存您要評分的範例資料集。 將資料夾命名為 uci-heart-unlabeled

  5. 使用 [取得資料] 選項,然後選取 [上傳檔案] 以上傳範例資料集 heart-unlabeled.csv

    A screenshot showing how to upload data to an existing folder in OneLake.

  6. 上傳範例資料集。

    A screenshot showing how to upload a file to OneLake.

  7. 範例檔案已可供取用。 請記下檔案儲存位置的路徑。

建立 Fabric 至批次的推斷管線

在本節中,您將了解如何在現有的 Fabric 工作區中,建立 Fabric 至批次的推斷管線,並叫用批次端點。

  1. 若您已離開 [資料工程] 體驗,請利用首頁左下方的體驗選取器圖示返回體驗。

  2. 開啟您的 Fabric 工作區。

  3. 在首頁的 [新增] 區段中選取 [資料管線]

  4. 命名管線並選取 [建立]

    A screenshot showing where to select the data pipeline option.

  5. 從設計工具畫布的工具列選取 [活動] 索引標籤。

  6. 選取索引標籤最下方的 [更多選項],然後選取 [Azure Machine Learning]

    A screenshot showing how to add the Azure Machine Learning activity to a pipeline.

  7. 前往 [設定] 索引標籤並設定其他活動,如下所示:

    1. 選取 [Azure Machine Learning 連線] 旁的 [新增],與包含部署的 Azure Machine Learning 工作區建立新連線。

      A screenshot of the configuration section of the activity showing how to create a new connection.

    2. 在建立精靈的 [連線設定] 區塊中,針對已部署端點的位置指定 [訂閱識別碼]、[資源群組名稱] 和 [工作區名稱] 的值。

      A screenshot showing examples of the values for subscription ID, resource group name, and workspace name.

    3. 在 [連線認證] 區段,選取 [組織帳戶] 做為連線的 [驗證類型] 值。 [組織帳戶] 會使用已連線使用者的認證。 或者,也可以使用 [服務主體]。 在生產設定中,建議您使用 [服務主體]。 不論驗證類型,都請確認與連線相關聯的身分識別有權呼叫您部署的批次端點。

      A screenshot showing how to configure the authentication mechanism in the connection.

    4. 儲存連線。 選取連線之後,Fabric 會自動填入所選工作區中可用的批次端點。

  8. 針對 [批次端點],選取要呼叫的批次端點。 在此範例中,請選取 heart-classifier-...

    A screenshot showing how to select an endpoint once a connection is configured.

    [批次部署] 區段會自動填入端點之下可用的部署。

  9. 針對 [批次部署],若有需要,請從清單中選取特定部署。 若未選取部署,Fabric 會叫用端點下的 [預設] 部署,並允許批次端點建立者決定要呼叫的部署。 在大部分情況中,建議保留此預設行為。

    A screenshot showing how to configure the endpoint to use the default deployment.

設定批次端點的輸入和輸出

在此節中,您將了解如何設定批次端點的輸入和輸出。 批次端點的輸入可提供執行流程所需的資料和參數。 Fabric 中的 Azure Machine Learning 批次管線可支援模型部署管線部署。 提供的輸入數目與類型取決於批次部署類型。 此範例使用的模型部署只需一個輸入,而且只產生一個輸出。

如需批次端點輸入和輸出的詳細資訊,請參閱了解批次端點中的輸入和輸出

設定輸入區段

請依照下列方式設定 [作業輸入]

  1. 展開 [作業輸入] 區段。

  2. 選取 [新增] 以在端點新增輸入。

  3. 將輸入命名為 input_data。 由於使用的是模型部署,因此可以任意命名。 不過,針對管線部署,必須指定模型所需的輸入確切名稱。

  4. 在剛才新增的輸入旁選取下拉式功能表,開啟輸入的屬性 (名稱和值欄位)。

  5. 在 [名稱] 欄位輸入 JobInputType,指定要建立的輸入類型。

  6. 在 [值] 欄位輸入 UriFolder,將輸入指定為資料夾路徑。 此欄位支援的其他值為 [UriFile] (檔案路徑) 或 [Literal] (字串或整數等任何常值)。 請使用部署所需的正確類型。

  7. 選取屬性旁的加號,可為輸入新增另一個屬性。

  8. 在 [名稱] 欄位輸入 Uri,指定資料路徑。

  9. 在 [值] 欄位輸入 azureml://datastores/trusted_blob/datasets/uci-heart-unlabeled,即資料路徑。 在此請使用指向儲存體帳戶的路徑,且此帳號應已連結至 Fabric 中的 OneLake,以及 Azure Machine Learning。 azureml://datastores/trusted_blob/datasets/uci-heart-unlabeled 是 CSV 檔案的路徑,其中包含部署至批次端點之模型所需的輸入資料。 也可以使用儲存體帳戶的直接路徑,例如 https://<storage-account>.dfs.azure.com

    A screenshot showing how to configure inputs in the endpoint.

    提示

    如果輸入類型為 [Literal],請將屬性 Uri 取代為「Value」。

如果端點要求更多輸入,請針對每個輸入重複上述步驟。 此範例中的模型部署只需一個輸入。

設定輸出區段

請依照下列方式設定 [作業輸出]

  1. 展開 [作業輸出] 區段。

  2. 選取 [新增] 以在端點新增輸出。

  3. 將輸出命名為 output_data。 由於使用的是模型部署,因此可以任意命名。 不過,針對管線部署,必須指定模型產生的輸出確切名稱。

  4. 在剛才新增的輸出旁選取下拉式功能表,開啟輸出的屬性 (名稱和值欄位)。

  5. 在 [名稱] 欄位輸入 JobOutputType,指定要建立的輸出類型。

  6. 在 [值] 欄位輸入 UriFile,將輸出指定為檔案路徑。 此欄位支援的其他值為 [UriFolder] (資料夾路徑)。 與作業輸入區段不同,不支援 [Literal] (字串或整數等任何常值) 做為輸出。

  7. 選取屬性旁的加號,可為輸出新增另一個屬性。

  8. 在 [名稱] 欄位輸入 Uri,指定資料路徑。

  9. 在 [值] 欄位輸入 @concat(@concat('azureml://datastores/trusted_blob/paths/endpoints', pipeline().RunId, 'predictions.csv'),即指向輸出位置的路徑。 Azure Machine Learning 批次端點僅支援以資料存放區路徑做為輸出。 由於輸出必須為唯一的才能避免衝突,因此應使用動態表達式 @concat(@concat('azureml://datastores/trusted_blob/paths/endpoints', pipeline().RunId, 'predictions.csv') 以建構路徑。

    A screenshot showing how to configure outputs in the endpoint

如果端點傳回更多輸出,請針對每個輸出重複上述步驟。 此範例中的模型部署只會產生一個輸出。

(選擇性) 設定作業設定

也可以新增下列屬性以設定 [作業設定]

針對模型部署

設定 描述
MiniBatchSize 批次的大小。
ComputeInstanceCount 要向部署要求的計算執行個體數目。

針對管線部署

設定 描述
ContinueOnStepFailure 表示管線是否應該在失敗後停止處理節點。
DefaultDatastore 表示用於輸出的預設資料存放區。
ForceRun 表示管線即使可從上一次的執行中推斷輸出,是否應強制執行所有元件。

一旦設定完成,便能測試管線。