定型協調流程工作流程模型
定型是模型從標記表達中學習的流程。 定型完成後,您將能夠檢視模型效能。
若要定型模型,請啟動定型作業。 只有成功完成的作業才能建立模型。 定型作業會在七天後到期,您在此時間後無法擷取作業詳細資料。 如果您的定型作業順利完成,且已建立模型,模型將不會受到作業到期的影響。 您一次只能執行一個定型作業,而且您無法在同一個專案中啟動其他作業。
定型時間的範圍可以從處理協調流程工作流程專案時的幾秒鐘,一直到觸及表達上限的幾小時。
成功完成定型之後,就會自動觸發模型評估。 評估流程一開始會使用已定型的模型,在測試集中的表達上執行預測,並比較預測的結果與提供的標籤 (以建立事實基準)。 結果會傳回,讓您可以檢閱模型的效能。
必要條件
- 使用已設定 Azure Blob 儲存體帳戶成功建立的專案
如需詳細資訊,請參閱專案開發生命週期。
資料分割
開始定型程序之前,專案中加上標籤的表達會分成定型集和測試集。 每一個都提供不同的功能。
定型集用於定型模型,模型從此定型集學習加上標籤的表達。
該測試集是一個盲集,不會在定型期間 (而是只在評估期間) 引入模型。
成功定型模型之後,會用來從測試集中的表達進行預測。 這些預測用來計算評估計量。
建議您確定所有意圖都已充分呈現在定型和測試集中。
協調流程工作流程支援兩種資料分割方法:
- 從定型資料自動分割測試集:系統會根據選擇的百分比,在定型與測試集之間分割標記的資料。 建議的百分比分割是 80% 用於定型,20% 用於測試。
注意
如果您選擇 [從定型資料自動分割測試集] 選項,則只會根據提供的百分比來分割向定型集指派的資料。
- 使用手動分割定型和測試資料:此方法可讓使用者定義哪些表達應該屬於哪個集合。 只有在您已在標記期間將表達新增至測試集時,才會啟用此步驟。
注意
您只能針對非連接的意圖,在定型資料集中新增表達。
定型模型
開始定型作業
若要從 Language Studio 內開始定型模型:
從左側功能表中,選取 [定型工作]。
從頂端功能表中選取 [開始定型作業]。
選取 [定型新模型],然後在文字方塊中輸入模型名稱。 您也可以藉由選取此選項來覆寫現有的模型,然後從下拉式功能表中選擇您想要覆寫的模型。 覆寫定型的模型是無法復原的,但在您部署新模型之前,不會影響已部署的模型。
若您已在標記語句時啟用專案來手動分割資料,您會看到兩個資料分割選項:
- 從定型資料自動分割測試集:會根據選擇的百分比,在定型與測試集之間隨機性分割標記的語句。 預設的百分比分割是 80% 用於定型,20% 用於測試。 若要變更這些值,請選擇您要變更的集,然後輸入新的值。
注意
若您選擇 [從定型資料自動分割測試集] 選項,則只會根據提供的百分比來分割定型集中的語句。
- 使用手動分割定型和測試資料:在專案的標記步驟期間,將每個語句指派給定型或測試集。
注意
只有在您將語句新增至標記資料分頁中的測試集時,才會啟用使用手動分割定型和測試資料選項。 否則將會停用。
選取 [定型] 按鈕。
注意
- 只有成功完成的定型作業才會產生模型。
- 定型可能需要幾分鐘到幾小時的時間,以標記的資料大小而定。
- 您一次只能執行一個定型作業。 除非執行中的作業完成,否則無法在同一個專案內啟動其他定型作業。
使用下列 URL、標頭和 JSON 本文來建立 POST 要求,以提交定型作業。
要求 URL
建立 API 要求時,請使用下列 URL。 請以您自己的值取代下列預留位置值。
{ENDPOINT}/language/authoring/analyze-conversations/projects/{PROJECT-NAME}/:train?api-version={API-VERSION}
預留位置 |
值 |
範例 |
{ENDPOINT} |
用於驗證 API 要求的端點。 |
https://<your-custom-subdomain>.cognitiveservices.azure.com |
{PROJECT-NAME} |
專案名稱。 此值區分大小寫。 |
EmailApp |
{API-VERSION} |
您正在呼叫的 API 版本。 |
2023-04-01 |
使用下列標頭來驗證您的要求。
機碼 |
值 |
Ocp-Apim-Subscription-Key |
資源的金鑰。 用於驗證 API 要求。 |
要求本文
在您的要求中使用下列物件。 定型完成之後,系統會將模型命名為 MyModel
。
{
"modelLabel": "{MODEL-NAME}",
"trainingMode": "standard",
"trainingConfigVersion": "{CONFIG-VERSION}",
"evaluationOptions": {
"kind": "percentage",
"testingSplitPercentage": 20,
"trainingSplitPercentage": 80
}
}
機碼 |
預留位置 |
值 |
範例 |
modelLabel |
{MODEL-NAME} |
您的模型名稱。 |
Model1 |
trainingMode |
standard |
定型模式。 協調流程中只有一個定型模式可供使用,也就是 standard 。 |
standard |
trainingConfigVersion |
{CONFIG-VERSION} |
定型設定模型版本。 預設使用最新的模型版本。 |
2022-05-01 |
kind |
percentage |
分割方法。 可能的值為 percentage 或 manual 。 如需詳細資訊,請參閱如何定型模型。 |
percentage |
trainingSplitPercentage |
80 |
要包含在定型集中的標記資料百分比。 建議的值為 80 。 |
80 |
testingSplitPercentage |
20 |
要包含在測試集中的標記資料百分比。 建議的值為 20 。 |
20 |
注意
只有在 Kind
設定為 percentage
且這兩個百分比的總和應該等於 100 時,才需要 trainingSplitPercentage
和 testingSplitPercentage
。
傳送 API 要求之後,您會收到表示成功的 202
回應。 在回應標頭中,擷取 operation-location
值。 其格式如下:
{ENDPOINT}/language/authoring/analyze-conversations/projects/{PROJECT-NAME}/train/jobs/{JOB-ID}?api-version={API-VERSION}
您可以使用此 URL 來取得定型作業狀態。
取得定型作業狀態
從清單中選取 [定型作業識別碼],則會顯示側邊窗格,您可以在其中檢查此作業的 [定型進度]、[作業狀態] 和其他詳細資料。
定型有時可能會視定型資料大小和結構描述構的複雜度而定。 您可以使用下列要求來持續輪詢定型作業的狀態,直到成功完成為止。
使用下列 GET 要求來取得模型定型程序的狀態。 請以您自己的值取代下列預留位置值。
要求 URL
{ENDPOINT}/language/authoring/analyze-conversations/projects/{PROJECT-NAME}/train/jobs/{JOB-ID}?api-version={API-VERSION}
預留位置 |
值 |
範例 |
{YOUR-ENDPOINT} |
用於驗證 API 要求的端點。 |
https://<your-custom-subdomain>.cognitiveservices.azure.com |
{PROJECT-NAME} |
專案名稱。 此值區分大小寫。 |
EmailApp |
{JOB-ID} |
用來尋找模型定型狀態的識別碼。 這在您提交定型作業時收到的 location 標頭值中。 |
xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx |
{API-VERSION} |
您正在呼叫的 API 版本。 |
2023-04-01 |
使用下列標頭來驗證您的要求。
機碼 |
值 |
Ocp-Apim-Subscription-Key |
資源的金鑰。 用於驗證 API 要求。 |
回應本文
傳送要求之後,您會收到下列回應。 持續輪詢此端點,直到狀態參數變更為「成功」為止。
{
"result": {
"modelLabel": "{MODEL-LABEL}",
"trainingConfigVersion": "{TRAINING-CONFIG-VERSION}",
"estimatedEndDateTime": "2022-04-18T15:47:58.8190649Z",
"trainingStatus": {
"percentComplete": 3,
"startDateTime": "2022-04-18T15:45:06.8190649Z",
"status": "running"
},
"evaluationStatus": {
"percentComplete": 0,
"status": "notStarted"
}
},
"jobId": "xxxxxx-xxxxx-xxxxxx-xxxxxx",
"createdDateTime": "2022-04-18T15:44:44Z",
"lastUpdatedDateTime": "2022-04-18T15:45:48Z",
"expirationDateTime": "2022-04-25T15:44:44Z",
"status": "running"
}
機碼 |
值 |
範例 |
modelLabel |
模型名稱 |
Model1 |
trainingConfigVersion |
定型設定版本。 預設使用最新版本。 |
2022-05-01 |
startDateTime |
開始定型的時間 |
2022-04-14T10:23:04.2598544Z |
status |
定型作業的狀態 |
running |
estimatedEndDateTime |
定型作業完成的估計時間 |
2022-04-14T10:29:38.2598544Z |
jobId |
定型作業識別碼 |
xxxxx-xxxx-xxxx-xxxx-xxxxxxxxx |
createdDateTime |
定型作業建立日期及時間 |
2022-04-14T10:22:42Z |
lastUpdatedDateTime |
定型作業上次更新的日期及時間 |
2022-04-14T10:23:45Z |
expirationDateTime |
定型作業到期日及時間 |
2022-04-14T10:22:42Z |
取消定型作業
使用下列 URL、標頭和 JSON 本文來建立 POST 要求,以取消定型作業。
要求 URL
建立 API 要求時,請使用下列 URL。 請以您自己的值取代下列預留位置值。
{ENDPOINT}/language/authoring/analyze-conversations/projects/{PROJECT-NAME}/train/jobs/{JOB-ID}/:cancel?api-version={API-VERSION}
預留位置 |
值 |
範例 |
{ENDPOINT} |
用於驗證 API 要求的端點。 |
https://<your-custom-subdomain>.cognitiveservices.azure.com |
{PROJECT-NAME} |
專案名稱。 此值區分大小寫。 |
EmailApp |
{JOB-ID} |
這是定型作業識別碼 |
XXXXX-XXXXX-XXXX-XX |
{API-VERSION} |
您正在呼叫的 API 版本。 |
2023-04-01 |
使用下列標頭來驗證您的要求。
機碼 |
值 |
Ocp-Apim-Subscription-Key |
資源的金鑰。 用於驗證 API 要求。 |
傳送 API 要求之後,您將會收到指出成功的 202 回應,這表示您的定型作業已取消。 成功呼叫的結果是用於檢查作業狀態的 Operation-Location 標頭。
下一步