1

我们在机器学习服务上创建了一个图像评分模型,并使用 ACI 和 AKS 上的 AMLS 门户进行了部署。虽然它在较小的图像上运行,但对于较大的图像,它会在 ACI 和 AKS 上恰好 1 分钟后超时。预计图像评分可能需要几分钟。

想知道,如果是使用 AMLS 部署的限制,还是在 ACI 和 AKS 上,它们会在 60 秒后超时部署的 Web 服务?欢迎任何解决方法

ACI 错误:- 发布http://localhost:5001/score:net/http:请求已取消(等待标头时超出 Client.Timeout)

AKS 错误:- 回复前副本已关闭连接

4

2 回答 2

2

如果您在 AKS 中部署服务,那么 @Greg 的解决方案对于大多数情况应该足够了。但是,如果您的值scoring_timeout_ms将超过 60000 毫秒(即 60 秒),那么我建议您也使用以下配置设置进行调整。当您的模型作为部署部署在 Kubernetes 中时,我们定义了一个 LivenessProbe,这样如果您的模型容器变得无响应,Kubernetes 可以自动重新启动您的容器,以恢复您的模型的健康状况。

  • period_seconds:每个 LivenessProbe 之间的时间间隔。如果您的模型需要 45 秒来响应评分请求,那么您可以做的一件事是将每次 LivenessProbe 执行之间的时间间隔从默认的 10 秒增加到可能的 30 秒(或更多)。
  • failure_threshold:在 Kubernetes 重新启动模型容器之后 LivenessProbe 失败的次数。如果你想每 10 秒运行一次 LivenessProbe 并且你的模型需要 45 秒来响应,那么你可以failure_threshold从默认的 3 增加到 10。这意味着在连续 10 次 LivenessProbe 失败后,Kubernetes 将重新启动你的容器。
  • timeout_seconds: LivenessProbe 在放弃前等待的时间间隔。您可以考虑的另一种选择是将timeout_seconds默认的 2 秒增加到 30 秒。这将导致 LivenessProbe 在您的容器忙时等待长达 30 秒,但如果不是,它将提前回复。

没有要修改的“正确”配置设置,但这些设置的组合肯定有助于防止 502 “Replica closed connection before reply”错误。

于 2019-10-02T21:31:52.883 回答
1

部署类有一个超时设置,您可以在构造函数中更改,这会有所帮助。无论如何,有些客户端会超时。

https://docs.microsoft.com/en-us/python/api/azureml-core/azureml.core.webservice.aks.aksservicedeploymentconfiguration?view=azure-ml-py

score_timeout_ms : int => 强制执行对该 Web 服务的评分调用的超时。默认为 60000

于 2019-09-23T15:22:25.860 回答