vLLM TurboQuant 연구: 정확도 및 성능 분석

vLLM은 저장소를 3-4비트로 압축하고 어텐션 연산을 위해 BF16으로 디양자화하는 KV-cache 양자화 방법인 TurboQuant에 대해 포괄적인 연구를 수행했습니다. 연구 결과 TurboQuant이 KV-cache 용량을 늘릴 수는 하지만, 종종 처리량, 지연 시간 및 정확도를 희생한다는 결론에 도달했으며, 대부분의 사용자에게는 FP8이 권장되는 기본 옵션임을 밝혔습니다.

양자화 방식 비교

연구에서는 30B에서 200B+ 파라미터에 이르는 모델들(예: Llama-3.3-70B-Instruct, Qwen3-30B-A3B, MiniMax-M2.7)을 대상으로, 양자화되지 않은 BF16 및 FP8 기준선과 네 가지 TurboQuant 변형을 비교했습니다.

  • FP8 (--kv-cache-dtype fp8): 저장소와 어텐션 연산을 모두 하드웨어 네이티브 FP8 Tensor Core 연산으로 양자화합니다. 정확도 손실이 거의 없으며 KV-cache 용량을 2배로 제공하고 BF16 성능과 동등하거나 이를 능가합니다.
  • TurboQuant k8v4: 8비트 키와 4비트 값을 사용합니다.
  • TurboQuant 4bit-nc: 정규화 보정이 적용된 4비트 키와 값을 사용합니다.
  • TurboQuant k3v4-nc: 정규화 보정이 적용된 3비트 키와 4비트 값을 사용합니다.
  • TurboQuant 3bit-nc: 정규화 보정이 적용된 3비트 키와 값을 사용합니다.

정확도 영향

정확도 저하는 양자화 변형의 공격성에 따라 크게 달라지며, 특히 장기 컨텍스트 및 추론 작업에서 두드러집니다.

장기 컨텍스트 검색

openai/mrcr 작업을 사용한 연구에서는 높은 비트 변형(k8v4 및 4bit-nc)이 검색 성능을 잘 유지한다는 것을 발견했습니다. 그러나 공격적인 변형(k3v4-nc 및 3bit-nc)은 의미 있는 성능 저하를 보였습니다. Qwen3-30B-A3B-Instruct-2507에서 이러한 공격적인 변형은 BF16 대비 약 30%의 상대적 저하를 보였으며, 오류는 시퀀스 길이가 128k에서 256k 사이일 때 누적되었습니다.

추론 성능

디코드 중심의 추론 벤치마크(AIME25, GPQA:Diamond, MATH500, LiveCodeBench-v6)에서 공격적인 TurboQuant 변형(k3v4-nc 및 3bit-nc)은 Qwen3-30B-A3B-Thinking-2507에서 최대 20점에 달하는 급격한 정확도 하락을 일으켰습니다. 200B+ 파라미터를 가진 MiniMax-M2.7 모델에서도 이러한 변형은 AIME25와 LiveCodeBench-v6에서 상당한 성능 저하를 보였으며, 이는 모델 크기가 저비트 양자화에 따른 정확도 손실을 완전히 상쇄하지 못함을 증명합니다.

성능 및 서비스 지표

TurboQuant은 어텐션을 계산하기 전에 저비트 저장소를 BF16으로 복원해야 하므로 디양자화 오버헤드가 발생합니다. 반면 FP8은 FP8 자체로 연산합니다.

지연 시간 및 처리량

  • FP8: 지연 시간 오버헤드가 거의 없거나 전혀 없으며, 테스트된 모든 모델에서 BF16 처리량과 동일합니다.
  • TurboQuant: 모든 변형이 측정 가능한 지연 시간을 추가합니다. Llama-3.3-70B에서는 오버헤드가 10%에서 68% 사이이며, 배치 크기가 커질수록 증가합니다. 처리량은 BF16보다 낮으며, 변형에 따라 BF16 처리량의 66%에서 80% 수준입니다.

서비스 속도 (TPOT 및 TTFT)

  • Time Per Output Token (TPOT): FP8은 BF16과 동등하거나 더 나은 성능을 보입니다. TurboQuant 변형은 부하가 증가함에 따라 토큰당 상당한 오버헤드를 추가하며, Llama-70B에서 폭발적인 부하 시 TQ 변형은 BF16보다 1.5배에서 2.5배 느립니다.
  • Time To First Token (TTFT): 메모리 제한이 있는 상황(예: 4xH100에서 Llama-3.3-70B)에서는 메모리 포화로 인해 BF16의 TTFT가 급증할 수 있습니다. TurboQuant 변형은 더 많은 동시 요청을 허용함으로써 TTFT를 크게 줄여( BF16의 17초 대비 3.5초 이하) 개선합니다. 그러나 FP8이 가장 낮은 TTFT(~1.3초)로 최고의 결과를 제공합니다.

최종 권장 사항

평가 결과를 바탕으로 vLLM은 KV-cache dtype 선택에 대한 다음과 같은 가이드를 제공합니다.

  • Use FP8 (--kv-cache-dtype fp8): 가장 좋은 기본 옵션입니다. 2배 용량을 제공하고 처리량 비용이 없으며 정확도 손실이 거의 없습니다.
  • Use TurboQuant 4bit-nc: 메모리 제한이 있는 배포 환경에서 높은 용량(최대 3.4배)과 향상된 폭발적 TTFT가 중간 정도의 정확도 손실 및 처리량 감소보다 더 중요할 때 고려하십시오.
  • Avoid TurboQuant k8v4: FP8 대비 약간의 절감(2.4배)만 제공하며 성능 이점이 없습니다.
  • Avoid TurboQuant k3v4-nc and 3bit-nc: 급격한 정확도 저하와 높은 성능 저하로 인해 프로덕션에 적합하지 않습니다.
  • Use BF16: GPU 메모리가 병목이 되지 않는 경우 양자화되지 않은 기준선을 유지하십시오.

Sources