
LLM 추론(Inference)이 실제로 어떻게 작동하는지에 대한 11장 분량의 인터랙티브 가이드를 제작했습니다
요약
vLLM의 핵심 원리를 1,200줄의 Python 코드로 재구현한 nano-vLLM을 통해 LLM 추론 과정을 설명하는 인터랙티브 가이드를 소개합니다. KV 캐시, PagedAttention, 스케줄링 등 복잡한 서빙 메커니즘을 시각적 도구와 코드로 쉽게 이해할 수 있습니다.
핵심 포인트
- nano-vLLM을 통한 LLM 추론 알고리즘의 직관적 이해
- KV 캐시를 활용한 연산 효율화 및 메모리 관리 원리
- PagedAttention을 통한 GPU 메모리 파편화 해결 방법
- 연속 배치(Continuous Batching)를 통한 GPU 활용률 극대화
프로덕션 수준의 vLLM은 100,000줄 이상의 C++, CUDA, 그리고 Python 코드로 이루어져 있습니다. 이는 업계 대부분의 LLM 서빙(serving)을 뒷받침하고 있지만, 아무런 사전 지식 없이 이를 읽는 것은 매우 고통스러운 일입니다.
그래서 저는 vLLM의 핵심 아이디어를 약 1,200줄의 순수 Python으로 오픈 소스 재구현한 nano-vLLM을 중심으로 학습 시리즈를 만들었습니다. 모든 알고리즘이 눈에 보입니다. 모든 설계 결정이 명확하게 읽힙니다. 이는 LLM이 어떻게 텍스트를 생성하는지 실제로 이해하기 위한 완벽한 렌즈가 되었습니다.
그 결과 11장으로 구성된 인터랙티브 가이드가 탄생했습니다. 머신러닝(ML) 배경지식은 필요하지 않습니다. 모든 전문 용어는 비유, 다이어그램, 주석이 달린 소스 코드, 인터랙티브 시뮬레이터, 그리고 퀴즈를 통해 기초부터 설명됩니다.
다루는 내용:
- LLM 추론(Inference)이란 무엇인가? — 토큰(tokens), 자기회귀 생성(autoregressive generation), Q/K/V 어텐션(attention), HBM vs SRAM

- 아키텍처(Architecture) — 1,200줄의 코드가 어떻게 구성되어 있는가; CPU 제어 평면(control plane) vs GPU 데이터 평면(data plane)
- KV 캐시(KV Cache) — 왜 Key와 Value를 저장하는 것이 O(N²) 재계산을 O(1) 조회로 바꾸는가

- PagedAttention — KV 캐시를 위한 가상 메모리; 파편화(fragmentation)가 어떻게 GPU 메모리의 60~80%를 낭비하는가

- 스케줄러(The Scheduler) — 연속 배치(continuous batching); GPU 활용률을 12%가 아닌 95%로 유지하는 방법

- Prefill vs Decode — 동일한 모델이지만 완전히 다른 두 가지 병목 현상 (연산 제한(compute-bound) vs 메모리 제한(memory-bound))

- Prefix Caching — 공유 토큰에 대한 prefill 건너뛰기; ~700ms → ~90ms TTFT(첫 토큰 생성 시간)

- 샘플링 전략(Sampling Strategies) — greedy, temperature, top-k, top-p, 그리고 각 방식이 분포(distribution)에 미치는 영향
- 텐서 병렬화(Tensor Parallelism) — 여러 GPU에 모델 분할하기; 컬럼/로우 병렬(column/row parallel) 및 all-reduce
- 최적화 스택(The Optimization Stack) — FlashAttention, 커널 퓨전(kernel fusion), CUDA Graphs, torch.compile
- 벤치마크(Benchmarks) — 정직한 측정; 왜 nano-vLLM이 핵심 처리량(throughput)에서 vLLM과 일치하는가
각 장은 완전히 독립적이며 인터랙티브(interactive)합니다. 제가 가장 만족스러워하는 몇 가지 시뮬레이터는 다음과 같습니다: 가득 채우면 파편화(fragment)되는 과정을 관찰할 수 있는 PagedAttention 블록 할당기(block allocator), 토큰을 하나씩 단계별로 따라갈 수 있는 라이브 스케줄러(live scheduler), 그리고 슬라이더로 확률 분포(probability distribution)를 재구성하고 샘플링할 수 있는 샘플링 플레이그라운드(sampling playground)입니다.
🔗 전체 시리즈 읽기: https://ashwing.github.io/vllm-guide/
이 가이드는 무료이며 공개되어 있습니다. 프롬프트(prompt)를 보내고 토큰(token)을 돌려받는 사이에 실제로 어떤 일이 일어나는지 이해하고 싶었던 적이 있다면, 이것이 바로 제가 간절히 원했던 길입니다.
피드백은 언제나 환영합니다. 댓글을 통해 어떤 개념에 대해서든 질문해 주시면 기꺼이 답변해 드리겠습니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기