一、基本配置
参数说明:
·–model:指定模型的存放路径,支持相对路径、绝对路径或者 repo_id 则会从 huggingface 上下载,建议使用本地路径可加快运行速度。
·–tokenizer:同模型同一个参数。
·–dataset:指定当前测试 case 需要从哪个数据集采集 prompt 数据。
·–num-prompts:表示请求数。
·–max-num-batched-tokens:表示每次执行推理时支持最长的处理 token 数,多个 batch 的总和数,如果每个请求长,则会分多批完成请求。
·–max-num-seqs:后端支持最大的 batch 数,配置值建议参考实际 GPU 总显存及处理请求的长短值考虑。如果配置过大启动服务会慢,配置过小可能影响最终的吞吐性能。
·–trust-remote-code:表示信任当前部署,如果使用 model repo_id 时不加此参数可能导致模型加载失败。
除了上面参数外,还有一些可选配置参数供参考。
二、多卡推理
–tensor-parallel-size 1 \\
–tensor-parallel-size: tensor 并行,支持1,2,4,8,会被模型的 layer 层数整除即可。
三、cudagraph 优化
–enforce-eager \\
–enforce-eager:默认支持 CUDA Graph 优化。如果不想使用 CUDA Graph,可以添加 –enforce-eager 参数。默认配置的 CUDA Graph 在启动模型时会捕获图的时间开销,max-num-seqs 配置越大,所需时间越长。
四、显存占用配置
–gpu-memory-utilization 0.9 \\–conservative-dry-run \\
·–gpu-memory-utilization: 小数值取值范围:0.1 ~ 0.95 表示 GPU 卡占用显存,这部分显存主要有三部分:进程初始化显存(非 torch)、权重、kvcache;剩下的显存一般用于非 torch 分配、cuda graph 等场景,如果此值配置过高,max-num-seqs 配置过大,会导致 cuda graph 显存不够,导致初始化失败。
·–conservative-dry-run:增加此参数表示在量化等场景由于内部 kernel 也使用显存,而这部分显存并未统计到上述利用值上面,导致 OOM,建议在量化场景下增加此参数保证安全运行。
五、speculative推理
–speculative-model /models/*** –num-speculative-tokens 3 \\
·–speculative-model: 后面跟 speculative 模型的路径,运行绝对路径、相对路径等。
·–num-speculative-tokens:3 表示 speculative 模型一次生成的 token 数,可以自行配置调优。
六、多步推理
–num-scheduler-steps 4 \\
–num-scheduler-steps: 支持多步处理,可以配置,[1-8]等整数值,在 decoding 阶段,部分 cpu 结果的处理可以 overlap 到 GPU 上,增加吞吐值,默认不打开。