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줄 삭제)에 지나지 않는다.