使用 Machine Learning 工作室 (傳統) 搭配 Data Factory 或 Synapse Analytics 建立預測管線
適用於:Azure Data Factory Azure Synapse Analytics
提示
試用 Microsoft Fabric 中的 Data Factory,這是適用於企業的全方位分析解決方案。 Microsoft Fabric 涵蓋從資料移動到資料科學、即時分析、商業智慧和報告的所有項目。 了解如何免費開始新的試用!
重要
對於 Azure Machine Learning 工作室 (傳統) 的支援將於 2024 年 8 月 31 日結束。 建議您在該日期之前轉換成 Azure Machine Learning。
自 2021 年 12 月 1 日起,您就無法建立新的 Machine Learning 工作室 (傳統) 資源 (工作區與 Web 服務方案)。 在 2024 年 8 月 31 日之前,您可以繼續使用現有的 Machine Learning 工作室 (傳統) 實驗與 Web 服務。 如需詳細資訊,請參閱
Machine Learning 工作室 (傳統) 文件即將淘汰,未來將不再更新。
注意
由於 2021 年 12 月 1 日以後再也無法建立 Machine Learning 工作室 (傳統) 資源,因此建議使用者搭配使用 Azure Machine Learning 與 Machine Learning 執行管線活動,而不是使用批次執行活動來執行 Machine Learning 工作室 (傳統) 批次。
ML 工作室 (傳統) 可讓您建置、測試以及部署預測性分析解決方案。 從高階觀點而言,由下列三個步驟完成這個動作:
- 建立訓練實驗。 您可以使用 ML 工作室 (傳統) 來進行此步驟。 ML 工作室 (傳統) 是共同作業的視覺化開發環境,可供您使用訓練資料來訓練和測試預測性分析模型。
- 將其轉換為評分實驗。 一旦您的模型已使用現有資料訓練,並做好使用該模型為新資料評分的準備之後,您準備並簡化用於評分實驗。
- 將其部署為 Web 服務。 只要按一下,您就可以將評分實驗當做 Azure Web 服務發佈。 您可以透過此 Web 服務端點將資料傳送給您的模型,並從模型接收結果預測。
使用 Machine Learning 工作室 (傳統) 搭配 Data Factory 或 Synapse Analytics
Azure Data Factory 和 Synapse Analytics 可讓您輕鬆建立管線,其使用已發佈的 Machine Learning 工作室 (傳統) Web 服務以進行預測性分析。 在管線中使用批次執行活動時,您可以叫用 Machine Learning 工作室 (傳統) Web 服務以對批次中的資料進行預測。
經過一段時間後,必須使用新的輸入資料集來重新訓練 Machine Learning 工作室 (傳統) 評分實驗中的預測模型。 您可以透過執行下列步驟,重新訓練管線中的模型:
- 將訓練實驗 (而非預設實驗) 發佈為 Web 服務。 在 ML 工作室 (傳統) 中進行此步驟的方法,與先前案例中將預測實驗公開為 Web 服務的方法一樣。
- 使用 ML 工作室 (傳統) 批次執行活動,對訓練實驗叫用 Web 服務。 基本上,您可以使用 ML 工作室 (傳統) 批次執行活動來叫用訓練 Web 服務和評分 Web 服務。
完成重新訓練之後,您可以使用「ML 工作室 (傳統) 更新資源活動」,使用新訓練的模型來更新評分 Web 服務 (以 Web 服務公開的預測實驗)。 如需詳細資料,請參閱使用更新資源活動更新模型一文。
ML 工作室 (傳統) 連結服務
您會建立 Machine Learning 工作室 (傳統) 連結服務,以連結 Machine Learning 工作室 (傳統) Web 服務。 Machine Learning 工作室 (傳統) 批次執行活動使用的連結活動與更新資源活動。
{
"type" : "linkedServices",
"name": "AzureMLLinkedService",
"properties": {
"type": "AzureML",
"typeProperties": {
"mlEndpoint": "URL to Azure ML Predictive Web Service",
"apiKey": {
"type": "SecureString",
"value": "api key"
}
},
"connectVia": {
"referenceName": "<name of Integration Runtime>",
"type": "IntegrationRuntimeReference"
}
}
}
如需了解 JSON 定義中的屬性說明,請參閱計算連結服務一文。
Machine Learning 工作室 (傳統) 支援傳統 Web 服務和新 Web 服務,以用於您的預測性實驗。 您可以從 Data Factory 和 Synapse 工作區選擇正確的服務。 若要取得建立 Machine Learning 工作室 (傳統) 連結服務所需的資訊,請移至 https://ml.azure.com/,其中列出所有 (新) Web 服務和傳統 Web 服務。 按一下您要存取的 Web 服務,然後按一下 [取用] 頁面。 為 apiKey 屬性複製主索引鍵,並為 mlEndpoint 屬性複製批次要求。
ML Studio (傳統版) 批次執行活動
下列 JSON 程式碼片段定義 ML 工作室 (傳統) 批次執行活動。 活動定義具有您稍早所建立 ML 工作室 (傳統) 連結服務的參考。
{
"name": "AzureMLExecutionActivityTemplate",
"description": "description",
"type": "AzureMLBatchExecution",
"linkedServiceName": {
"referenceName": "AzureMLLinkedService",
"type": "LinkedServiceReference"
},
"typeProperties": {
"webServiceInputs": {
"<web service input name 1>": {
"LinkedServiceName":{
"referenceName": "AzureStorageLinkedService1",
"type": "LinkedServiceReference"
},
"FilePath":"path1"
},
"<web service input name 2>": {
"LinkedServiceName":{
"referenceName": "AzureStorageLinkedService1",
"type": "LinkedServiceReference"
},
"FilePath":"path2"
}
},
"webServiceOutputs": {
"<web service output name 1>": {
"LinkedServiceName":{
"referenceName": "AzureStorageLinkedService2",
"type": "LinkedServiceReference"
},
"FilePath":"path3"
},
"<web service output name 2>": {
"LinkedServiceName":{
"referenceName": "AzureStorageLinkedService2",
"type": "LinkedServiceReference"
},
"FilePath":"path4"
}
},
"globalParameters": {
"<Parameter 1 Name>": "<parameter value>",
"<parameter 2 name>": "<parameter 2 value>"
}
}
}
屬性 | 描述 | 必要 |
---|---|---|
NAME | 管線中的活動名稱 | Yes |
description | 說明活動用途的文字。 | No |
type | 對於 Data Lake Analytics U-SQL 活動,活動類型為 AzureMLBatchExecution。 | Yes |
linkedServiceName | 與 ML 工作室 (傳統) 連結服務相關的連結服務。 若要深入了解此已連結的服務,請參閱計算已連結的服務一文。 | Yes |
webServiceInputs | 金鑰、值組、對應 ML 工作室 (傳統) Web 服務輸入的名稱。 金鑰必須符合已發佈 ML 工作室 (傳統) Web 服務中定義的輸入參數。 值是指定輸入 Blob 位置的 Azure 儲存體連結服務和 FilePath 屬性組。 | No |
webServiceOutputs | 金鑰、值組、對應 ML 工作室 (傳統) Web 服務輸出的名稱。 金鑰必須符合已發佈 ML 工作室 (傳統) Web 服務中定義的輸出參數。 值是指定輸出 Blob 位置的 Azure 儲存體連結服務和 FilePath 屬性組。 | No |
globalParameters | 傳遞至 ML 工作室 (傳統) 批次執行服務端點的金鑰/值組。 金鑰必須符合已發佈 ML 工作室 (傳統) Web 服務中定義的 Web 服務參數名稱。 值會以 ML 工作室 (傳統) 批次執行要求的 GlobalParameters 屬性傳遞 | No |
案例 1:使用 Web 服務輸入/輸出 (參考 Azure Blob 儲存體中的資料) 的實驗
在此案例中,Machine Learning 工作室 (傳統) Web 服務會使用 Azure Blob 儲存體中的檔案資料執行預測,並將預測結果儲存在 Blob 儲存體中。 下列 JSON 使用 AzureMLBatchExecution 活動定義管線。 Azure 部落格儲存體中的輸入和輸出資料使用 LinkedName 和 FilePath 來引用。 在範例中,輸入和輸出的「已連結的服務」不同,您可以針對服務的每個輸入/輸出使用不同的「已連結的服務」,以便能夠選取正確的檔案,並傳送至 Machine Learning 工作室 (傳統) Web 服務。
重要
在您的 ML 工作室 (傳統) 實驗中,Web 服務輸入和輸出連接埠及全域參數有您可以自訂的預設名稱 ("input1"、"input2")。 您用於 webServiceInputs、webServiceOutputs 及 globalParameters 設定的名稱必須與實驗中的名稱完全相同。 您可以檢視 [批次執行說明] 頁面上的範例要求承載以取得 ML 工作室 (傳統) 端點,以確認預期的對應。
{
"name": "AzureMLExecutionActivityTemplate",
"description": "description",
"type": "AzureMLBatchExecution",
"linkedServiceName": {
"referenceName": "AzureMLLinkedService",
"type": "LinkedServiceReference"
},
"typeProperties": {
"webServiceInputs": {
"input1": {
"LinkedServiceName":{
"referenceName": "AzureStorageLinkedService1",
"type": "LinkedServiceReference"
},
"FilePath":"amltest/input/in1.csv"
},
"input2": {
"LinkedServiceName":{
"referenceName": "AzureStorageLinkedService1",
"type": "LinkedServiceReference"
},
"FilePath":"amltest/input/in2.csv"
}
},
"webServiceOutputs": {
"outputName1": {
"LinkedServiceName":{
"referenceName": "AzureStorageLinkedService2",
"type": "LinkedServiceReference"
},
"FilePath":"amltest2/output/out1.csv"
},
"outputName2": {
"LinkedServiceName":{
"referenceName": "AzureStorageLinkedService2",
"type": "LinkedServiceReference"
},
"FilePath":"amltest2/output/out2.csv"
}
}
}
}
案例 2:使用讀取器/寫入器模組參考各種儲存體資料的實驗
建立 ML 工作室 (傳統) 實驗時的另一個常見案例是使用「匯入資料」和「輸出資料」模組。 「匯入資料」模組是用來將資料載入實驗,而「輸出資料」模組則是用於儲存您的實驗資料。 如需「匯入資料」和「輸出資料」模組的詳細資料,請參閱 MSDN 文件庫上的匯入資料和輸出資料主題。
使用「匯入資料」和「輸出資料」模組時,較好的做法是針對這些模組的每一個屬性,使用 Web 服務參數。 這些 Web 參數可讓您在執行階段設定值。 例如,您可以透過使用 Azure SQL Database:XXX.database.windows.net 的「匯入資料」模組,建立實驗。 部署 Web 服務之後,您需要啟用 Web 服務的取用者,藉此指定另一個稱為 YYY.database.windows.net
的邏輯 SQL Server。 您可以使用 Web 服務參數來設定此值。
注意
Web 服務的輸入和輸出與 Web 服務參數不同。 在第一個案例中,您已了解如何為 ML 工作室 (傳統) Web 服務指定輸入和輸出。 在此案例中,您會傳遞 Web 服務的參數,以對應至「匯入資料」/「輸出資料」模組的屬性。
讓我們看看使用 Web 服務參數的案例。 您已部署 ML 工作室 (傳統) Web 服務,其使用讀取器模組所讀取的資料,是來自其中一個受 ML 工作室 (傳統) 支援的資料來源 (例如:Azure SQL Database)。 批次執行之後,會使用寫入器模組寫入結果 (Azure SQL Database)。 實驗中沒有定義任何 Web 服務的輸入和輸出。 在此情況下,我們建議您為讀取器和寫入器模組設定相關 Web 服務參數。 此組態允許在使用 AzureMLBatchExecution 活動時設定讀取器/寫入器模組。 如以下活動 JSON 所示,在 globalParameters 區段中指定 Web 服務參數。
"typeProperties": {
"globalParameters": {
"Database server name": "<myserver>.database.windows.net",
"Database name": "<database>",
"Server user account name": "<user name>",
"Server user account password": "<password>"
}
}
注意
Web 服務參數區分大小寫,因此,請確定您在活動 JSON 中所指定的名稱符合 Web 服務所公開的名稱。
完成重新訓練之後,您可以使用「ML 工作室 (傳統) 更新資源活動」,使用新訓練的模型來更新評分 Web 服務 (以 Web 服務公開的預測實驗)。 如需詳細資料,請參閱使用更新資源活動更新模型一文。
相關內容
請參閱下列文章,其說明如何以其他方式轉換資料: