你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn 。
部署模型并使用运行时 API 对文本进行分类
本文内容
当你对模型的执行方式感到满意后,就可以对其进行部署,并使用该模型对文本进行分类。 部署模型,使其可通过预测 API 使用。
先决条件
有关详细信息,请参阅项目开发生命周期 。
部署模型
在你查看了模型的性能并确定它可在环境中使用之后,你需要将该模型分配给某个部署以便能够对其进行查询。 将模型分配给部署,使其可通过预测 API 使用。 建议创建一个名为 production
的部署,将目前构建的最佳模型分配给该部署,并在系统中使用该模型。 你可以创建另一个名为 staging
的部署,可将当前正在使用的模型分配给该部署,以便能够对其进行测试。 项目中最多可以有 10 个部署。
若要要从 Language Studio 中部署模型,请执行以下操作:
在左侧菜单中,选择“部署模型”。
选择“添加部署”,以开始新部署作业。
选择“创建新部署”以创建新的部署,并从下面的下拉列表中分配已训练的模型。 还可以通过选择“覆盖现有部署”选项来覆盖现有部署,然后从下面的下拉列表中选择要为其分配的已训练的模型。
注意
覆盖现有部署不需要更改预测 API 调用,但产生的结果将基于新分配的模型。
选择“部署”以启动部署作业。
部署成功后,旁边将显示到期日期。 部署到期 是指已部署的模型将无法用于预测,这通常发生在训练配置到期后的 12 个月内。
提交部署作业
使用以下 URL、标头和 JSON 正文提交 PUT 请求,以提交部署作业。 请将以下占位符值替换为你自己的值。
{Endpoint}/language/authoring/analyze-text/projects/{projectName}/deployments/{deploymentName}?api-version={API-VERSION}
占位符
值
示例
{ENDPOINT}
用于对 API 请求进行身份验证的终结点。
https://<your-custom-subdomain>.cognitiveservices.azure.com
{PROJECT-NAME}
项目名称。 此值区分大小写。
myProject
{DEPLOYMENT-NAME}
部署的名称。 此值区分大小写。
staging
{API-VERSION}
要调用的 API 版本。 此处引用的值适用于最新发布的版本。 详细了解其他可用的 API 版本
2022-05-01
使用以下标头对请求进行身份验证。
键
值
Ocp-Apim-Subscription-Key
资源密钥。 用于对 API 请求进行身份验证。
请求正文
在请求正文中使用以下 JSON。 使用要分配给部署的模型名称。
{
"trainedModelLabel": "{MODEL-NAME}"
}
密钥
占位符
值
示例
trainedModelLabel
{MODEL-NAME}
将要分配给部署的模型名称。 只能分配已成功训练的模型。 此值区分大小写。
myModel
发送 API 请求后,你将收到 202
响应,这表明作业已正确提交。 在响应头中,提取 operation-location
值。 其格式如下:
{ENDPOINT}/language/authoring/analyze-text/projects/{PROJECT-NAME}/deployments/{DEPLOYMENT-NAME}/jobs/{JOB-ID}?api-version={API-VERSION}
{JOB-ID} 用于标识请求,因为此操作是异步操作。 你可使用此 URL 获取部署状态。
获取部署作业状态
使用以下 GET 请求来查询部署作业的状态。 可以使用在上一步中收到的 URL,或者将下面的占位符值替换为你自己的值。
{ENDPOINT}/language/authoring/analyze-text/projects/{PROJECT-NAME}/deployments/{DEPLOYMENT-NAME}/jobs/{JOB-ID}?api-version={API-VERSION}
占位符
值
示例
{ENDPOINT}
用于对 API 请求进行身份验证的终结点。
https://<your-custom-subdomain>.cognitiveservices.azure.com
{PROJECT-NAME}
项目名称。 此值区分大小写。
myProject
{DEPLOYMENT-NAME}
部署的名称。 此值区分大小写。
staging
{JOB-ID}
用于查找模型训练状态的 ID。 这是在上一步骤中收到的 location
标头值。
xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx
{API-VERSION}
要调用的 API 版本。 此处引用的值适用于最新发布的版本。 详细了解其他可用的 API 版本
2022-05-01
使用以下标头对请求进行身份验证。
键
值
Ocp-Apim-Subscription-Key
资源密钥。 用于对 API 请求进行身份验证。
响应正文
发送请求后,你将获得以下响应。 继续轮询此终结点,直到“状态”参数变为“已成功”。 应获取一个 200
代码来指示请求的成功。
{
"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-text/projects/{PROJECT-NAME}/deployments/:swap?api-version={API-VERSION}
占位符
值
示例
{ENDPOINT}
用于对 API 请求进行身份验证的终结点。
https://<your-custom-subdomain>.cognitiveservices.azure.com
{PROJECT-NAME}
项目名称。 此值区分大小写。
myProject
{API-VERSION}
要调用的 API 版本。 此处引用的值适用于最新发布的模型版本 。
2022-05-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-text/projects/{PROJECT-NAME}/deployments/{deploymentName}?api-version={API-VERSION}
占位符
值
示例
{ENDPOINT}
用于对 API 请求进行身份验证的终结点。
https://<your-custom-subdomain>.cognitiveservices.azure.com
{PROJECT-NAME}
项目名称。 此值区分大小写。
myProject
{DEPLOYMENT-NAME}
部署名称。 此值区分大小写。
prod
{API-VERSION}
要调用的 API 版本。 此处引用的值适用于最新发布的版本。 详细了解其他可用的 API 版本
2022-05-01
使用以下标头对请求进行身份验证。
键
值
Ocp-Apim-Subscription-Key
资源密钥。 用于对 API 请求进行身份验证。
发送 API 请求后,将收到一个指示成功的 202
响应,这意味着部署已被删除。 带有用于检查作业状态的 Operation-Location
标头的成功调用结果。
分配部署资源
可以通过分配存在于不同区域中的不同语言资源来将项目部署到多个区域 。
若要在 Language Studio 中分配位于其他区域的部署资源,请执行以下操作:
确保你已将自己分配为用于创建项目的资源的认知服务语言所有者 。
转到 Language Studio 中的“部署模型”页。
选择“区域 ”选项卡。
选择“添加部署资源 ”。
选择另一个区域中的语言资源。
现已准备好将项目部署到你分配了其中的资源的区域。
以编程方式分配部署资源需要进行 Microsoft Entra 身份验证。 Microsoft Entra ID 用于确认你是否有权访问你想要分配到项目以进行多区域部署的资源。 若要在发出 REST API 调用时以编程方式使用 Microsoft Entra 身份验证,请参阅 Azure AI 服务文档 中的详细信息。
分配资源
使用以下 URL、标头和 JSON 正文提交 POST 请求以分配部署资源。
请求 URL
创建 API 请求时,请使用以下 URL。 请将以下占位符值替换为你自己的值。
{ENDPOINT}/language/authoring/analyze-text/projects/{PROJECT-NAME}/resources/:assign?api-version={API-VERSION}
占位符
值
示例
{ENDPOINT}
用于对 API 请求进行身份验证的终结点。
https://<your-custom-subdomain>.cognitiveservices.azure.com
{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/d73a1925-0000-0000-0000-0000c5fe888e/resourceGroups/ContosoResourceGroup/providers/Microsoft.CognitiveServices/accounts/ContosoResource
customDomain
{CUSTOM-DOMAIN}
要分配的资源的自定义子域。 可以在 Azure 门户中资源的“密钥和终结点”选项卡下找到,它作为 URL https://<your-custom-subdomain>.cognitiveservices.azure.com/
中的“终结点”字段中显示
contosoresource
region
{REGION-CODE}
一个区域代码,用于指定你要分配的资源的区域。 可以在 Azure 门户中资源的“密钥和终结点”选项卡下的“位置/区域”字段中找到。
eastus
获取分配资源状态
使用以下 GET 请求获取分配部署资源作业的状态。 请将以下占位符值替换为你自己的值。
请求 URL
{ENDPOINT}/language/authoring/analyze-text/projects/{PROJECT-NAME}/resources/assign/jobs/{JOB-ID}?api-version={API-VERSION}
占位符
值
示例
{ENDPOINT}
用于对 API 请求进行身份验证的终结点。
https://<your-custom-subdomain>.cognitiveservices.azure.com
{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 请求进行身份验证。
响应正文
发送请求后,你将获得以下响应。 继续轮询此终结点,直到 status
参数更改为 succeeded
。
{
"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-text/projects/{PROJECT-NAME}/resources/:unassign?api-version={API-VERSION}
占位符
值
示例
{ENDPOINT}
用于对 API 请求进行身份验证的终结点。
https://<your-custom-subdomain>.cognitiveservices.azure.com
{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-text/projects/{PROJECT-NAME}/resources/unassign/jobs/{JOB-ID}?api-version={API-VERSION}
占位符
值
示例
{ENDPOINT}
用于对 API 请求进行身份验证的终结点。
https://<your-custom-subdomain>.cognitiveservices.azure.com
{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"
}
后续步骤