重新训练和部署经典工作室(经典)Web 服务
适用于:机器学习 Studio(经典版)不适用。
重要
对机器学习工作室(经典)的支持将于 2024 年 8 月 31 日结束。 建议在该日期之前转换到 Azure 机器学习。
从 2021 年 12 月 1 日开始,你将无法创建新的机器学习工作室(经典)资源。 在 2024 年 8 月 31 日之前,可继续使用现有的机器学习工作室(经典)资源。
ML 工作室(经典)文档即将停用,将来可能不会更新。
重新训练机器学习模型是确保它们保持准确并基于最相关的数据的一种方法。 本文介绍如何重新训练经典工作室(经典)Web 服务。 有关如何重新训练新工作室(经典)Web 服务的指南, 请查看本操作指南文章。
先决条件
本文假设你已经进行了重新训练试验和预测性试验。 这些步骤在重新训练和部署机器学习模型中进行了解释。但是,你不需将机器学习模型部署为新的 Web 服务,只需将预测试验部署为经典 Web 服务即可。
添加新的终结点
已部署的预测 Web 服务包含与原始训练和评分实验训练模型保持同步的默认评分终结点。 若要使用新的训练模型更新 Web 服务,必须创建新的评分终结点。
以下两种方法可将新终结点添加到 Web 服务:
- 以编程方式
- 使用 Azure Web 服务门户
注意
确保将终结点添加到预测 Web 服务,而不是训练 Web 服务。 如果已正确部署训练和预测 Web 服务,应该看到已列出两个单独的 Web 服务。 预测 Web 服务应以“[predictive exp.]”结尾。
以编程方式添加终结点
可以使用此 GitHub 存储库中提供的示例代码添加评分终结点。
使用 Azure Web 服务门户添加终结点
- 在机器学习工作室(经典),在左侧导航列中,单击“Web 服务”。
- 在 Web 服务仪表板的底部,单击“管理终结点预览”。
- 单击“添加” 。
- 键入新终结点的名称及说明。 选择日志记录级别以及是否启用示例数据。 有关日志记录的详细信息,请参阅为机器学习 Web 服务启用日志记录。
更新添加的终结点的已训练模型
检索修补程序 URL
请按照以下步骤使用 Web 门户获取正确的修补程序 URL:
- 登录到 Azure 机器学习 Web 服务门户。
- 单击“Web 服务”或顶部的“经典 Web 服务”。
- 单击你正在使用的计分 Web 服务(如果未修改 Web 服务的默认名称,则它将以“[Scoring Exp.]”结尾)。
- 单击“+新建”。
- 添加终结点后,单击终结点名称。
- 在“修补程序”URL 下面,单击“API 帮助”打开修补帮助页。
注意
如果将终结点添加到训练 Web 服务而不是预测 Web 服务,则单击 “更新资源 ”链接时会收到以下错误:“很抱歉,但此功能不受支持或在此上下文中可用。 此 Web 服务没有可更新的资源。 我们对于所造成的不便深表歉意,正在努力改进此工作流。
修补程序帮助页包含你必须使用的修补程序 URL,并提供可用于调用它的示例代码。
更新终结点
现在可以使用训练模型更新之前创建的评分终结点。
以下示例代码演示了如何使用 BaseLocation、RelativeLocation、SasBlobToken 和 PATCH URL 更新终结点。
private async Task OverwriteModel()
{
var resourceLocations = new
{
Resources = new[]
{
new
{
Name = "Census Model [trained model]",
Location = new AzureBlobDataReference()
{
BaseLocation = "https://esintussouthsus.blob.core.windows.net/",
RelativeLocation = "your endpoint relative location", //from the output, for example: "experimentoutput/8946abfd-79d6-4438-89a9-3e5d109183/8946abfd-79d6-4438-89a9-3e5d109183.ilearner"
SasBlobToken = "your endpoint SAS blob token" //from the output, for example: "?sv=2013-08-15&sr=c&sig=37lTTfngRwxCcf94%3D&st=2015-01-30T22%3A53%3A06Z&se=2015-01-31T22%3A58%3A06Z&sp=rl"
}
}
}
};
using (var client = new HttpClient())
{
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", apiKey);
using (var request = new HttpRequestMessage(new HttpMethod("PATCH"), endpointUrl))
{
request.Content = new StringContent(JsonConvert.SerializeObject(resourceLocations), System.Text.Encoding.UTF8, "application/json");
HttpResponseMessage response = await client.SendAsync(request);
if (!response.IsSuccessStatusCode)
{
await WriteFailedResponse(response);
}
// Do what you want with a successful response here.
}
}
}
可以从终结点仪表板获取用于调用的 apiKey 和 endpointUrl。
Resources 中的 Name 参数的值应与预测实验中已保存的训练模型的资源名称相匹配。 若要获取资源名称,请执行以下步骤:
- 登录到 Azure 门户。
- 在左侧菜单中,单击“机器学习”。
- 在“名称”下,单击你的工作区,并单击“Web 服务”。
- 在“名称”下,单击“人口普查模型 [预测实验]”。
- 单击已添加的新终结点。
- 在终结点仪表板上,单击“更新资源”。
- 在 Web 服务的更新资源 API 文档页上,可以在“可更新资源”下找到“资源名称”。
如果在完成更新终结点之前 SAS 令牌到期,必须使用作业 ID 执行 GET 操作,才能获取全新令牌。
当代码成功运行时,新终结点应当在大约 30 秒内开始使用重新训练的模型。
后续步骤
若要了解有关如何管理 Web 服务或跟踪多个实验运行的详细信息,请参阅以下文章: