日期:2026-09-20
我们私有化部署了十几个模型,客服问答、核单、生图、审核各用各的。一开始图省事,每个模型独占一张卡常驻,结果卡不够用,新模型上不了线,闲时那些卡又空转烧电。老板问为什么花了钱利用率还这么低,答不上来。
常驻独占卡时,我们算过一笔账,闲时那些卡利用率不到两成,等于花全价养着睡觉的机器,老板当然不爽,问为什么花了钱还这么低。我们才下决心重构部署方式,把显存和卡当成真金白银来算,不再图省事常驻。
懒加载上线后,我们顺手做了模型热度榜,哪些模型真有人用、哪些躺尸,一眼看清,躺尸的干脆不预热能省不少内存。资源不再是糊涂账,扩容也有依据,老板看榜就知道该不该加卡。
我们重构了推理集群的部署方式,做多模型并发加显存复用。核心思路是共享 KV 缓存、按需动态加载模型,不常用的模型不下浅层占着卡,而是卸载到内存,来请求再加载。这样一张卡能承载多个模型,显存按峰值错峰复用。
动态加载我们做了分级,热点模型常驻,温模型驻内存冷启快,冷模型落盘,三层按需上卡,承载翻了一倍多,新模型也能随时上。整体承载量上来,成本下来,老板那笔账终于算得过来,闲时空转就是烧钱我们记在心上。
KV 缓存共享我们限制了单请求缓存上限,防止个别长上下文把缓存占满拖垮别人,这是上线后观察到一个异常才加的闸。稳了之后整体吞吐更平滑,没人抢资源,高峰也扛得住。
显存复用这套后来也用到了训练推理混部,闲时训练占卡、高峰推理抢回,同一批硬件既训又推,私有化环境每一张卡都得榨干。老板看到利用率曲线才真正认可这套架构,钱花在刀刃上,扩容也暂缓了。我们还做了按模型粒度的成本分摊,业务方也服气,资源不再是糊涂账。能扛才是真稳,运维也轻松,半夜不用爬起来救火,团队状态都好了,架构才可持续。
运维看到成本分摊后,业务方主动把躺尸模型下线,资源回收很顺,没人再争抢,架构的账算清楚了大家都舒服,扩容也不再是默认选项。
第一个坑是全常驻。我们一开始八张卡只装八个模型,其余模型想上都排不上。改成懒加载后,冷门模型平时驻内存不占显存,请求来了再拷上卡,承载直接翻倍。第二个坎是冷启耗时,懒加载要快,否则首请求等得久。
KV 缓存共享前提是上下文模板对齐,我们统一了系统提示词结构,同模板请求才能复用前缀缓存,省下不少显存,否则复用不上还出错。第三个坎是冷启,我们预热点模型并做异步预热,把冷启藏在正常流量里,用户基本无感。
冷启预热我们按访问曲线排,工作日早高峰前把热点模型全 load 好,用户进来不碰冷启,监控曲线那段平得让老板以为我们没在干活。体验却是最好的,首响也稳。
改造后单卡承载模型数从 1 个提到约 3 个,十几个模型用原来一半的卡就跑下了,省下几张卡的采购。模型冷启耗时从首次最坏十几秒压到两秒内,靠预热基本无感。显存利用率从常驻时的约五成提到八成以上。
预热我们放在低峰异步做,首请求基本碰不到冷启,用户无感,监控上看冷启曲线平了不少,单卡承载模型数从 1 个提到约 3 个。并发吞吐涨了约一倍,电费和卡成本一个季度省出可观一块,老板终于满意。
显存复用后我们还做了按模型粒度的成本分摊,哪个业务占多少卡清清楚楚,之前分摊靠拍脑袋,现在用数据说话。业务方也服气,该扩容该缩都明白,账单不再是一笔糊涂账。
私有化部署别给每个模型都常驻独占卡,显存和卡是钱,懒加载加动态加载才是正道。冷启要预热,不然首请求体验崩,异步预热能把延迟藏起来。KV 缓存能共享就共享,但前提是上下文模板对齐。
私有化部署讲性价比是硬道理,懒加载加显存复用能让同样硬件多扛一倍业务,扩容的钱先省下再说,闲时空转就是烧钱。承载量按峰值错峰算,别按常驻算,资源能省一大半,这笔账每个私有化项目都该先算。
动态加载分三级后,我们把冷模型落盘策略接了对象存储,换机也不丢,扩展性比常驻强太多。私有化环境机器故障难免,能扛才是真稳,运维也轻松,半夜不用爬起来救。
案例片段(已脱敏): 某制造业私有化集群,原 8 卡装 8 模型。我们的多模型并发与显存复用配置片段:
常驻: 高频模型(客服/核单) 占卡 懒加载: 低频模型(生图/审核) 驻内存, 请求时 load 到卡 KV共享: 同模板前缀上下文共用 cache, 省显存 预热: 低峰异步 load 热点模型, 冷启<2s改造后 8 卡承载 14 模型,显存利用率 52%->83%,冷启从 13s 降到 1.8s。