深度学习系统:模型部署、服务更新与现有解决方案综述
1. 模型推理服务示例
在一个示例设置中,模型推理服务加载了版本 1.0 和版本 2.0 的模型,随时准备处理推理请求。从元数据与工件存储中读取到 9:1 的流量分配配置,这意味着在进行推理时,模型推理服务会将约 90% 的传入推理请求流量导向模型版本 1.0,其余 10% 导向版本 2.0,这一过程对服务客户端是透明的。同时,模型推理服务会收集客户端反馈、指标和日志,供研究人员和数据科学家比较新旧模型。
2. 服务更新方法
2.1 排空(DRAINING)
当服务设计为支持排空时,它必须等待子进程完成后再关闭自身,同时不再接受会产生新子进程的新请求。这个排空过程可能比典型的 Web 服务更长,因为后者的会话生命周期通常较短。此外,还需要一个组件来同时前置服务的新旧版本,确保新请求只发送到新版本。
服务与其子进程之间的握手设计也值得注意。如果子进程主动与父服务通信(例如发送进度信息),服务端可能需要进行适当的排空。不过,也有一些技术可以容忍缺乏排空的情况。
2.2 交接(HANDING OFF)
我们可以设计服务将监督和监控职责交接给新版本,而不是依赖排空。交接的设计方式各不相同,主要取决于监督服务与子进程之间的监督和握手方式。以下是一些示例:
- 服务的状态信息可以由持久数据存储支持,但这可能会使数据架构设计复杂化,因为服务的新旧版本可能会在短时间内同时访问数据存储。
- 如果子进程主动与监督者通信,可以通过使用负载均衡器等基础设施组件前置监督者,使监督者的 URL 在不同版本间保持不变。为了实现平稳过渡,可能需要额
超级会员免费看
订阅专栏 解锁全文
4917

被折叠的 条评论
为什么被折叠?



