프로덕션 환경에서 대규모 언어 모델(LLM) 서빙을 위한 종합 가이드
요약
본 가이드는 프로덕션 환경에서 LLM을 서비스하는 복잡성을 다루며, 전통적인 ML 모델과 달리 LLM은 요청마다 다른 자원 소모와 비효율적인 추론 과정을 거칩니다. 이 핸드북은 GPU 메모리 작동 원리부터 vLLM 같은 최신 시스템의 구현 방식까지 포괄적으로 설명하여 대규모 LLM 서빙에 필요한 모든 지식을 제공합니다.
핵심 포인트
- LLM 서비스는 요청마다 자원 소모가 달라 예측 및 확장이 어렵다.
- GPU 메모리 구조와 디코딩 과정의 비효율성을 이해하는 것이 중요하다.
- PagedAttention, Quantization 등 최적화 기법을 통해 효율적인 서빙이 가능하다.
- vLLM과 같은 전문 추론 엔진 사용법을 학습할 수 있다.
프로덕션 환경에서 대규모 언어 모델(LLM) 서비스하기 위한 결정적인 안내서.
Quick Start • Contents • Equations • Contributing
전통적인 ML 모델을 서비스하는 것과는 LLM을 서비스하는 것이 다릅니다. 전통적인 ML의 경우, 요청을 보내면 모델이 순방향 패스(forward pass)를 한 번 실행하고 결과를 얻습니다. 고정된 시간, 고정된 메모리, 간단합니다.
LLM의 경우, 모든 요청이 다릅니다. 짧은 답변은 100ms가 걸립니다. 긴 답변은 10초가 걸립니다. 모델은 단어를 한 번에 하나씩 생성하며, 각 단어는 전체 모델을 메모리에서 다시 읽어야 합니다. 대화가 길어질수록 더 많은 GPU 메모리를 소비합니다. 요청당 고정된 비용이 없습니다.
이것이 LLM 추론(inference)을 비싸고, 예측하기 어렵게 만들며, 확장하기 어렵게 만듭니다.
저희는 이 문제들을 해결하는 지식이 존재하지만, 그 지식이 연구 논문, 블로그 게시물, 소스 코드 주석, 그리고 경험적 지식에 흩어져 있기 때문에 이 핸드북을 작성했습니다. GPU 메모리가 어떻게 작동하는지부터, 왜 디코딩(decode)이 느린지, vLLM과 같은 프로덕션 시스템이 실제로 어떻게 해결하는지에 이르기까지 전체 그림을 연결해 주는 단일 자료가 없었습니다.
이것이 바로 그 자료입니다.
git clone https://github.com/harshuljain13/llm-inference-at-scale.git
cd llm-inference-at-scale
pip install -e .
Chapter 00: The Transformer at Inference Time부터 읽기 시작하세요.
총 12개의 챕터와 약 55개의 모듈로 구성되어 있으며, 각 모듈은 보조 실습(companion lab)과 함께 집중적으로 8~10분 분량으로 작성되었습니다.
Chapter 00: 추론 시점의 Transformer (4개 모듈)
| # | Module | Path |
|---|---|---|
| 0.1 | Transformer Architecture | transformer_architecture.md |
| ... | ||
| Chapter 01: 추론을 위한 GPU 하드웨어 (2개 모듈) |
| # | Module | Path |
|---|---|---|
| 1.1 | GPU Memory Hierarchy | gpu_memory.md |
| 1.2 | The Roofline Model | roofline_fundamentals.md |
Chapter 02: 크기 결정 및 서비스(Sizing and Serving) (1개 모듈)
| # | Module | Path |
|---|---|---|
| 2.1 | Capacity Planning | capacity_planning.md |
Chapter 03: 어텐션 변형(Attention Variants) (6개 모듈)
| # | 모듈 | 경로 |
|---|---|---|
| 3.1 | Multi-Head Attention (MHA) | mha.md |
| ... | ||
| 제4장: KV 캐시 엔지니어링 (KV Cache Engineering) (5개 모듈) |
| # | 모듈 | 경로 |
|---|---|---|
| 4.1 | PagedAttention | paged_attention.md |
| ... | ||
| 제5장: 최적화 기법 (Optimization Techniques) (6개 모듈) |
| # | 모듈 | 경로 |
|---|---|---|
| 5.1 | Quantization | quantization.md |
| ... | ||
| 제6장: 추론 엔진 (Inference Engines) (4개 모듈) |
| # | 모듈 | 경로 |
|---|---|---|
| 6.1 | vLLM | vllm.md |
| ... | ||
| 제7장: 확장성 (Scaling) (3개 모듈) |
| # | 모듈 | 경로 |
|---|---|---|
| 7.1 | Tensor Parallelism | tensor_parallelism.md |
| ... | ||
| 제8장: 서빙 인프라 (Serving Infrastructure) (7개 모듈) |
| # | 모듈 | 경로 |
|---|---|---|
| 8.1 | Ray Serve | ray_serve.md |
| ... | ||
| 제9장: 운영 (Operations) (6개 모듈) |
| # | 모듈 | 경로 |
|---|---|---|
| 9.1 | Benchmarking and Metrics | benchmarking.md |
| ... | ||
| 제10장: 프로덕션 사례 (Production Stories) (3개 모듈) |
| # | 모듈 | 경로 |
|---|---|---|
| 10.1 | Meta's Inference Platform | meta_inference_platform.md |
| ... | ||
| 제11장: 시스템 설계 (System Designs) (5개 모듈) |
| # | 모듈 | 경로 |
|---|---|---|
| 11.1 | ChatGPT-Scale Chatbot | chatgpt_scale_chatbot.md |
| ... | ||
| 총계: 12개 장, 약 55개 모듈. |
기여를 환영합니다. 이 문서는 살아있는 문서입니다.
오류 수정 — 오타, 구식 정보, 잘못된 공식 등을 명확성 향상 — 더 나은 설명, 추가 예시 등 콘텐츠 추가 — 새로운 모듈, 실습 또는 참고 자료
레포지토리를 포크(Fork)하고 브랜치를 생성한 후 PR을 제출하세요. 오류를 보고하려면 GitHub 이슈를 여세요.
Harshul Jain은 실시간 ML 시스템, 피처 스토어 및 LLM 서빙 인프라를 전문으로 하는 선임 ML 인프라 엔지니어입니다. 그는 수백만 명의 사용자에게 서비스를 제공하는 ML 플랫폼을 구축하고 운영하며, eMentoring 프로그램을 통해 300명 이상의 엔지니어를 멘토링하고 있으며, ML 인프라 컨퍼런스의 정기 연사로 활동하고 있습니다.
- GitHub: @harshuljain13
본 핸드북에 표현된 견해, 기술 및 의견은 전적으로 저자의 것이며, 고용주나 제휴 기관의 견해를 대변하지 않습니다. 독점적이거나 기밀인 정보는 포함되지 않았습니다. 모든 내용은 공개적으로 이용 가능한 연구, 오픈 소스 도구 및 독립적인 분석을 기반으로 합니다.
© 2026 Harshul Jain. 모든 권리 보유.
본 저작물의 일부를 복제, 배포, 수정하거나 사용하려면 반드시 저자의 사전 서면 허가가 필요합니다. 허가를 요청하려면 GitHub 이슈를 열어주십시오.
이 핸드북은 많은 연구원과 엔지니어들의 작업에 기반을 두고 있습니다:
- PagedAttention 및 연속 배치(continuous batching)의 vLLM 팀
- RadixAttention의 SGLang 팀
- FlashAttention의 Tri Dao
- Attention Is All You Need, GQA, Medusa, EAGLE 등 기초 논문의 저자들 및 다수
AI 자동 생성 콘텐츠
본 콘텐츠는 GitHub Trending Jupyter Notebook (weekly)의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기