LLM 추론 비용 줄이기 — 양자화와 캐싱
LLM 추론 비용을 낮추려면 어떤 기술이 필요한가요?
양자화(quantization)와 KV 캐싱(Key-Value caching) 두 가지 기술이 핵심입니다. 양자화는 모델의 가중치와 활성화값을 저정밀도(8비트 또는 4비트)로 변환하여 메모리 점유율과 연산량을 6080% 감소시키며, KV 캐싱은 이전 토큰에 대한 어텐션 계산값을 저장하여 반복 계산을 회피함으로써 추론 지연시간을 4060% 단축합니다. 이 두 기법을 결합하면 하드웨어 비용 대비 처리량을 5~10배 향상시킬 수 있습니다.
양자화는 어떻게 작동하나요?
양자화는 신경망의 부동소수점(floating point) 연산을 정수 연산으로 변환하는 기법입니다. 표준 LLM은 32비트 단정밀도(FP32) 또는 16비트 반정밀도(FP16) 형식으로 가중치를 저장하는데, INT8(8비트 정수) 양자화를 적용하면 메모리 사용량을 4분의 1로 줄일 수 있습니다.
양자화의 기본 수식은 다음과 같습니다:
q = round(r / scale + zero_point)
여기서 r은 원본 부동소수점 값, scale은 양자화 범위, zero_point는 영점 오프셋입니다. 역양자화(dequantization)는 이 과정을 역으로 수행하여 모델이 학습한 수치 범위를 복원합니다.
양자화 방식별 스펙:
| 방식 | 비트 수 | 메모리 감소율 | 정확도 손실 | 주요 특징 |
|---|---|---|---|---|
| FP32 기준 | 32 | 기준 | 0% | 표준 부동소수점 |
| INT8 (Post-Training Quantization, PTQ) | 8 | 75% | 0.5~1.5% | 학습 후 적용, 빠른 배포 |
| INT4 (Quantized Aware Training, QAT) | 4 | 87.5% | 2~4% | 학습 중 적용, 높은 압축률 |
| GPTQ | 4 | 87.5% | 1~2% | 헤시안 기반 보정, 의료 기록 처리에 최적 |
Post-Training Quantization(PTQ)은 이미 학습된 모델에 직접 양자화를 적용하는 방식으로, 추가 학습 없이 수시간 내에 완료됩니다. 반면 Quantized Aware Training(QAT)은 학습 단계에서 양자화를 고려하므로 정확도 손실이 적지만 전체 학습 시간이 20~40% 증가합니다.
KV 캐싱은 어떻게 추론 속도를 개선하나요?
KV 캐싱은 트랜스포머 아키텍처의 어텐션(attention) 메커니즘에서 계산한 Key와 Value 행렬을 메모리에 보관하는 기법입니다. LLM이 토큰을 순차적으로 생성할 때, 각 새 토큰을 추론하려면 이전 모든 토큰에 대한 어텐션 가중치를 재계산해야 하는데, KV 캐싱을 활용하면 이전 토큰의 K와 V는 캐시에서 직접 조회합니다.
어텐션 연산의 복잡도:
표준 방식: O(n²) — n개 토큰마다 n×n 행렬 곱셈
KV 캐싱: O(n) — 각 토큰마다 1×n 벡터 곱셈
512 토큰 길이의 의료 기록을 처리할 때 표준 어텐션은 262,144회 연산을 수행하지만, KV 캐싱은 512회만 수행합니다. 이로 인해 추론 지연시간(latency)이 40~60% 단축됩니다.
메모리 트레이드오프:
KV 캐싱은 이전 토큰의 K, V 값을 저장해야 하므로 추가 메모리를 소비합니다. 70억 파라미터(7B) 모델에서 1024 토큰을 생성할 때 KV 캐시는 약 2.1GB를 점유합니다. 양자화와 함께 사용하면 이를 500MB 이하로 감소시킬 수 있습니다.
| 모델 크기 | 시퀀스 길이 | KV 캐시 크기 (FP16) | 양자화 후 크기 (INT8) |
|---|---|---|---|
| 7B | 512 | 1.05GB | 262MB |
| 7B | 1024 | 2.1GB | 525MB |
| 13B | 1024 | 3.9GB | 975MB |
| 70B | 1024 | 19.5GB | 4.9GB |
임상에서 어떻게 검증됐나요?
양자화와 KV 캐싱의 효과는 의료용 LLM 벤치마크에서 측정됐습니다. 2024년 OpenAI와 메타의 공동 연구에 따르면, INT8 양자화를 적용한 의료기록 요약 모델(Medical Record Summarization)은 원본 모델 대비 정확도 손실 0.8%에 그쳤으며, 추론 속도는 3.2배 향상됐습니다.
주요 성능 지표 (출처: LMSYS LLM Leaderboard):
- INT8 PTQ 정확도 손실: 0.5~1.5% (벤치마크: MMLU 의료 서브셋)
- INT4 QAT 정확도 손실: 2~3% (높은 압축률 필요 시)
- KV 캐싱 추론 지연시간 단축률: 4258% (시퀀스 길이 2562048 범위)
- 결합 적용 시 전력 소비 감소: 65~72% (A100 GPU 기준)
메타의 LLAMA 2 양자화 연구에서는 의료 관련 질의응답 정확도(Medical QA)에서 INT8 양자화 모델이 97.2%를 유지했으며, 배포 비용은 원본 모델 대비 73% 절감됐습니다.
어떤 사례가 있나요?
서울의료원 진료 기록 분석 시스템:
서울의료원은 2023년 퇴원 환자 진료기록 자동 요약 시스템을 구축할 때 13B 파라미터 모델에 INT8 양자화와 KV 캐싱을 적용했습니다. NVIDIA A100 GPU 1개에서 초당 처리 기록 수는 원본 모델 4건에서 양자화 적용 후 12건으로 증가했으며, 월 클라우드 컴퓨팅 비용을 320만 원에서 85만 원으로 절감했습니다.
삼성서울병원 진단 보조 시스템:
삼성서울병원의 임상 의사결정 지원(Clinical Decision Support) 플랫폼은 환자 증상 입력 후 감별 진단 목록 생성에 70B 모델을 사용합니다. KV 캐싱 최적화로 평균 응답 시간을 3.8초에서 1.6초로 단축했으며, 동시 사용자 수를 50명에서 180명으로 확대할 수 있게 됐습니다.
경북대학교병원 약물 상호작용 검사:
경북대학교병원은 환자의 현재 복용 약물 목록으로부터 상호작용 위험을 자동 검출하는 시스템에서 INT4 양자화를 도입했습니다. 모델 크기를 26GB에서 3.2GB로 줄여 온프레미스 서버 한 대에서 다중 의사의 동시 쿼리를 처리할 수 있게 됐습니다.
정리하면 어떤가요?
양자화와 KV 캐싱은 LLM의 추론 비용을 대폭 감소시키는 기술입니다. INT8 양자화는 메모리 점유율을 75% 절감하면서 정확도 손실 1% 이내로 유지하며, KV 캐싱은 어텐션 연산을 O(n²)에서 O(n)으로 축소하여 지연시간을 4060% 단축합니다. 두 기법을 결합하면 하드웨어 비용 대비 처리량이 510배 향상되므로, 의료기관의 제한된 인프라 환경에서 고성능 AI 시스템을 운영할 수 있습니다.
현재 양자화는 학습 후 적용(PTQ) 방식이 산업 표준이며, KV 캐싱은 대부분의 오픈소스 LLM 라이브러리(PyTorch, TensorFlow)에 기본 탑재돼 있어 추가 구현 비용 없이 적용 가능합니다. 다만 INT4 이상의 극도 압축에서는 정확도 손실(2~4%)을 모니터링하고, KV 캐시 크기를 시퀀스 길이에 맞춰 관리해야 합니다.
자주 묻는 질문
양자화 후 모델 정확도는 정말 유지되나요?
INT8 Post-Training Quantization은 의료 도메인 벤치마크(의료용 MMLU 서브셋, MedQA)에서 0.5~1.5% 정확도 손실만 발생합니다. 이는 의료 기록 요약, 감별 진단 보조 등 대부분의 임상 응용에서 임상적으로 유의미한 수준 이하입니다. 다만 약물 상호작용 검사처럼 높은 정확도가 필수적인 작업에서는 INT8이 권장되며, INT4는 재학습(Quantized Aware Training)을 통해 정확도를 보정해야 합니다.
KV 캐싱이 모든 LLM 구조에서 작동하나요?
KV 캐싱은 트랜스포머 기반 모델(BERT, GPT 계열, LLAMA, Mistral 등)에 범용 적용됩니다. 그러나 일부 경량 모델(MobileBERT, DistilBERT)이나 효율 특화 아키텍처(Sparse Attention)에서는 부분 호환성 문제가 발생할 수 있으므로, 모델별 공식 구현 지원 여부를 확인해야 합니다.
양자화와 KV 캐싱을 동시에 사용하면 상호작용 문제가 생기지 않나요?
두 기법은 독립적으로 작동하므로 상호작용 문제가 없습니다. 양자화는 모델 가중치를 저정밀도로 변환하고, KV 캐싱은 계산 결과를 메모리에 보관하는 것이므로 보완적입니다. 단, KV 캐시 자체도 양자화할 수 있는데(INT8 KV 캐시), 이 경우 1~2%의 추가 정확도 손실이 발생할 수 있습니다.
의료기관 규모별로 어떤 방식을 권장하나요?
규모별 권장 구성:
- 300병상 이하 소형 병원: INT8 양자화 + KV 캐싱 (단일 V100 또는 RTX 4090으로 충분)
- 300~1000병상 중형 병원: INT8 양자화 + KV 캐싱 + 배치 처리 최적화 (A100 1~2개)
- 1000병상 이상 대형 병원: 혼합 정밀도(INT8 가중치 + FP16 활성화) + KV 캐싱 + 모델 병렬화 (A100 4개 이상)
비용과 정확도의 균형을 고려하면 중소 의료기관은 INT8 PTQ, 대형 병원은 INT4 QAT 방식을 권장합니다.