部署模型
本文内容
对模型的表现感到满意后,就可以部署它,并对其进行查询,以便根据语句进行预测。 部署模型,使其可通过预测 API 使用。
先决条件
有关详细信息,请参阅项目开发生命周期 。
部署模型
在你查看了模型的性能并确定它适合在环境中使用之后,你需要将该模型分配给某个部署以便能够对其进行查询。 将模型分配给部署,使其可通过预测 API 使用。 建议创建一个名为 production
的部署,将目前构建的最佳模型分配给该部署,并在系统中使用该模型。 你可以创建另一个名为 staging
的部署,可将当前正在使用的模型分配给该部署,以便能够对其进行测试。 项目中最多可以有 10 个部署。
若要要从 Language Studio 中部署模型,请执行以下操作:
在左侧菜单中,选择“部署模型”。
选择“添加部署”以启动“添加部署”向导。
选择“创建新部署名称”以创建新的部署,并从下面的下拉列表中分配一个已训练的模型。 还可选择“覆盖现有部署名称”,有效地替换现有部署使用的模型。
注意
覆盖现有部署不需要更改预测 API 调用,但产生的结果将基于新分配的模型。
从“模型”下拉列表中选择已训练的模型。
选择“部署”以启动部署作业。
部署成功后,旁边将显示到期日期。 部署到期 是指已部署的模型将无法用于预测,这通常发生在训练配置到期后的 12 个月内。
提交部署作业
使用以下 URL、标头和 JSON 正文创建 PUT 请求,开始部署对话语言理解模型。
请求 URL
{ENDPOINT}/language/authoring/analyze-conversations/projects/{PROJECT-NAME}/deployments/{DEPLOYMENT-NAME}?api-version={API-VERSION}
占位符
值
示例
{ENDPOINT}
用于对 API 请求进行身份验证的终结点。
https://<your-custom-subdomain>.cognitiveservices.azure.cn
{PROJECT-NAME}
项目名称。 此值区分大小写。
myProject
{DEPLOYMENT-NAME}
部署名称。 此值区分大小写。
staging
{API-VERSION}
要调用的 API 的版本 。
2023-04-01
使用以下标头对请求进行身份验证。
键
值
Ocp-Apim-Subscription-Key
资源密钥。 用于对 API 请求进行身份验证。
请求正文
{
"trainedModelLabel": "{MODEL-NAME}",
}
密钥
占位符
值
示例
trainedModelLabel
{MODEL-NAME}
将要分配给部署的模型名称。 只能分配已成功训练的模型。 此值区分大小写。
myModel
当你发送 API 请求后,将收到指示成功的 202
响应。 在响应头中,提取 operation-location
值。 其格式如下:
{ENDPOINT}/language/authoring/analyze-conversations/projects/{PROJECT-NAME}/deployments/{DEPLOYMENT-NAME}/jobs/{JOB-ID}?api-version={API-VERSION}
可使用此 URL 获取部署作业状态。
获取部署作业状态
发送成功的部署请求后,用于检查作业状态的完整请求 URL(包括终结点、项目名称和作业 ID)会包含在响应的 operation-location
标头中。
使用以下 GET 请求来获取部署作业的状态。 将占位符值替换为你自己的值。
请求 URL
{ENDPOINT}/language/authoring/analyze-conversations/projects/{PROJECT-NAME}/deployments/{DEPLOYMENT-NAME}/jobs/{JOB-ID}?api-version={API-VERSION}
占位符
值
示例
{ENDPOINT}
用于对 API 请求进行身份验证的终结点。
https://<your-custom-subdomain>.cognitiveservices.azure.cn
{PROJECT-NAME}
项目名称。 此值区分大小写。
myProject
{DEPLOYMENT-NAME}
部署名称。 此值区分大小写。
staging
{JOB-ID}
用于查找模型训练状态的 ID。
xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx
{API-VERSION}
要调用的 API 的版本 。
2023-04-01
使用以下标头对请求进行身份验证。
键
值
Ocp-Apim-Subscription-Key
资源密钥。 用于对 API 请求进行身份验证。
响应正文
发送请求后,你将获取以下响应。 继续轮询此终结点,直到“状态”参数变为“已成功”。
{
"jobId":"{JOB-ID}",
"createdDateTime":"{CREATED-TIME}",
"lastUpdatedDateTime":"{UPDATED-TIME}",
"expirationDateTime":"{EXPIRATION-TIME}",
"status":"running"
}
交换部署
在测试了分配给某个部署的模型后,你可能想要将其分配给另一个部署。 交换部署涉及以下操作:
获取分配给第一个部署的模型并将其分配给第二个部署。
获取分配给第二个部署的模型并将其分配给第一个部署。
如果想要获取分配给 staging
的模型并将其分配给 production
,这可用于交换 production
和 staging
部署。
从 Language Studio 中交换部署
在“部署模型 ”页面中,选择要交换的两个部署,然后选择顶部菜单中的“交换部署 ”。
从出现的窗口中,选择要交换的部署的名称。
使用以下 URL、标头和 JSON 正文创建 POST 请求,以启动交换部署作业。
请求 URL
{ENDPOINT}/language/authoring/analyze-conversations/projects/{PROJECT-NAME}/deployments/:swap?api-version={API-VERSION}
占位符
值
示例
{ENDPOINT}
用于对 API 请求进行身份验证的终结点。
https://<your-custom-subdomain>.cognitiveservices.azure.cn
{PROJECT-NAME}
项目名称。 此值区分大小写。
myProject
{API-VERSION}
要调用的 API 的版本 。
2023-04-01
使用以下标头对请求进行身份验证。
键
值
Ocp-Apim-Subscription-Key
资源密钥。 用于对 API 请求进行身份验证。
请求正文
{
"firstDeploymentName": "{FIRST-DEPLOYMENT-NAME}",
"secondDeploymentName": "{SECOND-DEPLOYMENT-NAME}"
}
密钥
占位符
值
示例
firstDeploymentName
{FIRST-DEPLOYMENT-NAME}
第一个部署的名称。 此值区分大小写。
production
secondDeploymentName
{SECOND-DEPLOYMENT-NAME}
第二个部署的名称。 此值区分大小写。
staging
当你发送 API 请求后,将收到指示成功的 202
响应。
删除部署
使用以下 URL、标头和 JSON 正文创建 DELETE 请求,删除对话语言理解部署。
请求 URL
{ENDPOINT}/language/authoring/analyze-conversations/projects/{projectName}/deployments/{deploymentName}?api-version={API-VERSION}
占位符
值
示例
{ENDPOINT}
用于对 API 请求进行身份验证的终结点。
https://<your-custom-subdomain>.cognitiveservices.azure.cn
{PROJECT-NAME}
项目名称。 此值区分大小写。
myProject
{DEPLOYMENT-NAME}
部署名称。 此值区分大小写。
staging
{API-VERSION}
要调用的 API 的版本 。
2023-04-01
使用以下标头对请求进行身份验证。
键
值
Ocp-Apim-Subscription-Key
资源密钥。 用于对 API 请求进行身份验证。
发送 API 请求后,将收到一个指示成功的 202
响应,这意味着部署已被删除。
分配部署资源
可以通过分配存在于不同区域中的不同语言资源来将项目部署到多个区域。
若要在 Language Studio 中分配位于其他区域的部署资源,请执行以下操作:
确保你已将自己分配为用于创建项目的资源的认知服务语言所有者 。
转到 Language Studio 中的“部署模型”页。
选择“区域 ”选项卡。
选择“添加部署资源 ”。
选择另一个区域中的语言资源。
现已准备好将项目部署到你分配了其中的资源的区域。
以编程方式分配部署资源需要进行 Microsoft Entra 身份验证**。 Microsoft Entra ID 用于确认你是否有权访问你想要分配到项目以进行多区域部署的资源。 若要在发出 REST API 调用时以编程方式使用 Azure Microsoft Entra 身份验证,请参阅Azure AI 服务身份验证文档 。
分配资源
使用以下 URL、标头和 JSON 正文提交 POST 请求以分配部署资源。
请求 URL
创建 API 请求时,请使用以下 URL。 请将以下占位符值替换为你自己的值。
{ENDPOINT}/language/authoring/analyze-conversations/projects/{PROJECT-NAME}/resources/:assign?api-version={API-VERSION}
占位符
值
示例
{ENDPOINT}
用于对 API 请求进行身份验证的终结点。
https://<your-custom-subdomain>.cognitiveservices.azure.cn
{PROJECT-NAME}
项目名称。 此值区分大小写。
myProject
{API-VERSION}
要调用的 API 版本。
2022-10-01-preview
使用 Microsoft Entra 身份验证 对此 API 进行身份验证。
正文
使用以下示例 JSON 作为正文。
{
"resourcesMetadata": [
{
"azureResourceId": "{AZURE-RESOURCE-ID}",
"customDomain": "{CUSTOM-DOMAIN}",
"region": "{REGION-CODE}"
}
]
}
密钥
占位符
值
示例
azureResourceId
{AZURE-RESOURCE-ID}
要分配的完整资源 ID 路径。 可以在 Azure 门户中资源的“属性”选项卡下的“资源 ID”字段中找到。
/subscriptions/12345678-0000-0000-0000-0000abcd1234/resourceGroups/ContosoResourceGroup/providers/Microsoft.CognitiveServices/accounts/ContosoResource
customDomain
{CUSTOM-DOMAIN}
要分配的资源的自定义子域。 可以在 Azure 门户中资源的“密钥和终结点”选项卡下找到,它显示为 URL https://<your-custom-subdomain>.cognitiveservices.azure.cn/
中的“终结点”字段的一部分
contosoresource
region
{REGION-CODE}
一个区域代码,用于指定你要分配的资源的区域。 可以在 Azure 门户中资源的“密钥和终结点”选项卡下找到,它显示为“位置/区域”字段的一部分。
chinanorth2
获取分配资源状态
使用以下 GET 请求获取分配部署资源作业的状态。 请将以下占位符值替换为你自己的值。
请求 URL
{ENDPOINT}/language/authoring/analyze-conversations/projects/{PROJECT-NAME}/resources/assign/jobs/{JOB-ID}?api-version={API-VERSION}
占位符
值
示例
{ENDPOINT}
用于对 API 请求进行身份验证的终结点。
https://<your-custom-subdomain>.cognitiveservices.azure.cn
{PROJECT-NAME}
项目名称。 此值区分大小写。
myProject
{JOB-ID}
用于获取分配部署状态的作业 ID。 可以在 API 响应分配部署资源请求时收到的 operation-location
标头值中找到此 ID。
xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx
{API-VERSION}
要调用的 API 版本。
2022-10-01-preview
使用以下标头对请求进行身份验证。
键
值
Ocp-Apim-Subscription-Key
资源密钥。 用于对 API 请求进行身份验证。
响应正文
发送请求后,你将获得以下响应。 继续轮询此终结点,直到“状态”参数变为“已成功”。
{
"jobId":"{JOB-ID}",
"createdDateTime":"{CREATED-TIME}",
"lastUpdatedDateTime":"{UPDATED-TIME}",
"expirationDateTime":"{EXPIRATION-TIME}",
"status":"running"
}
取消分配部署资源
从项目中取消分配或删除部署资源时,也会删除已部署到该资源所在区域的所有部署。
若要使用 Language Studio 取消分配或删除其他区域中的部署资源,请执行以下操作:
转到“部署模型”页中的“区域”选项卡。
选择要取消分配的资源。
选择“删除分配 ”按钮。
在出现的窗口中,键入要删除的资源的名称。
取消分配资源
使用以下 URL、标头和 JSON 正文提交 POST 请求,以从项目中取消分配或删除部署资源。
请求 URL
创建 API 请求时,请使用以下 URL。 请将以下占位符值替换为你自己的值。
{ENDPOINT}/language/authoring/analyze-conversations/projects/{PROJECT-NAME}/resources/:unassign?api-version={API-VERSION}
占位符
值
示例
{ENDPOINT}
用于对 API 请求进行身份验证的终结点。
https://<your-custom-subdomain>.cognitiveservices.azure.cn
{PROJECT-NAME}
项目名称。 此值区分大小写。
myProject
{API-VERSION}
要调用的 API 版本。
2022-10-01-preview
使用以下标头对请求进行身份验证。
键
值
Ocp-Apim-Subscription-Key
资源密钥。 用于对 API 请求进行身份验证。
Body
使用以下示例 JSON 作为正文。
{
"assignedResourceIds": [
"{AZURE-RESOURCE-ID}"
]
}
密钥
占位符
值
示例
assignedResourceIds
{AZURE-RESOURCE-ID}
要取消分配的完整资源 ID 路径。 可以在 Azure 门户中资源的“属性”选项卡下找到,它作为“资源 ID”字段显示。
/subscriptions/d73a1925-0000-0000-0000-0000c5fe888e/resourceGroups/ContosoResourceGroup/providers/Microsoft.CognitiveServices/accounts/ContosoResource
获取取消分配资源状态
使用以下 GET 请求获取取消分配部署资源作业的状态。 请将以下占位符值替换为你自己的值。
请求 URL
{ENDPOINT}/language/authoring/analyze-conversations/projects/{PROJECT-NAME}/resources/unassign/jobs/{JOB-ID}?api-version={API-VERSION}
占位符
值
示例
{ENDPOINT}
用于对 API 请求进行身份验证的终结点。
https://<your-custom-subdomain>.cognitiveservices.azure.cn
{PROJECT-NAME}
项目名称。 此值区分大小写。
myProject
{JOB-ID}
用于获取分配部署状态的作业 ID。 可以在 API 响应取消分配部署资源请求时收到的 operation-location
标头值中找到此 ID。
xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx
{API-VERSION}
要调用的 API 版本。
2022-10-01-preview
使用以下标头对请求进行身份验证。
键
值
Ocp-Apim-Subscription-Key
资源密钥。 用于对 API 请求进行身份验证。
响应正文
发送请求后,你将获得以下响应。 继续轮询此终结点,直到“状态”参数变为“已成功”。
{
"jobId":"{JOB-ID}",
"createdDateTime":"{CREATED-TIME}",
"lastUpdatedDateTime":"{UPDATED-TIME}",
"expirationDateTime":"{EXPIRATION-TIME}",
"status":"running"
}
后续步骤