对话语言理解(CLU)微调任务是一个工作区项目,可在其中自定义语言模型,以识别用户意向并从用户输入(言语)中提取关键信息(实体)。 在此工作区中,定义与应用程序相关的意向和实体,相应地标记示例用户话语,并使用此标记的数据微调模型。 此过程定制模型,以更好地了解聊天应用程序的特定需求和细微差别。 本指南指导你完成在 Azure AI Foundry 或使用 REST API 中配置微调工作区的过程。
Note
- 如果已有 Azure AI 语言或多服务资源(无论是单独使用还是通过 Language Studio 使用),则可以在 Azure AI Foundry 门户中继续使用这些现有语言资源。 有关详细信息,请参阅 如何在 Azure AI Foundry 门户中使用 Azure AI 服务。
- 在 Azure AI Foundry 中,微调任务可充当你自定义 CLU 模型时的工作区。 以前, 微调任务 称为 CLU 项目。 在较旧的 CLU 文档中,可能会遇到这两个可互换使用的术语。
- 强烈建议在 AI Foundry 中使用 Azure AI Foundry 资源;但是,也可以使用语言资源按照这些说明进行操作。
Prerequisites
优化 CLU 模型
若要创建 CLU 微调模型,请先配置环境,然后创建微调项目,该项目充当自定义 CLU 模型的工作区。
导航到 Azure AI Foundry。
如果尚未登录,门户会提示你使用 Azure 凭据执行此作。
登录后,可以在 Azure AI Foundry 中创建或访问现有项目。
如果尚未开始执行此任务的项目,请选择它。
从左侧导航面板中选择“微调”选项。
在主窗口中,选择“AI 服务微调”选项卡,然后选择“+ 微调”按钮。
在 “创建服务微调 ”窗口中,选择“ 对话语言理解 ”选项卡,然后选择“ 下一步”。
在“创建 CLU 微调任务”窗口中,完成“名称”和“语言”字段。 如果打算使用免费的 标准训练 模式微调模型,请选择语言字段的 英语 。
选择“创建”按钮。
创建操作可能需要几分钟才能完成。
Note
-
标准训练 可实现更快的训练时间和更快的迭代;但是,它仅适用于英语。
-
高级培训 包括较长的培训持续时间,并且支持英语、其他语言和多语言项目。
- 有关详细信息, 请参阅训练模式。
任务创建完成后,请从 AI 服务微调窗口中选择任务,进入微调页面入门页面。
使用以下 URL、标头和 JSON 正文提交一个PATCH请求,以创建一个新项目。
请求的 URL
创建 API 请求时,请使用以下 URL。 将占位符值替换为你自己的值。
{ENDPOINT}/language/authoring/analyze-conversations/projects/{PROJECT-NAME}?api-version={API-VERSION}
| Placeholder |
Value |
Example |
{ENDPOINT} |
用于对 API 请求进行身份验证的终结点。 |
https://<your-custom-subdomain>.cognitiveservices.azure.com |
{PROJECT-NAME} |
项目的名称。 此值区分大小写。 |
myProject |
{API-VERSION} |
要调用的 API 的版本。 |
2023-04-01 |
使用以下标头对请求进行身份验证。
| Key |
Value |
Ocp-Apim-Subscription-Key |
资源的键。 用于对 API 请求进行身份验证。 |
Content-Type |
application/merge-patch+json |
Body
使用以下示例 JSON 作为正文。
{
"projectName": "{PROJECT-NAME}",
"language": "{LANGUAGE-CODE}",
"projectKind": "Conversation",
"description": "Project description",
"multilingual": true
}
| Key |
Placeholder |
Value |
Example |
projectName |
{PROJECT-NAME} |
项目名称。 此值区分大小写。 |
EmailApp |
language |
{LANGUAGE-CODE} |
一个字符串,用于指定项目中所用语句的语言代码。 如果你的项目是多语言项目,请选择大多数话语 的语言代码 。 |
en-us |
multilingual |
true |
一个布尔值,可用于在数据集中使用多种语言的文档。 部署模型后,可以使用任何受支持的语言查询模型(不一定包含在训练文档中)。 若要了解有关多语言支持的详细信息,请参阅 语言支持。 |
true |
就是这样! 你可以开始你的微调任务项目。 有关详细信息, 请参阅后续步骤。
查看和管理项目详细信息
可以获取有关项目的最新信息,进行必要的更改,并通过 Azure AI Foundry 或 REST API 终结点高效管理项目任务。
Azure AI Foundry 项目概述页显示有关微调任务项目的信息,包括其名称、订阅、资源组和连接的资源。 还可以通过在概述页上选择“ 在 Azure 门户中管理 ”来访问 Azure 门户中的项目资源。
可以通过 REST API 访问、查看和管理所有项目详细信息。
若要获取项目详细信息,请使用以下 URL 和标头提交 GET 请求。 将占位符值替换为你自己的值。
{ENDPOINT}/language/authoring/analyze-conversations/projects/{PROJECT-NAME}?api-version={API-VERSION}
| Placeholder |
Value |
Example |
{ENDPOINT} |
用于对 API 请求进行身份验证的终结点。 |
https://<your-custom-subdomain>.cognitiveservices.azure.com |
{PROJECT-NAME} |
项目的名称。 此值区分大小写。 |
myProject |
{API-VERSION} |
要调用的 API 的版本 。 |
2023-04-01 |
使用以下标头对请求进行身份验证。
| Key |
Value |
Ocp-Apim-Subscription-Key |
资源的键。 用于对 API 请求进行身份验证。 |
响应正文
发送请求后,会收到以下响应:
{
"createdDateTime": "2022-04-18T13:53:03Z",
"lastModifiedDateTime": "2022-04-18T13:53:03Z",
"lastTrainedDateTime": "2022-04-18T14:14:28Z",
"lastDeployedDateTime": "2022-04-18T14:49:01Z",
"projectKind": "Conversation",
"projectName": "{PROJECT-NAME}",
"multilingual": true,
"description": "This is a sample conversation project.",
"language": "{LANGUAGE-CODE}"
}
发送 API 请求后,您会收到一个表明成功的200响应,其中包含带有项目详细信息的 JSON 响应正文。
导入现有的 Azure AI 项目
通过导入配置文件,可以将现有设置直接引入平台,从而更轻松地根据预定义的首选项设置和自定义服务。
可以使用 REST API 导入 CLU config.json 文件
使用以下 URL、标头和 JSON 正文提交 POST 请求,以导入项目。
请求的 URL
创建 API 请求时,请使用以下 URL。 将占位符值替换为你自己的值。
{ENDPOINT}/language/authoring/analyze-conversations/projects/{PROJECT-NAME}/:import?api-version={API-VERSION}
| Placeholder |
Value |
Example |
{ENDPOINT} |
用于对 API 请求进行身份验证的终结点。 |
https://<your-custom-subdomain>.cognitiveservices.azure.com |
{PROJECT-NAME} |
项目的名称。 此值区分大小写,必须与要导入的 JSON 文件中的项目名称匹配。 |
EmailAppDemo |
{API-VERSION} |
要调用的 API 的版本 。 |
2023-04-01 |
使用以下标头对请求进行身份验证。
| Key |
Value |
Ocp-Apim-Subscription-Key |
资源的键。 用于对 API 请求进行身份验证。 |
Body
所发送的 JSON 正文类似于以下示例。 有关 JSON 对象的详细信息,请参阅 参考文档。
{
"projectFileVersion": "{API-VERSION}",
"stringIndexType": "Utf16CodeUnit",
"metadata": {
"projectKind": "Conversation",
"settings": {
"confidenceThreshold": 0.7
},
"projectName": "{PROJECT-NAME}",
"multilingual": true,
"description": "Trying out CLU",
"language": "{LANGUAGE-CODE}"
},
"assets": {
"projectKind": "Conversation",
"intents": [
{
"category": "intent1"
},
{
"category": "intent2"
}
],
"entities": [
{
"category": "entity1"
}
],
"utterances": [
{
"text": "text1",
"dataset": "{DATASET}",
"intent": "intent1",
"entities": [
{
"category": "entity1",
"offset": 5,
"length": 5
}
]
},
{
"text": "text2",
"language": "{LANGUAGE-CODE}",
"dataset": "{DATASET}",
"intent": "intent2",
"entities": []
}
]
}
}
| Key |
Placeholder |
Value |
Example |
{API-VERSION} |
要调用的 API 的版本 。 |
2023-04-01 |
|
projectName |
{PROJECT-NAME} |
项目名称。 此值区分大小写。 |
EmailAppDemo |
language |
{LANGUAGE-CODE} |
一个字符串,用于指定项目中所用语句的语言代码。 如果你的项目是多语言项目,请选择大多数话语 的语言代码 。 |
en-us |
multilingual |
true |
一个布尔值,可用于在数据集中使用多种语言的文档。 部署模型后,可以使用任何 受支持的语言查询模型,包括训练文档中不包含的语言。 |
true |
dataset |
{DATASET} |
有关如何在测试和训练集之间拆分数据的信息,请参阅 AI Foundry 中的话语标签。 此字段的可能值为 Train 和 Test。 |
Train |
成功请求后,API 响应包含 URL operation-location 标头,可用于检查导入作业的状态。 标头的格式如下例所示:
{ENDPOINT}/language/authoring/analyze-conversations/projects/{PROJECT-NAME}/import/jobs/{JOB-ID}?api-version={API-VERSION}
导出微调项目
通过导出配置文件,可以保存项目的设置和结构的当前状态,以便根据需要轻松备份或传输项目。
可以将 Azure Foundry 精细优化任务项目下载为 config.json 文件:
导航到项目主页。
在页面顶部,从右侧页面功能区区域选择项目。
选择 “下载配置文件”。
可以将 CLU 项目导出为 config.json 文件。
请使用以下 URL、标头和 JSON 正文创建POST请求以导出项目。
请求的 URL
创建 API 请求时,请使用以下 URL。 将占位符值替换为你自己的值。
{ENDPOINT}/language/authoring/analyze-conversations/projects/{PROJECT-NAME}/:export?stringIndexType=Utf16CodeUnit&api-version={API-VERSION}
| Placeholder |
Value |
Example |
{ENDPOINT} |
用于对 API 请求进行身份验证的终结点。 |
https://<your-custom-subdomain>.cognitiveservices.azure.com |
{PROJECT-NAME} |
项目的名称。 此值区分大小写。 |
EmailApp |
{API-VERSION} |
要调用的 API 的版本 。 |
2023-04-01 |
使用以下标头对请求进行身份验证。
| Key |
Value |
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。
删除项目
删除项目可确保从系统永久删除它及其所有关联的数据。
如果不再需要项目,可以从 Azure AI Foundry 将其删除。
导航到 Azure AI Foundry 主页。 除非已完成此步骤且会话处于活动状态,否则请通过登录来启动身份验证过程。
选择要从 Azure AI Foundry 的“持续构建”中删除的项目
选择“管理中心”。
选择“ 删除项目”。
删除中心及其所有项目:
导航到“中心”部分的“概述”选项卡。
在右侧,选择 “删除中心”。
该链接将打开 Azure 门户,以便删除中心。
如果不再需要项目,则可以使用 REST API 将其删除。 若要继续,请访问 REST API,并按照记录的步骤删除项目以完成此作。
使用以下 URL、标头和 JSON 正文创建 DELETE 请求,以删除对话语言理解项目。
请求的 URL
{ENDPOINT}/language/authoring/analyze-conversations/projects/{PROJECT-NAME}?api-version={API-VERSION}
| Placeholder |
Value |
Example |
{ENDPOINT} |
用于对 API 请求进行身份验证的终结点。 |
https://<your-custom-subdomain>.cognitiveservices.azure.com |
{PROJECT-NAME} |
项目的名称。 此值区分大小写。 |
myProject |
{API-VERSION} |
要调用的 API 的版本 。 |
2023-04-01 |
使用以下标头对请求进行身份验证。
| Key |
Value |
Ocp-Apim-Subscription-Key |
资源的键。 用于对 API 请求进行身份验证。 |
发送 API 请求后,会收到指示 202 成功(这意味着项目已删除)的响应。
后续步骤
创建微调工作区后,通过定义意向和实体并将其添加到架构来启动微调任务: