라벨이 vllm인 게시물 표시

vLLM FP8 양자화 VRAM 메모리 파편화 및 추론 병목 해결법

이미지
온프레미스 GPU 서버에서 vLLM으로 FP8 양자화 모델을 올릴 때, 겉으로는 VRAM이 충분해 보이는데도 OOM 오류가 터지거나 동시 요청이 몰리면 추론 지연이 발생하는 상황을 겪으셨을 겁니다. 구글링해 보면 단순히 '--quantization fp8' 옵션을 넣으라는 뻔한 설명만 나오고, 왜 FP8 적용 후에도 VRAM 할당이 비효율적이고 메모리 파편화가 발생하는지에 대한 실질적 해결책은 찾기 힘듭니다. 찾아보니 은근히 헷갈리는 지점이 바로 vLLM의 block_size, gpu_memory_utilization, kv_cache_dtype 파라미터 간의 충돌과 동적 메모리 풀 동작 방식이었습니다. 이 글에서는 FP8 양자화 서빙 환경에서 메모리 파편화를 잡고 병목 없이 최대 토큰 처리량을 뽑아내는 실전 파라미터 세팅법을 정확히 풀어드립니다. vLLM FP8 W8A8 및 KV 캐시 FP8의 공식 스펙과 동작 특성 이것 때문에 설정만 몇 번을 다시 테스트했는지 모릅니다. 많은 분들이 FP8 양자화를 적용할 때 모델 가중치(Weight)와 활성화(Activation)만 FP8로 변환하면 VRAM 문제가 전부 해결될 것으로 기대합니다. 그러나 실제 온프레미스 운영 환경에서는 KV 캐시 메모리가 전체 VRAM을 잠식하는 현상이 자주 발생합니다. vLLM은 FP8(E4M3 및 E5M2) 데이터 타입을 지원하며, 가중치 압축 시 BF16 대비 모델 크기를 정확히 절반으로 줄여줍니다. 이때 NVIDIA H100 SXM5 80GB GPU(2023년, NVIDIA 3월 공식 발표)나 RTX 4090 24GB(2022년, NVIDIA 9월 공식 발표)처럼 Compute Capability 8.9 이상을 지원하는 하드웨어에서 FP8 텐서 코어 연산이 원활하게 구동됩니다. vLLM 프로젝트 팀의 0.3.0 업데이트(2024년, vLLM 프로젝트 팀 1월 공식 발표)부터는 KV 캐시에도 FP8 양자화('--kv-cache-dtype fp8')를...