你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
-
2025-06-30
完成模型训练后,可以查看模型详细信息,了解模型对于测试集表现出的性能。
注意
使用“自动从训练数据拆分测试集”选项,每次训练新模型时可能会产生不同的模型评估结果,因为测试集是从语句中随机选择的。 若要确保在每次训练模型时在同一测试集上计算评估,请确保在启动训练作业时使用手动拆分训练和测试数据选项,并在添加话语时定义测试集。
先决条件
在查看模型评估之前,你需要:
有关详细信息,请参阅项目开发生命周期。
模型详细信息
转到 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 响应,这意味着部署已删除。
后续步骤
反馈
此页面是否有帮助?
否
Need help with this topic?
Want to try using Ask Learn to clarify or guide you through this topic?
此页面是否有帮助?
Need help with this topic?
Want to try using Ask Learn to clarify or guide you through this topic?