檢視交談語言理解模型詳細資料
- 發行項
完成模型定型後,您即可檢視模型詳細資料,並確認其與測試集相比的表現如何。
注意
當您每次定型新模型時,使用 [自動從定型資料分割測試集] 選項可能會產生不同的模型評估結果,因為測試集是從語句隨機選取的。 若要確定每次定型模型時,都會在相同的測試集上計算評估,請務必在啟動定型作業時使用 [使用手動分割定型和測試資料] 選項,並在新增語句時定義測試集。
必要條件
檢視模型評估前,您需要:
如需詳細資訊,請參閱專案開發生命週期。
模型詳細資料
移至您在 Language Studio 中的專案頁面。
從畫面左側的功能表中,選取 [模型效能]。
在此頁面中,您只能檢視每個模型和模型到期日的成功定型模型 F1 分數。 您可以選取模型名稱,以取得其效能的詳細資料。 只有在定型模型時有選取測試資料,模型才會包含評估詳細資料。
在此索引標籤中,您可以檢視模型的詳細資料,例如:F1 分數、精確度、召回率、定型作業的日期和時間、此定型作業中包含的定型時間和測試表達總數。 您可以選取頂端的 [模型類型],以檢視意圖或實體之間的詳細資料。
您也會看到如何改善模型的指引。 按一下 [檢視詳細資料] 時,側邊面板將會開啟,提供更多如何改善模型的指引。
此快照集顯示意圖或實體如何分散到您的定型和測試集。 此資料是靜態的,且繫結至您的模型,因此在您再次定型之前不會更新。 不包含已學習元件的實體不會顯示任何定型標籤。 學習的元件只會藉由在定型集中新增標籤來新增。
混淆矩陣是用於評估模型效能的 N x N 矩陣,其中 N 是目標意圖或實體的數目。 矩陣會將預期的標籤與模型預測的標籤比較,以找出哪些意圖或實體被誤分類為其他意圖和實體。 您可以按一下混淆矩陣的任何儲存格,以找出哪些表達確切對該儲存格中的值有貢獻。
您可以在原始計數或標準化檢視中檢視意圖混淆矩陣。 原始計數是針對一組意圖預測和標記的實際表達數目。 標準化值是一組意圖的預測和標記表達的比率,介於 0 和 1 之間。
您可以在字元重疊計數或標準化字元重疊檢視中檢視實體混淆矩陣。 字元重疊計數是已針對一組實體預測和標記的實際範圍數目。 標準化字元重疊是一組實體預測和標記範圍的比率,介於 0 和 1 之間。 有時候實體可以部分預測或標示,導致混淆矩陣中的十進位值。
所有值:會顯示所有意圖或實體的混淆矩陣。
僅錯誤:只會顯示具有錯誤的意圖或實體混淆矩陣。
僅相符項目:只會顯示具有正確預測的意圖或實體的混淆矩陣。
使用下列 URL、標頭和 JSON 本文建立 GET 要求,以取得定型的模型評估摘要。
模型摘要
此 API 會傳回模型評估結果的摘要,包括意圖和實體的精確度、召回率、F1 和混淆矩陣。
要求 URL
{ENDPOINT}/language/authoring/analyze-conversations/projects/{projectName}/models/{trainedModelLabel}/evaluation/summary-result?api-version={API-VERSION}
預留位置 | 值 | 範例 |
---|---|---|
{ENDPOINT} |
用於驗證 API 要求的端點。 | https://<your-custom-subdomain>.cognitiveservices.azure.com |
{PROJECT-NAME} |
專案名稱。 此值區分大小寫。 | myProject |
{trainedModelLabel} |
定型模型的名稱。 此值區分大小寫。 | Model1 |
{API-VERSION} |
您正在呼叫的 API 版本。 | 2023-04-01 |
標頭
使用下列標頭來驗證您的要求。
機碼 | 值 |
---|---|
Ocp-Apim-Subscription-Key |
資源的金鑰。 用於驗證 API 要求。 |
回應本文
傳送要求之後,您會收到下列回應。
{
"entitiesEvaluation": {
"confusionMatrix": {
"additionalProp1": {
"additionalProp1": {
"normalizedValue": 0,
"rawValue": 0
},
"additionalProp2": {
"normalizedValue": 0,
"rawValue": 0
},
"additionalProp3": {
"normalizedValue": 0,
"rawValue": 0
}
},
"additionalProp2": {
"additionalProp1": {
"normalizedValue": 0,
"rawValue": 0
},
"additionalProp2": {
"normalizedValue": 0,
"rawValue": 0
},
"additionalProp3": {
"normalizedValue": 0,
"rawValue": 0
}
},
"additionalProp3": {
"additionalProp1": {
"normalizedValue": 0,
"rawValue": 0
},
"additionalProp2": {
"normalizedValue": 0,
"rawValue": 0
},
"additionalProp3": {
"normalizedValue": 0,
"rawValue": 0
}
}
},
"entities": {
"additionalProp1": {
"f1": 0,
"precision": 0,
"recall": 0,
"truePositivesCount": 0,
"trueNegativesCount": 0,
"falsePositivesCount": 0,
"falseNegativesCount": 0
},
"additionalProp2": {
"f1": 0,
"precision": 0,
"recall": 0,
"truePositivesCount": 0,
"trueNegativesCount": 0,
"falsePositivesCount": 0,
"falseNegativesCount": 0
},
"additionalProp3": {
"f1": 0,
"precision": 0,
"recall": 0,
"truePositivesCount": 0,
"trueNegativesCount": 0,
"falsePositivesCount": 0,
"falseNegativesCount": 0
}
},
"microF1": 0,
"microPrecision": 0,
"microRecall": 0,
"macroF1": 0,
"macroPrecision": 0,
"macroRecall": 0
},
"intentsEvaluation": {
"confusionMatrix": {
"additionalProp1": {
"additionalProp1": {
"normalizedValue": 0,
"rawValue": 0
},
"additionalProp2": {
"normalizedValue": 0,
"rawValue": 0
},
"additionalProp3": {
"normalizedValue": 0,
"rawValue": 0
}
},
"additionalProp2": {
"additionalProp1": {
"normalizedValue": 0,
"rawValue": 0
},
"additionalProp2": {
"normalizedValue": 0,
"rawValue": 0
},
"additionalProp3": {
"normalizedValue": 0,
"rawValue": 0
}
},
"additionalProp3": {
"additionalProp1": {
"normalizedValue": 0,
"rawValue": 0
},
"additionalProp2": {
"normalizedValue": 0,
"rawValue": 0
},
"additionalProp3": {
"normalizedValue": 0,
"rawValue": 0
}
}
},
"intents": {
"additionalProp1": {
"f1": 0,
"precision": 0,
"recall": 0,
"truePositivesCount": 0,
"trueNegativesCount": 0,
"falsePositivesCount": 0,
"falseNegativesCount": 0
},
"additionalProp2": {
"f1": 0,
"precision": 0,
"recall": 0,
"truePositivesCount": 0,
"trueNegativesCount": 0,
"falsePositivesCount": 0,
"falseNegativesCount": 0
},
"additionalProp3": {
"f1": 0,
"precision": 0,
"recall": 0,
"truePositivesCount": 0,
"trueNegativesCount": 0,
"falsePositivesCount": 0,
"falseNegativesCount": 0
}
},
"microF1": 0,
"microPrecision": 0,
"microRecall": 0,
"macroF1": 0,
"macroPrecision": 0,
"macroRecall": 0
},
"evaluationOptions": {
"kind": "percentage",
"trainingSplitPercentage": 0,
"testingSplitPercentage": 0
}
}
模型結果
此 API 會傳回每個表達的個別結果,包括意圖和實體的預期和實際預測。
要求 URL
{ENDPOINT}/language/authoring/analyze-conversations/projects/{projectName}/models/{trainedModelLabel}/evaluation/result?top={top}&skip={skip}&maxpagesize={maxpagesize}&api-version={API-VERSION}
預留位置 | 值 | 範例 |
---|---|---|
{ENDPOINT} |
用於驗證 API 要求的端點。 | https://<your-custom-subdomain>.cognitiveservices.azure.com |
{PROJECT-NAME} |
專案名稱。 此值區分大小寫。 | myProject |
{trainedModelLabel} |
定型模型的名稱。 此值區分大小寫。 | Model1 |
{API-VERSION} |
您呼叫的 API 版本。 | 2023-04-01 |
{top} |
要從集合傳回的表達的最大數目。 選擇性。 | 100 |
{skip} |
要傳回的第一個表達集合的位移。 選擇性。 | 100 |
{maxpagesize} |
要包含在單一回應中的表達數目上限。 選擇性 | 100 |
標頭
使用下列標頭來驗證您的要求。
機碼 | 值 |
---|---|
Ocp-Apim-Subscription-Key |
資源的金鑰。 用於驗證 API 要求。 |
回應本文
傳送要求之後,您會收到下列回應。
{
"value": [
{
"text": "send the email",
"language": "en-us",
"entitiesResult": {
"expectedEntities": [],
"predictedEntities": []
},
"intentsResult": {
"expectedIntent": "SendEmail",
"predictedIntent": "SendEmail"
}
},
{
"text": "send a mail to daniel",
"language": "en-us",
"entitiesResult": {
"expectedEntities": [
{
"category": "ContactName",
"offset": 15,
"length": 6
}
],
"predictedEntities": [
{
"category": "ContactName",
"offset": 15,
"length": 6
}
]
},
"intentsResult": {
"expectedIntent": "SendEmail",
"predictedIntent": "SendEmail"
}
},
{
"text": "i forgot to add an important part to that email to james . please set it up to edit",
"language": "en-us",
"entitiesResult": {
"expectedEntities": [
{
"category": "ContactName",
"offset": 51,
"length": 5
}
],
"predictedEntities": [
{
"category": "Category",
"offset": 19,
"length": 9
},
{
"category": "ContactName",
"offset": 51,
"length": 5
}
]
},
"intentsResult": {
"expectedIntent": "AddMore",
"predictedIntent": "AddMore"
}
},
{
"text": "send email to a and tian",
"language": "en-us",
"entitiesResult": {
"expectedEntities": [
{
"category": "ContactName",
"offset": 14,
"length": 1
},
{
"category": "ContactName",
"offset": 20,
"length": 4
}
],
"predictedEntities": [
{
"category": "ContactName",
"offset": 14,
"length": 1
},
{
"category": "ContactName",
"offset": 20,
"length": 4
}
]
},
"intentsResult": {
"expectedIntent": "SendEmail",
"predictedIntent": "SendEmail"
}
},
{
"text": "send thomas an email",
"language": "en-us",
"entitiesResult": {
"expectedEntities": [
{
"category": "ContactName",
"offset": 5,
"length": 6
}
],
"predictedEntities": [
{
"category": "ContactName",
"offset": 5,
"length": 6
}
]
},
"intentsResult": {
"expectedIntent": "SendEmail",
"predictedIntent": "SendEmail"
}
},
{
"text": "i need to add more to the email message i am sending to vincent",
"language": "en-us",
"entitiesResult": {
"expectedEntities": [
{
"category": "ContactName",
"offset": 56,
"length": 7
}
],
"predictedEntities": [
{
"category": "ContactName",
"offset": 56,
"length": 7
}
]
},
"intentsResult": {
"expectedIntent": "AddMore",
"predictedIntent": "AddMore"
}
},
{
"text": "send an email to lily roth and abc123@microsoft.com",
"language": "en-us",
"entitiesResult": {
"expectedEntities": [
{
"category": "ContactName",
"offset": 17,
"length": 9
}
],
"predictedEntities": [
{
"category": "ContactName",
"offset": 17,
"length": 9
}
]
},
"intentsResult": {
"expectedIntent": "SendEmail",
"predictedIntent": "SendEmail"
}
},
{
"text": "i need to add something else to my email to cheryl",
"language": "en-us",
"entitiesResult": {
"expectedEntities": [
{
"category": "ContactName",
"offset": 44,
"length": 6
}
],
"predictedEntities": [
{
"category": "ContactName",
"offset": 44,
"length": 6
}
]
},
"intentsResult": {
"expectedIntent": "AddMore",
"predictedIntent": "AddMore"
}
},
{
"text": "send an email to larry , joseph and billy larkson",
"language": "en-us",
"entitiesResult": {
"expectedEntities": [
{
"category": "ContactName",
"offset": 17,
"length": 5
},
{
"category": "ContactName",
"offset": 25,
"length": 6
},
{
"category": "ContactName",
"offset": 36,
"length": 13
}
],
"predictedEntities": [
{
"category": "ContactName",
"offset": 17,
"length": 5
},
{
"category": "ContactName",
"offset": 25,
"length": 6
},
{
"category": "ContactName",
"offset": 36,
"length": 13
}
]
},
"intentsResult": {
"expectedIntent": "SendEmail",
"predictedIntent": "SendEmail"
}
},
{
"text": "send mail to dorothy",
"language": "en-us",
"entitiesResult": {
"expectedEntities": [
{
"category": "ContactName",
"offset": 13,
"length": 7
}
],
"predictedEntities": [
{
"category": "ContactName",
"offset": 13,
"length": 7
}
]
},
"intentsResult": {
"expectedIntent": "SendEmail",
"predictedIntent": "SendEmail"
}
}
],
"nextLink": "{Endpoint}/language/authoring/analyze-conversations/projects/{projectName}/models/{trainedModelLabel}/evaluation/result/?api-version=2022-10-01-preview&top={top}&skip={skip}&maxpagesize={maxpagesize}"
}
載入或匯出模型資料
載入模型資料:
在 [模型評估] 頁面中選取任何模型。
選取 [載入模型資料] 按鈕。
確認您沒有必須在出現的視窗中擷取的任何未儲存變更,然後選取 [載入資料]。
等到模型資料完成載回至您的專案為止。 完成時,系統會將您重新導向回到 [結構描述設計] 頁面。
匯出模型資料:
在 [模型評估] 頁面中選取任何模型。
選取 [匯出模型資料] 按鈕。 等候模型的 JSON 快照集在本機下載。
載入模型資料
使用下列 URL、標頭和 JSON 本文來建立 POST 要求,將模型資料載入至您的專案。
要求 URL
建立 API 要求時,請使用下列 URL。 請以您自己的值取代下列預留位置值。
{ENDPOINT}/language/authoring/analyze-conversations/projects/{PROJECT-NAME}/models/{MODEL-NAME}:load-snapshot?stringIndexType=Utf16CodeUnit&api-version={API-VERSION}
預留位置 | 值 | 範例 |
---|---|---|
{ENDPOINT} |
用於驗證 API 要求的端點。 | https://<your-custom-subdomain>.cognitiveservices.azure.com |
{PROJECT-NAME} |
專案名稱。 此值區分大小寫。 | EmailApp |
{API-VERSION} |
您正在呼叫的 API 版本。 | 2022-10-01-preview |
{MODEL-NAME} |
模型的名稱。 此值區分大小寫。 | v1 |
標頭
使用下列標頭來驗證您的要求。
機碼 | 值 |
---|---|
Ocp-Apim-Subscription-Key |
資源的金鑰。 用於驗證 API 要求。 |
傳送 API 要求之後,您會收到表示成功的 202
回應。 在回應標頭中,擷取 operation-location
值。 其格式如下:
{ENDPOINT}/language/authoring/analyze-conversations/projects/{PROJECT-NAME}/models/{MODEL-NAME}/jobs/{JOB-ID}?api-version={API-VERSION}
JOB-ID
用來識別您的要求,因為此為非同步作業。 使用此 URL 來取得模型資料載入的狀態,方法是使用相同的驗證方法。
匯出模型資料
使用下列 URL、標頭和 JSON 本文來建立 POST 要求,以匯出您的模型資料。
要求 URL
建立 API 要求時,請使用下列 URL。 請以您自己的值取代下列預留位置值。
{ENDPOINT}/language/authoring/analyze-conversations/projects/{PROJECT-NAME}/:export?stringIndexType=Utf16CodeUnit&api-version={API-VERSION}&trainedModelLabel={MODEL-NAME}
預留位置 | 值 | 範例 |
---|---|---|
{ENDPOINT} |
用於驗證 API 要求的端點。 | https://<your-custom-subdomain>.cognitiveservices.azure.com |
{PROJECT-NAME} |
專案名稱。 此值區分大小寫。 | EmailApp |
{API-VERSION} |
您正在呼叫的 API 版本。 | 2022-10-01-preview |
{MODEL-NAME} |
模型的名稱。 此值區分大小寫。 | v1 |
標頭
使用下列標頭來驗證您的要求。
機碼 | 值 |
---|---|
Ocp-Apim-Subscription-Key |
資源的金鑰。 用於驗證 API 要求。 |
傳送 API 要求之後,您會收到表示成功的 202
回應。 在回應標頭中,擷取 operation-location
值。 其格式如下:
{ENDPOINT}/language/authoring/analyze-conversations/projects/{PROJECT-NAME}/jobs/{JOB-ID}?api-version={API-VERSION}
JOB-ID
用來識別您的要求,因為此為非同步作業。 使用相同的驗證方法,使用此 URL 來取得匯出的專案 JSON。
刪除模型
若要在 Language Studio 內刪除模型:
從左側功能表中選取 [模型效能]。
選取您想要刪除的模型名稱,然後選取頂端功能表中的 [刪除]。
在出現的視窗中,選取 [確定],刪除模型。
使用下列 URL、標頭和 JSON 本文來建立 DELETE 要求,刪除模型。
要求 URL
{ENDPOINT}/language/authoring/analyze-conversations/projects/{projectName}/models/{trainedModelLabel}?api-version={API-VERSION}
預留位置 | 值 | 範例 |
---|---|---|
{YOUR-ENDPOINT} |
用於驗證 API 要求的端點。 | https://<your-custom-subdomain>.cognitiveservices.azure.com |
{PROJECT-NAME} |
專案名稱。 此值區分大小寫。 | myProject |
{trainedModelLabel} |
模型名稱的名稱。 此值區分大小寫。 | model1 |
{API-VERSION} |
您正在呼叫的 API 版本。 | 2023-04-01 |
標頭
使用下列標頭來驗證您的要求。
機碼 | 值 |
---|---|
Ocp-Apim-Subscription-Key |
資源的金鑰。 用於驗證 API 要求。 |
傳送 API 要求之後,您會收到表示成功的 204
回應,這表示您的模型已刪除。
下一步
意見反應
此頁面對您有幫助嗎?