본문으로 건너뛰기

LLM 추론 파이프라인의 내부 작동 원리: 첫 번째 토큰이 느린 이유

LLM 추론 과정에서 발생하는 Prefill과 Decode 단계의 차이점을 분석하고, KV Cache, Speculative Decoding 등 성능 최적화를 위한 핵심 기술들을 설명한다.

섹션별 상세

Prefill 단계는 입력된 모든 토큰이 서로를 참조하여 문맥을 파악하는 과정으로, 연산량이 토큰 수의 제곱에 비례하여 증가한다. 이 단계에서 각 토큰의 Key와 Value 벡터가 계산되어 KV Cache에 저장되며, 이 작업이 완료되어야 첫 번째 결과 토큰이 출력되므로 초기 지연 시간이 발생한다.
Transformer 모델의 전체 Forward Pass 파이프라인 다이어그램
Diagram입력 토큰 ID부터 임베딩, 12개의 레이어(Attention, MLP), 최종 Logits 출력까지의 전체 추론 흐름을 시각화한다. 각 단계별 데이터 차원 변화와 잔차 연결(Residual Connection) 구조를 보여주어 모델 내부 연산 과정을 이해하는 데 도움을 준다.
Decode 단계는 이전 단계에서 저장된 KV Cache를 재사용하여 새로운 토큰 하나를 생성하는 과정으로, 연산 복잡도는 O(N)으로 낮아진다. 하지만 GPU가 매번 수백 GB에 달하는 KV Cache 전체를 고대역폭 메모리(HBM)에서 연산 유닛으로 읽어와야 하므로, 연산 속도보다 메모리 전송 속도에 의해 성능이 제한되는 메모리 대역폭 병목 현상이 발생한다.
KV Cache는 컨텍스트 길이가 길어질수록 기하급수적으로 커지며, Llama 3.1 128K 컨텍스트 기준 요청당 약 1TB의 메모리를 점유할 수 있다. 이를 해결하기 위해 여러 개의 Query 헤드가 하나의 KV 헤드를 공유하는 Grouped-Query Attention(GQA) 기법을 사용하여 메모리 사용량을 획기적으로 줄인다.
근거
  • Llama 3.1 128K 컨텍스트의 KV Cache는 요청당 약 1TB에 달할 수 있으나 GQA 적용 시 64GB까지 줄어든다. Why does context length murder your bills? 섹션 및 Group Query Attention 섹션
Continuous Batching과 Chunked Prefill은 GPU 활용도를 극대화하기 위한 스케줄링 기법이다. 여러 사용자의 요청을 하나의 텐서로 묶어 처리하되, 긴 프롬프트 처리가 다른 사용자의 토큰 생성을 방해하지 않도록 Prefill 작업을 작은 단위로 나누어 배치에 섞어 넣음으로써 전체 처리량을 높인다.
Continuous Batching 상황에서의 Attention Mask 시각화
Diagram서로 다른 세 명의 사용자(A, B, C) 요청이 하나의 배치로 묶였을 때, 각 요청이 서로의 토큰을 참조하지 못하도록 차단하는 마스크 구조를 보여준다. 이를 통해 멀티 유저 환경에서 효율적인 병렬 처리가 어떻게 이루어지는지 설명한다.
Chunked Prefill의 작동 방식 비교
Diagram긴 프롬프트(B)가 다른 짧은 요청(A, C)의 디코딩을 방해하지 않도록 프롬프트를 여러 단계로 나누어 처리하는 과정을 보여준다. 이를 통해 추론 서버의 지연 시간(Latency) 불균형 문제를 해결하는 원리를 설명한다.
Speculative Decoding은 작고 빠른 드래프트 모델이 여러 토큰을 미리 예측하고, 큰 모델이 이를 한 번에 검증하는 방식으로 순차적 디코딩의 한계를 극복한다. 구글의 Gemini 등 실서비스에서 2-3배의 처리량 향상을 입증했으며, 검증 단계에서 틀린 토큰이 나오기 전까지만 수용함으로써 정확도를 유지하면서 속도를 높인다.
Speculative Decoding의 프로세스 흐름도
Diagram작은 드래프트 모델이 생성한 여러 토큰을 큰 모델이 한 번에 검증하고, 틀린 부분부터 다시 생성하는 과정을 시각화한다. 순차적 생성을 병렬 검증으로 전환하여 속도를 높이는 핵심 메커니즘을 보여준다.
근거
  • Speculative Decoding을 통해 Gemini와 같은 모델의 처리량을 2-3배 향상시킬 수 있다. Speculative decoding 섹션
Paged Attention은 가상 메모리 페이징 기법을 KV Cache 관리에 도입하여 메모리 파편화 문제를 해결한다. 기존의 연속적 메모리 할당 방식과 달리 필요한 만큼만 고정 크기 블록 단위로 동적 할당함으로써, 동일한 GPU 메모리 내에서 더 많은 동시 요청을 처리할 수 있게 한다.
일반적인 메모리 할당과 Paged Attention의 차이 비교
Diagram연속적인 메모리 할당으로 인한 낭비(Wasted memory)와 페이지 테이블을 이용한 동적 할당 방식의 효율성을 대조하여 보여준다. vLLM의 핵심 기술인 Paged Attention이 어떻게 메모리 활용도를 극대화하는지 시각적으로 증명한다.

근거 모음

근거
  • INT8 양자화를 적용하면 1.6TB 크기의 모델을 약 400GB로 줄이면서도 거의 손실 없는 성능을 유지할 수 있다. Quantization 섹션

기술

  • Llama 3.1
  • vLLM
  • C++
  • HBM
  • GQA

활용 사례

  • LLM 추론 서버 최적화
  • 대규모 컨텍스트 기반 RAG 서비스
  • 실시간 토큰 스트리밍 서비스
AI 분석 전체 내용 보기

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

출처 · 인용 안내

원문 발행 2026. 04. 08.수집 2026. 04. 08.출처 타입 RSS

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