vLLM, GB300에서 Kimi K3 DSpark 추론 최적화
들어가며
추측 디코딩의 실제 성능은 드래프트 모델이 후보를 얼마나 빨리 생성하는지만으로 결정되지 않는다. 타깃 모델이 한 번의 검증에서 후보를 얼마나 많이 수용하는지가 핵심이다. vLLM은 Speculators 학습 라이브러리를 Kimi K3에 맞게 확장하고, GB300 NVL72 멀티노드 환경에서 DSpark 드래프트 모델의 학습과 배포를 검증했다.
DSpark의 접근법
일반적인 추측 디코딩에서는 작은 드래프트 모델이 후보 토큰을 자기회귀적으로 생성하고, 대형 타깃 모델이 이를 묶어서 검증한다. EAGLE-3는 강력한 사례지만, 후보 길이를 늘리려면 여러 번의 순차적인 드래프트 단계가 필요하다. DFlash는 비인과적 백본을 한 번만 실행해 토큰 블록 전체를 병렬 예측함으로써 이 비용을 줄인다.
그러나 병렬 예측에서는 각 위치가 앞서 선택된 토큰을 충분히 참조하기 어렵다. 초반의 작은 오류가 뒤쪽 후보 전체를 무효화하는 ‘접미부 붕괴’가 발생할 수 있다. DSpark는 DFlash의 병렬 백본을 유지하면서 다음 요소를 추가한다.
- Markov logit-bias head: 이전에 선택된 토큰을 바탕으로 이후 위치의 확률을 보정한다.
- Confidence head: 각 후보가 타깃 모델의 검증을 통과할 가능성을 추정한다.
- 하드웨어 인식 스케줄러: 부하가 낮을 때는 긴 접두부를 검증하고, 혼잡할 때는 신뢰도가 낮은 접미부를 잘라낸다.
이 구조는 DFlash의 병렬 처리 비용을 유지하면서 자기회귀 생성에 가까운 국소적 일관성을 일부 회복하려는 시도다. 자료는 Qwen3 타깃 모델에서 DFlash와 EAGLE-3보다 긴 수용 시퀀스를 보고하지만, 모든 모델과 부하에서 동일한 가속이 보장된다는 의미는 아니다.
Kimi K3 테스트 결과
공개된 Kimi K3용 스페큘레이터는 5개 레이어와 약 50억 개 파라미터로 구성되며, 디코딩 단계마다 8개 토큰을 제안한다. 9개 평가 영역의 평균 수용 길이는 4.11토큰이었다. 수학 추론은 6.42토큰, HumanEval은 4.96토큰, 번역은 4.65토큰으로 더 높았다.
긴 컨텍스트에서도 성능이 두드러졌다. 378K 토큰 프롬프트를 사용한 LongBench-v2에서 디코딩 반복당 최대 5.31개의 출력 토큰을 확보했다. 동시 요청 수를 1개에서 16개로 늘리자 전체 출력 처리량은 초당 177토큰에서 683토큰으로 증가했다. 첫 토큰까지 걸리는 중간 지연은 379밀리초에서 479밀리초로 늘어나는 데 그쳤다.
수학 추론 기준 단일 스트림 상호작용 속도는 약 110토큰/초에서 435토큰/초로 향상됐다고 보고됐다. 같은 수준의 상호작용성을 비교했을 때 출력 처리량은 최대 약 3.5배 높아졌다. 다만 실제 결과는 배치 크기, 컨텍스트 길이, 타깃 모델, 하드웨어와 네트워크 설정에 따라 달라질 수 있다.
기술적 의미
이번 작업의 의미는 알고리즘 발표에만 있지 않다. Speculators는 드래프트 모델을 Hugging Face 호환 형식으로 패키징해 vLLM에서 직접 불러올 수 있게 한다. 멀티노드 텐서 병렬화, FP8 KV 캐시, 프리픽스 캐싱, MLA용 어텐션 백엔드를 함께 사용하면 모델별로 별도의 서빙 파이프라인을 다시 만들 필요가 줄어든다.
GB300 NVL72 환경에서의 검증은 추측 디코딩을 실제 시스템 문제로 바라보게 한다. 평가할 때는 최대 token/s뿐 아니라 수용 길이, 첫 토큰 지연, 동시성 확장성, 통신 비용, 긴 컨텍스트에서의 안정성을 함께 확인해야 한다. DSpark의 사례는 추론 가속이 모델 구조 하나가 아니라 학습 방식과 스케줄링, 클러스터 구성을 함께 최적화해야 얻을 수 있는 결과임을 보여준다.
출처: vLLM Blog
댓글
로그인 상태 확인 중…
댓글 불러오는 중…