第 216 题:模型热更新,零停机部署的技术方案?
题目
模型热更新,零停机部署的技术方案?
完整讲解
一、模型热更新与零停机目标
热更新:不重启进程、不中断在线流量,将推理服务从旧模型切换到新模型。零停机:用户无感知、无 5xx、无连接断开;对高可用场景必需。
二、常见技术方案
- 多版本并存:服务加载多版本模型(如 TF Serving、Triton 多版本),默认版本或路由策略决定当前使用版本。发布新模型时:先加载新版本(新目录/新 endpoint),再切换默认或路由到新版本;旧版本可保留一段时间便于回滚,再卸载。流量切换:通过配置或控制面将流量从旧版本切到新版本,无进程重启。
- 蓝绿 / 金丝雀:新模型部署在新实例组(蓝),与旧实例组(绿)并存;负载均衡先切少量流量到蓝(金丝雀),观察无异常后全量切到蓝,再缩绿。滚动更新:逐批替换实例(新实例拉新模型、老实例排空后下线),实现零停机;需保证新实例就绪后再接流量、老实例优雅退出。
- 共享内存 / 动态加载:部分框架支持同一进程内替换模型文件或句柄(如共享内存映射新权重),减少重启;实现复杂且依赖框架能力。
三、关键点
- 版本管理:模型路径、版本号与配置的原子更新;回滚:保留旧版本、一键切回。流量与健康检查:新实例通过健康检查后再加流量;优雅退出:老实例等当前请求完成再退出。一致性:请求级或会话级路由到同一版本,避免同一请求前后端用不同版本(若需)。
面试要点
- 能说清热更新与零停机的目标;能描述多版本并存与默认/路由切换、蓝绿与金丝雀、滚动更新的思路。
- 能说明如何避免重启与中断:多版本加载后切流量、新实例就绪后接流量、老实例优雅退出。
- 能简述回滚、健康检查与流量切换的配合;能提及 TF Serving/Triton 的版本能力。
记忆要点
- 热更新=不重启切换模型;方案=多版本并存+切默认/路由、蓝绿/金丝雀、滚动更新。
- 零停机=新版本先加载再切流量、老实例优雅退出;回滚=保留旧版本、一键切回。