我们已经在机器学习服务上创建了图像评分模型,并在ACI和AKS上都使用AMLS门户进行了部署。 尽管它在较小的图像上运行,但对于较大的图像,在ACI和AKS上恰好1分钟后就会超时。 预计图像评分可能需要几分钟。
想知道,这是使用AMLS部署的限制还是ACI和AKS在60秒后使部署的Web服务超时? 任何解决方法都将受到欢迎
ACI错误:- 发布http://localhost:5001/score:net / http:请求已取消(等待标头时,超出了Client.Timeout)
AKS错误:- 副本已关闭连接,然后回复
答案 0 :(得分:1)
部署类具有一个超时设置,您可以在构造函数中进行更改,这会有所帮助。无论如何,有些客户会超时。
scoring_timeout_ms :int =>为对该Web服务的调用进行评分而强制实施的超时。默认为60000
答案 1 :(得分:1)
如果您要在AKS中部署服务,那么@Greg的解决方案在大多数情况下就足够了。但是,如果您scoring_timeout_ms
的值将超过60000毫秒(即60秒),那么我建议您也使用以下配置设置进行调整。当您的模型作为部署部署到Kubernetes中时,我们定义了一个LivenessProbe,以便在模型容器无响应时,Kubernetes可以自动重新启动容器,以恢复模型的运行状况。
period_seconds
:每个LivenessProbe之间的时间间隔。如果您的模型需要45秒来响应评分请求,那么您可以做的一件事就是将每次LivenessProbe执行之间的时间间隔从默认的10秒增加到可能的30秒(或更多)。failure_threshold
:LivenessProbe失败的次数,此后Kubernetes重新启动模型容器。如果您想每10秒运行一次LivenessProbe,并且模型需要45秒才能响应,那么您可以将failure_threshold
从默认值3增加到10。这意味着在连续10次LivenessProbe失败后,Kubernetes将重新启动您的容器。timeout_seconds
:LivenessProbe放弃之前要等待的时间间隔。您可以考虑的另一种选择是将timeout_seconds
从默认的2秒增加到30秒。这将导致LivenessProbe在您的容器繁忙时最多等待30秒,但在不繁忙时,它将更早回复。没有一个可以修改的“正确”配置设置,但是这些组合的使用肯定会有助于防止502“在回复之前关闭复制的连接”错误。