首页/AI/大模型部署与运维速查/离线批推理:吞吐优先的跑法
推理参数与优化50 条

离线批推理:吞吐优先的跑法

对不需要实时返回的任务(标注、批量摘要、离线评测)用批处理跑:吞吐优先、延迟放宽;vLLM 的离线接口直接接收 prompt 列表批量输出。

离线与在线是两种跑法

标注、批量摘要、离线评测这类任务不需要实时返回,可以把延迟放宽、把吞吐拉满。离线接口通常一次传入一批提示词,由引擎自行组批调度并返回全部结果;代价是显存与耗时按整批计算,不能按单请求视角规划容量。把离线任务与在线服务分开部署,是避免互相抢占的常规做法。

基本信息

适用平台自托管推理服务的离线接口
输入形式一批提示词直接传给引擎,不必逐个发请求
关键参数最大输出长度、采样温度、批大小
资源前提独占实例,避免与在线请求抢缓存与算力

离线批处理骨架

离线批处理骨架
from vllm import LLM, SamplingParams
llm = LLM(model="<模型路径>")
sp = SamplingParams(temperature=0.2, max_tokens=512)
prompts = ["任务一……", "任务二……"]
outs = llm.generate(prompts, sp)
for o in outs:
    print(o.outputs[0].text[:80])   # 逐条取出结果落库

典型使用场景

  • 批量标注:对存量文本打标签,一次跑完再入库
  • 离线评测:评测集全量推理,产出的指标可复现
  • 摘要与改写:文档量大、对时效不敏感
  • 数据合成:批量生成训练样本,以吞吐为先
  • 夜间跑批:把重任务放到低峰时段,与在线服务错峰
  • 结果补跑:只把失败或超时的分片挑出来重跑,不必重来整批

批参数与代价

参数调大的收益代价
批大小吞吐上升,单卡利用率提高显存峰值上升,长序列更容易挤爆
最大输出长度覆盖更长的任务单请求占用时间变长,整批更慢
采样温度输出更发散,适合合成数据结果不稳定,标注与评测要调低
离线与在线分开部署:离线任务把批参数调大换吞吐,避免与在线服务抢缓存与算力。
失败要能续跑:把输入切成分片并记录完成进度,整批失败时不必从头来过。
冻结参数并留档:模型版本、采样参数与提示词模板一起存档,评测结果才可复现。

易错点

  • 离线任务与在线服务共用一个实例:互相抢占资源,两类目标都受损
  • 整批一次性提交:单条异常导致整批重跑,按分片提交更稳
  • 只看总耗时不看单条质量:批参数放大后输出可能变化,要抽样检查
  • 不记录提示词模板与采样参数:评测结论无法复现,跨批次也没法比较

数据来源与参考

  • vLLM 官方文档:Offline Inference(docs.vllm.ai)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌