pegainfer-project/pegainfer 的最新提交 ca25b80(2026-10-26)改为把每个请求所指定的随机种子(seed)从前端原样一直传递到引擎。此前,vLLM 兼容桥接层的 convert_sampling 会丢弃种子,始终固定为 None,而带种子且 temperature 大于 0 的请求会被以 'per-request seed is not supported yet' 这一消息拒绝。本次补丁去掉了这一拒绝条件,并把种子值原样传下去。
pegainfer 是一个不使用 PyTorch、完全以 Rust 和 CUDA 构建的 LLM 推理引擎,提供 OpenAI 兼容 API,并提供从 Qwen3 到 Kimi-K2 的模型。种子此前被拦下的原因是采样层 kern 不读取按请求划分的种子。提交信息称,kern(pegainfer-project/kern#66)在采样内核中按行(row)应用 Philox 随机种子,而 kern-serve 把请求给出的种子作为自身的填充(fill)传递。该提交由 JinYan Su 署名。
不过,得到保证的可复现范围被缩小到引擎所设定的范围。SamplingParams::seed 的文档不再声称固定种子总会产生相同的令牌,而是写道:引擎的采样只有在不依赖其他因素时,或只有在相同的批次结构(batch layout)下才会相同。也就是说,此前对所有引擎承诺的批次独立性不再是文档化的保证。此外,在 temperature 为 0 的贪心(greedy)请求中,种子会与 min_p 一起被归为 None,因而完全不起作用。改动范围仅限 sampler.rs 和 vllm/wire.rs 两个文件,总共 35 行改动(新增 15 行,删除 20 行)。