一、训练结束之后,问题才刚开始
(一)两个阶段的指标完全不同
训练阶段看的是吞吐,单位时间内处理多少内容决定了任务何时结束;推理阶段看的是时延与并发,用户等待多久、同时能服务多少人,直接决定体验。两套指标对应的资源配比也不一样:训练需要高互联带宽与大批次,推理更看重单请求的响应速度与实例数量。用同一套配置去覆盖两个阶段,通常会两头不讨好。
(二)推理的资源占用形态
推理的显存占用主要由模型权重与键值缓存构成。权重是固定的,键值缓存则随并发数与上下文长度线性增长。这就意味着,长对话场景下的瓶颈往往不是算力,而是显存容量。理解这一点,才能解释为什么并发增加后时延会突然抬升。
① 权重占用:由模型参数量与精度决定,量化后明显下降。
② 键值缓存:随并发数与上下文长度同步增长,是扩容的主要依据。
③ 算力消耗:解码阶段以访存为主,算力利用率通常低于训练阶段。
(三)调用曲线的形状决定配置
同样是日均百万次调用,均匀分布在二十四小时与集中在两小时内,所需配置完全不同。前者用固定实例即可,后者必须有弹性能力。在申请资源之前,先把历史调用数据按小时粒度铺开,看清峰值、均值与低谷的比例,再决定最小实例数与扩容上限,这一步能省下大量无效支出。
二、息壤平台推理服务的部署形态
(一)在线接口方式
在线接口是最常见的形态,业务系统通过标准接口发起请求,服务侧负责模型准备、请求排队与结果返回。天翼云息壤提供模型托管与接口服务能力,支持主流开源模型的快速部署,也可以在接口层做限流与鉴权配置。对于已经跑在天翼云主机上的业务,只需调整调用位置即可完成切换,改动量很小。接口层还应保留调用日志,便于事后按时间区间回查异常请求。
(二)批量处理方式
并非所有推理都需要实时返回。离线评测、数据标注、文本批处理这类任务更适合批量提交,由系统在资源空闲时集中处理。批量方式的单价通常低于实时调用,代价是结果不立即返回。把实时与批量分开,是控制推理支出的第一步,也是最容易被忽略的一步。
(三)专属资源方式
对数据不出域或时延要求格外严格的业务,可以使用专属资源部署,模型与数据都在单独划分的资源内运行。这种方式资源占用相对固定,适合调用量长期稳定的场景,比如内部知识库问答与固定流程的文档处理。
三、时延与并发的折衷
(一)首字时延与整体时延
用户感知的快慢由两个指标决定:从发出请求到收到第一个字符的时间,以及完整响应返回的时间。前者受排队与预填充影响,后者主要由解码速度决定。优化方向也因此不同:想改观首字时延,要减少排队并优化提示词处理;想改观整体时延,要看解码效率与输出长度控制。
(二)请求合并与前缀缓存
解码阶段以访存为主,单个请求很难把算卡喂满。把多个请求合并成一批同时解码,可以显著提高吞吐;对系统提示词这类重复前缀做缓存,则能直接省掉重复计算。这两项优化在长系统提示的场景下收益尤其明显,往往不需要改动业务代码就能生效。
1. 请求合并:将到达时间接近的请求组成批次,提高解码吞吐。
2. 前缀缓存:对重复出现的系统提示词缓存键值结果,减少重复计算。
3. 输出控制:通过参数约束最大生成长度,杜绝长输出挤占并发额度。
(三)量化与裁剪的取舍
量化能把显存占用降下来,换来更高的并发与更低的成本,代价是精度上有程度上的折衷。实际做法通常是先跑一轮评测,用业务自身的测试集对比量化前后的效果差异,再决定用哪种精度上线。对效果敏感的任务保留高精度,对格式整理、摘要提取这类任务可以采用更低精度,分层处理更划算。
(四)上下文长度的管理
上下文越长,键值缓存占用越大,单实例能支撑的并发数就越低。很多时候时延抬升并不是模型变慢,而是长对话把显存吃满后触发了排队。可行的做法包括:对超出长度的会话做摘要压缩,把历史内容转为检索结果再拼进提示词,以及给不同业务设置差异化的长度上限,让长上下文请求走单独的实例组,与短请求互不干扰。
四、弹性伸缩与成本核算
(一)扩缩容的触发条件
推理流量的峰谷往往很明显。按高峰配置资源,闲时闲置;按低谷配置,高峰排队。天翼云息壤支持按并发数、显存占用或请求队列长度设定扩缩容规则,并保留最小实例数以保证基础响应能力。设置时应把扩容的启动时间算进去,留出提前量,否则扩容完成时峰值可能已经过去。
(二)按调用量计费的核算方法
计费方式的选择取决于调用曲线的形状。调用量稳定且可预测时,包月方式更省心;波动大、有明显峰谷时,按量计费更划算。核算时不要只看单次单价,要把排队导致的超时重试、失败请求一并计入,这些隐性消耗在长尾时段并不少见。
(三)容量预留与突发处理
对于大促、版本发布这类可预期的峰值,提前预留容量比临时扩容稳妥;对于不可预期的突发,则需要设置并发上限与降级策略,把超出的请求引导到排队或简化模型上,防止整体响应被拖垮。
五、上线前的检查清单
(一)压力验证
上线前应做一次贴近真实的压力验证:按预估峰值的并发量持续施压,观察时延分布而不是均值,尤其要盯住长尾请求的响应情况。同时记录显存占用曲线,确认在峰值并发下键值缓存不会触顶,否则扩容规则再多也无济于事。
(二)回退方案
任何优化都可能带来副作用,回退方案要提前备好:保留上一版本的模型与配置,接口层支持按比例切换流量,出现效果或时延异常时可以在几分钟内切回。天翼云的版本管理与配置留存能力可以支撑这类切换,不需要重新部署整套环境。
(三)周期复盘
上线不是终点。建议按周复盘调用量、时延分布与支出三项数据:调用量用于判断容量是否合适,时延分布用于判断是否需要调整并发上限,支出用于检验计费方式是否仍匹配当前曲线。发现偏差时优先调整配置,再考虑更换规格,复盘结果同步给算力负责人,便于下一轮调整预留与按量的比例。
结语:推理服务的核心矛盾,是时延、并发与成本三者之间的相互牵制,任何一方的改观都要以另外两方为代价。天翼云息壤提供的部署、扩缩与计费能力,让这种牵制变成可以调节的参数。建议先用真实流量做一轮压力验证,把时延分布与显存曲线摸清楚,再确定并发上限。上线后按周复盘调用量与支出,及时调整配置。