推理服务与容量规划
把引擎、网关、缓存、量化和部署环境放在同一负载与质量约束下选择。
引擎、网关与业务服务各管一层
推理引擎加载模型、运行 kernel、调度 batch 与 KV;网关处理路由、限流、凭据、计费和部分故障转移;业务服务保存会话、资源权限与任务状态。服务提供 OpenAI 兼容端点可以降低部分客户端接入成本,不能据此认定所有模型接口能力等价。
模型目录保存权重、tokenizer、配置和模板;部署清单固定引擎、容器、驱动与内核版本。加载 adapter、量化模型或多模态处理器时分别保存版本。vLLM、SGLang、TensorRT-LLM、llama.cpp 等有不同模型和硬件支持面,先核对目标组合,再测量自有负载。SGLang 官方入口 描述前缀复用与多 GPU serving 等能力,性能需要在目标条件下测量。
容量按实际输入输出分布规划
记录输入长度、输出长度、到达率、同时活跃请求数和共享前缀比例。短问答、长文摘要与多轮 Agent 对 prefill、decode、缓存和网络的压力不同。平均长度掩盖长尾,应报告分位数与极端样本。
测量 TTFT、每 token 间隔、端到端延迟、完成率和 goodput。goodput 只计入同时满足质量与服务时限的成功输出;把所有 token 相加得到的吞吐可能包含迟到、失败和无用文本。并发增加后吞吐提升与单请求延迟恶化可能同时发生。
| 配置变化 | 预期作用 | 同时观察 |
|---|---|---|
| 增大 batch/token 上限 | 更充分利用计算与权重带宽 | 排队、KV 占用、尾延迟 |
| 前缀缓存 | 减少重复 prefill | 命中率、隔离、缓存占用与失效 |
| chunked prefill | 长输入与 decode 更细粒度调度 | TTFT、decode 抖动与吞吐 |
| KV 量化 | 降低长上下文存储 | 长任务质量、kernel 支持与延迟 |
| 权重量化 | 降权重与带宽开销 | 硬件内核、任务质量与实际速度 |
| 投机解码 | 以额外草稿计算减少目标串行步骤 | 接受率、draft 费用、负载下收益 |
| prefill/decode 分离 | 独立配置两阶段资源 | KV 传输、网络瓶颈与调度开销 |
这些是优化方向,具体收益由模型、硬件和负载决定。比较时固定质量、上下文和资源预算,避免只报告有利短样本。
缓存键需要完整语义身份
前缀 token 相同仍需核对模型、adapter、模板、位置、mask 与多模态输入。缓存复用从前缀开始,不能把任意相同中间句子的 KV 用在另一段上文中。缓存租户隔离和时延侧信道按服务安全边界考虑;复用计算不意味着共享资料权限。
应用缓存还要包含知识库版本、权限范围、采样配置和输出契约。相同用户问题在文档更新后可能需要新结果。对需要实时回执的工具任务,缓存文本回答不能充当新动作结果。
量化和端侧选择配合产物链路
AWQ、GPTQ、FP8、GGUF 等涉及不同量化方法、格式和内核。GPU 上的低比特文件若没有相应高效 kernel,可能更慢;端侧内存节省也需要核对模型支持与上下文长度。保存量化校准集、转换工具版本和部署质量回归,防止只比较文件大小。
本地服务接入时限定监听地址与访问权限。浏览器端 WebGPU 需要考虑下载体积、缓存、内存、算子支持和设备兼容;数据在本机处理仍可能通过遥测或远程资源离开设备,按真实网络行为判断隐私范围。
网关和部署按失败行为设计
故障转移更换模型时可能改变工具参数、schema 支持、上下文长度和费用。回退策略明确可替代能力与不可替代任务。已经开始流式输出后切换服务,需要定义是否丢弃部分结果、创建新尝试或继续同一消息,避免拼接两个模型的不同回答。
Serverless 的 CPU、墙钟、流持续时间、内存与请求体限制分别核对。等待网络可能不计 CPU,但任务仍受墙钟或流式限制;Node 兼容层也不保证每个 OTel/SDK 模块可用。长任务用持久队列或工作流保存状态,退出前按 SDK 行为 flush trace。
上线条件包括模型可加载、模板正确、核心任务质量合格、并发与长尾容量满足目标、取消和回执路径可观察。本文未启动服务或进行负载测试,所有延迟与资源数字应由实际环境测得。
接入推理端点
vLLM、SGLang 等可提供 OpenAI 兼容端点。部署时显式配置模型路径/revision、tokenizer、chat template、最大上下文、并发、量化和端口;服务监听范围、认证与反向代理按运行环境设置。以下是命令结构,启动前以固定版本的帮助与文档确定参数支持。
vllm serve "$MODEL_PATH" --served-model-name local-model \
--host 127.0.0.1 --port 8000 --max-model-len 4096应用客户端使用该本地端点与服务名称,并根据部署认证方式配置凭据。测量短长输入、不同输出长度、混合并发与共享前缀负载的 TTFT、token 间隔、吞吐、显存和错误率;量化格式能加载,还需确认实际内核、质量与目标负载速度。训练端、引擎端和应用端都固定采样及模板配置。vLLM 服务文档、SGLang 文档。
模型更新先建立新端点与回归结果,灰度路由后监控,失败可切回旧模型、适配器和索引版本。训练配置、模型文件及引用资料共同构成一次可复核发布,避免只记录模型名称。
最后更新于