본문으로 건너뛰기

[vLLM] 프로젝트 전체 아키텍처 분석 - 개요 및 목차

vLLM이란

vLLM은 UC Berkeley Sky Computing Lab에서 시작된 LLM 추론/서빙 오픈소스 프로젝트다. "Easy, fast, and cheap LLM serving for everyone"을 목표로 하며, 2000명 이상의 기여자가 참여하고 있다.

핵심 논문: Efficient Memory Management for Large Language Model Serving with PagedAttention (SOSP 2023)

전체 아키텍처

 ┌──────────────────────────────────────────────────────────────────────────┐
 │                        클라이언트 (HTTP/SDK)                              │
 └────────────────────────────────┬─────────────────────────────────────────┘
                                  │
                                  ▼
 ┌──────────────────────────────────────────────────────────────────────────┐
 │  1. Entry Point                         vllm/entrypoints/               │
 │     OpenAI API Server / Anthropic API / Offline LLM / gRPC              │
 └────────────────────────────────┬─────────────────────────────────────────┘
                                  │
                                  ▼
 ┌──────────────────────────────────────────────────────────────────────────┐
 │  2. Engine                              vllm/v1/engine/                 │
 │     AsyncLLM ─→ InputProcessor ─→ EngineCoreClient (ZMQ IPC)           │
 └────────────────────────────────┬─────────────────────────────────────────┘
                                  │
                                  ▼
 ┌──────────────────────────────────────────────────────────────────────────┐
 │  3. Engine Core                         vllm/v1/engine/core.py          │
 │       ┌─────────────┐   ┌──────────────┐   ┌────────────────────┐      │
 │       │  Scheduler   │──▶│   Executor   │──▶│ update_from_output │      │
 │       └──────┬───────┘   └──────┬───────┘   └────────────────────┘      │
 │              │                  │                                        │
 │              ▼                  │                                        │
 │  ┌─────────────────────┐       │                                        │
 │  │ 4. KV Cache Manager │       │                                        │
 │  └─────────────────────┘       │                                        │
 └────────────────────────────────┼────────────────────────────────────────┘
                                  │
                                  ▼
 ┌──────────────────────────────────────────────────────────────────────────┐
 │  5. Executor → 6. Worker → 7. Model Runner                             │
 │     ┌─────────────────────────────────────────────────────────┐         │
 │     │  8. Attention Backends  │  9. Model Layers              │         │
 │     └─────────────────────────────────────────────────────────┘         │
 │     OUTPUT: logits                                                      │
 └────────────────────────────────┬─────────────────────────────────────────┘
                                  │
                                  ▼
 ┌──────────────────────────────────────────────────────────────────────────┐
 │  10. Sampler + Speculative Decoding → OutputProcessor → 클라이언트       │
 └──────────────────────────────────────────────────────────────────────────┘

 ┌──────────────────────────────────────────────────────────────────────────┐
 │  11. Distributed (횡단 관심사) — TP/PP/EP/CP, KV Transfer               │
 └──────────────────────────────────────────────────────────────────────────┘

시리즈 목차

1. Entry Point (진입점)

2. Engine (엔진)

3. Scheduler (스케줄러)

4. KV Cache Manager (KV 캐시 관리)

5. Executor (실행기)

6. Worker (워커)

7. Model Runner (모델 실행)

8. Attention Backends (어텐션 백엔드)

9. Model Layers (모델 계층)

양자화 (Quantization)

MoE (전문가 혼합)

LoRA & 위치 인코딩

기타 레이어

10. Sampler & Speculative Decoding (샘플러 & 투기적 디코딩)

11. Distributed (분산 시스템)

부록

핵심 데이터 흐름

EngineInput → EngineCoreRequest → SchedulerOutput → ModelRunnerOutput → SamplerOutput → EngineCoreOutput → RequestOutput
단계 데이터 구조 위치
입력 EngineCoreRequest vllm/v1/engine/__init__.py
스케줄링 결과 SchedulerOutput vllm/v1/core/sched/output.py
모델 출력 ModelRunnerOutput vllm/v1/outputs.py
샘플링 결과 SamplerOutput vllm/v1/outputs.py
최종 출력 RequestOutput vllm/outputs.py

참고 자료

댓글

관련 포스트

vLLM 의 다른글