본문으로 건너뛰기
Stanford Online조회 11

CS336 강의 10: 대규모 언어 모델의 추론 최적화

LLM 추론의 핵심 병목인 메모리 대역폭 문제를 분석하고, KV 캐시 최적화, 추측 디코딩, 연속 배칭 등 최신 성능 향상 기법을 다룹니다.

챕터별 상세

00:00

추론 워크로드의 이해와 중요성

학습은 일회성 비용이지만 추론은 서비스 운영 중 지속적으로 발생하는 반복 비용이다. OpenAI는 하루에 약 8.6조 개의 토큰을 처리하며, 이는 모델의 연산 효율성이 수익성과 직결됨을 의미한다. 특히 에이전트 환경에서는 모델이 스스로 사고하는 과정에서 생성하는 내부 토큰량이 급증하여 추론 최적화의 중요성이 더욱 커졌다.
07:06

추론의 핵심 병목: 메모리 대역폭 제한

학습은 모든 토큰을 한 번에 처리하여 연산 강도가 높지만, 추론은 토큰을 하나씩 순차적으로 생성하는 자기회귀 방식을 따른다. 이 과정에서 가중치와 KV 캐시를 매번 메모리에서 읽어와야 하므로 하드웨어의 연산 능력보다 메모리 대역폭에 의해 성능이 결정되는 Memory-bound 상태가 된다. 분석 결과 H100 GPU에서도 배치 사이즈가 충분히 크지 않으면 연산 장치의 활용률이 극히 낮게 나타난다.

연산 강도(Arithmetic Intensity)가 하드웨어의 임계값보다 낮으면 메모리 속도가 전체 성능을 좌우한다.

20:30

KV 캐시의 구조와 메모리 점유 분석

추론 속도를 높이기 위해 이전 토큰의 계산 결과를 저장하는 KV 캐시는 문맥 길이가 길어질수록 기하급수적으로 커진다. Llama 2 13B 모델의 경우 1,024 문맥 길이에서 KV 캐시가 상당한 메모리를 차지하며, 이는 배치 사이즈를 키우는 데 큰 제약이 된다. 메모리 점유량은 배치 사이즈, 문맥 길이, 레이어 수, 헤드 차원에 비례하여 증가한다.

KV 캐시는 추론 시 중복 계산을 피하기 위한 필수 요소이지만 메모리 부족의 주범이다.

37:00

KV 캐시 절감을 위한 아키텍처: GQA와 MLA

GQA(Grouped-Query Attention)는 여러 쿼리 헤드가 하나의 KV 헤드를 공유하여 캐시 크기를 획기적으로 줄인다. DeepSeek에서 제안한 MLA(Multi-head Latent Attention)는 KV 벡터를 저차원 잠재 공간으로 압축하여 저장한 뒤 추론 시 복원하는 방식으로 캐시 효율을 극대화했다. 이러한 기법들은 정확도 손실을 최소화하면서도 더 큰 배치 사이즈와 긴 문맥 처리를 가능하게 한다.
python
def compute_transformer_performance_stats(config):
    num_params = 2*V*D + D*F*3*L + (2*D*N*H + 2*D*K*H)*L
    parameter_size = 2 * num_params
    kv_cache_size_per_seq = S * (K*H) * L * 2 * 2
    memory = B * kv_cache_size_per_seq + parameter_size
    latency = memory / memory_bandwidth
    throughput = B / latency

Transformer 모델의 파라미터 수, 메모리 점유량, 지연 시간 및 처리량을 계산하는 로직 예시

50:50

추측 디코딩(Speculative Decoding)을 통한 가속

작은 Draft 모델이 여러 토큰을 빠르게 추측하고, 큰 Target 모델이 이를 한 번에 검증하는 방식이다. Target 모델은 여러 토큰을 병렬로 검증할 수 있으므로 연산 강도가 높아져 GPU 활용률이 개선된다. 통계적으로 Draft 모델의 예측이 정확할수록 전체 추론 속도는 순차적 생성 대비 수 배 이상 빨라질 수 있다.

검증 과정은 병렬 처리가 가능하여 Memory-bound 문제를 우회할 수 있다.

55:30

연속 배칭(Continuous Batching)과 PagedAttention

기존 배칭 방식은 가장 긴 요청이 끝날 때까지 GPU가 유휴 상태가 되는 비효율이 있었다. vLLM에서 도입된 PagedAttention은 운영체제의 가상 메모리 개념을 차용하여 KV 캐시를 비연속적인 블록 단위로 관리한다. 이를 통해 메모리 단편화를 해결하고 요청이 들어오는 즉시 배치에 투입하는 연속 배칭을 구현하여 처리량을 최대 10배까지 향상시켰다.

vLLM은 현재 가장 널리 쓰이는 오픈소스 추론 엔진 중 하나이다.

용어 해설

연산 강도(Arithmetic Intensity)
메모리에서 읽어온 데이터 바이트당 수행되는 부동 소수점 연산(FLOPs)의 비율이다. 이 수치가 낮으면 하드웨어의 연산 능력보다 메모리 대역폭에 의해 성능이 제한되는 Memory-bound 상태가 된다. LLM 추론의 효율성을 결정하는 핵심 지표이다.
KV 캐시(KV Cache)
Transformer 모델의 자기회귀 생성 과정에서 이전 토큰들의 Key와 Value 행렬을 저장해두는 기술이다. 매번 처음부터 다시 계산하는 낭비를 방지하여 추론 속도를 높이지만, 문맥이 길어질수록 막대한 GPU 메모리를 점유하는 병목 원인이 된다.
추측 디코딩(Speculative Decoding)
작고 빠른 Draft 모델이 여러 토큰을 미리 생성하고, 큰 Target 모델이 이를 한 번에 검증하는 병렬 추론 기법이다. 검증 과정은 병렬 처리가 가능하므로 순차적 생성보다 전체적인 추론 속도를 크게 향상시킬 수 있다.
그룹화 쿼리 어텐션(Grouped-Query Attention)
여러 개의 Query 헤드가 하나의 Key-Value 헤드 쌍을 공유하도록 설계된 아키텍처이다. Multi-Head Attention의 성능과 Multi-Query Attention의 메모리 효율성 사이에서 균형을 맞추어 KV 캐시 크기를 획기적으로 줄여준다.
연속 배칭(Continuous Batching)
서로 다른 시점에 들어오고 끝나는 요청들을 유연하게 하나의 배치로 묶어 처리하는 기술이다. 요청이 끝날 때까지 기다리지 않고 토큰 단위로 배치를 갱신하여 GPU 활용률을 극대화하고 처리량을 높인다.
AI 분석 전체 내용 보기

AI 요약 · 북마크 · 개인 피드 설정 — 무료

출처 · 인용 안내

원문 발행 2026. 05. 12.수집 2026. 05. 12.출처 타입 YOUTUBE

인용 시 "요약 출처: AI Trends (aitrends.kr)"를 표기하고, 사실 확인은 원문 보기 기준으로 진행해 주세요. 자세한 기준은 운영 정책을 참고해 주세요.