대규모 언어모델(LLM)을 활용한 서비스에서 가장 중요한 요소 중 하나는 '재현성(reproducibility)'입니다. 즉, 동일한 입력에 대해 항상 같은 출력을 제공해야 한다는 의미입니다. 하지만 현재 LLM 추론(inference) 시스템은 여러 요청을 한 번에 처리하는 배치(batch) 방식을 사용하는데, 이 과정에서 배치 내 다른 요청의 존재 여부에 따라 특정 요청의 출력이 미묘하게 달라지는 '비재현성' 문제가 발생하곤 했습니다. 이는 서비스의 신뢰도를 떨어뜨리고 디버깅을 어렵게 만드는 고질적인 문제였습니다.
이러한 문제를 해결하기 위해 제시된 '블록록(BlockLock)'은 공유 배치 프리필(prefill)의 이점을 유지하면서도, 보호하려는 특정 요청의 수치 경로(numerical path)만 고정하는 방식을 사용합니다. 이는 요청이 보는 배치 형상(geometry)을 고정하여 다른 요청의 간섭을 원천적으로 차단합니다. 블록록은 'BlockLock-Rows'와 'BlockLock-Pack' 두 가지 모드를 제공하는데, 전자는 고정 너비 행을 사용하여 모든 요청의 배치 디코딩(batched decode)을 유지하고, 후자는 격리된 더미 세그먼트를 사용해 특정 요청의 KV 상태(Key-Value state)만 추출하여 디코딩합니다. 연구팀은 Qwen3-8B/14B, Llama-3.1-8B-Instruct, Gemma-3-4B/12B-IT 등 5개 모델과 NVIDIA A6000, A100, H100 GPU 환경에서 테스트를 진행했습니다.
블록록은 기존의 배치 불변 커널(batch-invariant kernels) 방식과 비교했을 때, 지연 시간(latency)을 53.5~55.0% 단축하고 처리량(throughput)을 115.2~122.2% 향상시키는 놀라운 성능을 보여주었습니다. 특히, 커스텀 커널 구현 없이도 재현성을 보장하며, 보호하려는 요청에만 제약을 가하기 때문에 시스템 전체의 유연성을 해치지 않는다는 장점이 있습니다. 이 기술은 LLM 기반 서비스의 신뢰성과 효율성을 동시에 높일 수 있는 핵심적인 발전으로, 앞으로 LLM 추론 시스템 설계에 큰 영향을 미 미칠 것으로 예상됩니다.