Llama 3.1 70B는 VRAM을 정확히 얼마나 쓸까
Llama 3.1 70B를 양자화별로 실제 돌렸을 때 가중치, KV 캐시, 활성화, 헤드룸까지 전부 분해.
Llama 3.1 70B의 마케팅 페이지에는 항상 같은 숫자가 있어요: FP16에서 140GB. 맞는 숫자고, 동시에 쓸모없는 숫자. A100이 가득한 서버가 없으면 누구도 그렇게 안 돌리고, 있어도 대부분 양자화해서 씀.
진짜 필요한 숫자를 정리.
가중치만
FP16: 70.6B × 2바이트 = 141.2GB. INT8: 약 71GB. Q5_K_M: 약 49GB. 인기 있는 Q4_K_M: 약 43GB. Q3_K_M: 34GB. Q2_K: 23GB.
가중치만이에요. 실제 추론은 세 항목이 더 붙음.
KV 캐시, 조용한 예산
KV 캐시는 과거 어텐션을 저장. Llama 3.1 70B는 80레이어 × 8 KV 헤드 × 128 차원. 8k 컨텍스트면 FP16 기준 약 2.6GB. 32k면 10.5GB. 128k면 42GB. 시퀀스 길이에 선형으로 늘어요. 같은 모델이 채팅에선 80GB에 들어가는데 긴 문서 QA에선 터지는 이유.
KV 캐시를 FP8 또는 INT8로 양자화하면 절반. 최신 서빙 엔진은 거의 다 지원. 채팅은 품질 손실 거의 없음.
활성화와 오버헤드
추론 활성화 메모리는 가중치 대비 작음, 1-3GB. 서빙 엔진(vLLM, TensorRT-LLM, llama.cpp) 자체가 약 1GB.
실제 합
Q4_K_M + 8k 컨텍스트 + FP16 KV: 43 + 2.6 + 1.5 + 1 = 약 48GB. 20% 헤드룸 더하면 58GB짜리 카드. A100 80GB 여유. 24GB 소비자 카드 2장(4090, 3090)도 가능.
Q4_K_M + 32k: 헤드룸 전 57GB, 헤드룸 후 68GB. 결론 같지만 소비자 2장 구성은 빡빡해짐.
Q4_K_M + 128k: KV 캐시만 42GB. A100 80GB이나 H100이 필요하거나, KV 양자화 적극 활용(FP8 KV로 21GB).
토큰/초
토큰 생성은 대역폭 바운드. A100 80GB 2039GB/s에서 43GB 가중치를 토큰당 읽으면 피크 47 tok/s, 실제 30. 4090 2장: 25 tok/s 정도(텐서 병렬 오버헤드). M3 Max 128GB 400GB/s: 9 tok/s.
구매 결론
70B를 8k 컨텍스트로만 쓸 거면 단일 48GB 카드(RTX 6000 Ada, MI300X)가 가장 깔끔. 긴 컨텍스트면 A100 80GB가 바닥. 맥에서 돌릴 거면 M2/M4 Ultra가 유일한 단일 머신 답이고 10 tok/s 정도로 만족해야 해요.
홈페이지 계산기에 컨텍스트랑 양자화 넣으면 위 숫자 다 실시간으로 나옵니다.