LLM WikiAccess-protected knowledge portal
← 스터디 홈
150편 · 약 16분

vLLM 0.27.0: Kimi K3 전 스택 착지·FA4 FP8·gRPC 제어면·MRv2 비생성 확장으로 추론 인프라를 다시 쌓는 방법

요약

vLLM v0.27.0이 2026년 8월 10일에 출시됐다. 242명의 기여자(신규 64명)가 561개 커밋을 쌓은 이번 릴리스는 단순한 기능 추가가 아니라 세 개의 구조적 전환을 동시에 완성했다.

  1. Kimi K3 전 스택 착지 — 2.8조 파라미터 하이브리드 MoE 모델을 위한 커널·양자화·DSpark 경로가 한 릴리스에 통합됐다.
  2. Model Runner V2(MRv2) 비생성 확장 — 임베딩·분류 등 인코더 전용 작업이 MRv2 경로로 합류했다.
  3. Rust 프론트엔드 gRPC 제어면 — 엔진 상태·모델 발견·KV 이벤트 소스까지 gRPC로 통일해 멀티엔진 운영의 기반을 마련했다.

함께 도착한 것들: FlashAttention 4 FP8 + headdim-256(SM100), PyTorch 2.13.0, NVIDIA Rubin(sm_107) 조기 지원, 분산 서빙 내결함성 프레임워크.

  • GitHub: vllm-project/vllm v0.27.0 · 2026-08-10 출시

릴리스 규모와 흐름

v0.25 → v0.26 → v0.27 연속성

버전출시일핵심 변화
v0.25.02026-07-14MRv2 기본화, PagedAttention 삭제, Rust 프론트엔드 DP supervisor
v0.26.02026-07-25어텐션 백엔드 KV 그룹별 선택, 3계층 KV 오프로딩(객체 스토어 2차 계층), Inkling 1T 모델 Day-0
v0.27.02026-08-10Kimi K3 전 스택, MRv2 비생성, gRPC 제어면, FA4 FP8, Rubin sm_107

v0.25에서 MRv2가 기본 경로가 됐고, v0.26에서 KV 계층화가 안정됐으며, v0.27에서 MRv2를 비생성 작업(임베딩, 분류)으로 확장하고 제어면을 gRPC로 통일했다. 각 릴리스가 이전 릴리스의 기반 위에서 경계를 확장하는 구조다.


1. Kimi K3 전 스택: 한 릴리스에 담은 것들

Kimi K3는 2.8조 파라미터 MoE + KDA(Kimi Delta Attention) 하이브리드 선형 어텐션 모델이다. 이 모델을 vLLM에서 효율적으로 서빙하려면 일반 트랜스포머와 다른 경로가 필요하다.

vLLM 0.27.0 Kimi K3 지원 스택 커널 레이어 AttnRes 커널 (KDA 하이브리드 어텐션) DeepGEMM 지원 (MoE 라우팅 행렬곱) DSpark AR 퓨전 (AR 경로 투기적 디코딩) 양자화 레이어 compressed-tensors 양자화 체크포인트 공유 전문가: 복제 대신 샤딩 옵션 (메모리 절감) Python 프론트엔드 기존 vLLM API 호환, OpenAI 서버 Rust 프론트엔드 gRPC 제어면 + multimodal video/audio 운영 결과 1M 토큰 컨텍스트 75% KV 캐시 절감 (vs 풀 어텐션) 370 tok/s (16×GB300 NVL72, vllm 0.27.0) 64+ GPU 슈퍼노드 필요 MoE top-16, 896 전문가, SiTU-GLU 안정화
vLLM 0.27.0 Kimi K3 지원 스택 구조

v0.27.0이 Kimi K3에 추가한 것

구성 요소내용
AttnRes 커널KDA 하이브리드 레이어(3:1 선형:전체 어텐션)를 위한 커스텀 어텐션 커널
DeepGEMM 지원MoE 희소 행렬곱 최적화, 라우팅 연산 가속
DSpark AR 퓨전투기적 디코딩을 자기회귀 경로에 직접 퓨전해 TPOT 단축
공유 전문가 샤딩기존 복제(replication) 대신 샤딩을 선택할 수 있는 옵션 추가, 64+ GPU 환경에서 메모리 절감
compressed-tensors 체크포인트HuggingFace 생태계 양자화 형식(MXFP4 QAT 포함) 직접 로드

Kimi K3는 두 가지 복잡성을 가진다. 하나는 KDA 레이어마다 어텐션 계산이 달라진다는 것(표준 MHA 커널 재사용 불가), 또 하나는 896개 전문가 MoE의 라우팅 오버헤드다. DeepGEMM과 AttnRes는 각각 이 두 병목을 겨냥한다.


2. Model Runner V2(MRv2) 비생성 확장

v0.25에서 MRv2는 덴스 모델 생성 경로의 기본이 됐다. v0.27에서는 비생성 작업으로 영역을 넓혔다.

v0.25 MRv2 범위
덴스 모델 생성 (텍스트)
MoE 모델 생성
투기적 디코딩
임베딩 ✗
분류 ✗
인코더 전용 ✗
v0.27 MRv2 범위
덴스·MoE 생성 (기존)
인코더 전용 어텐션 ✓
시퀀스 풀링 (임베딩) ✓
토큰 분류 ✓
임베딩 생성 ✓
멀티모달 인코더 (진행 중)
MRv2 작업 범위 확장

왜 MRv2 통일이 중요한가

레거시 추론 경로(v0 Runner)는 비생성 작업을 별도 코드 경로로 처리했다. 이 분기는 두 가지 문제를 낳았다.

  1. KV 캐시 관리 불일치: 생성과 임베딩 사이에서 캐시 힌트가 공유되지 않았다.
  2. 플러그인 지원 중복: 어텐션 백엔드, 양자화 플러그인이 두 경로 각각 지원해야 했다.

MRv2가 임베딩·분류를 흡수하면서 이 분기가 해소됐다. 운영 관점에서는 embedding 엔드포인트와 chat 엔드포인트가 동일한 스케줄러, 동일한 메모리 관리자 아래 실행된다는 의미다.


3. FlashAttention 4: FP8 KV 캐시와 headdim-256

FA4는 v0.26에서 SM100(H100/B200)에 처음 도입됐다. v0.27에서 두 가지가 추가됐다.

FP8 KV 캐시 지원

FA4의 Hopper 패스에 FP8 KV 캐시를 직접 소비하는 경로가 추가됐다. 기존 FA3/FlashInfer에서는 FP8 KV를 BF16으로 dequant한 뒤 어텐션 연산을 수행했다. FA4 FP8 경로는 이 변환 없이 Tensor Core에서 직접 처리한다.

비교FA3/FlashInfer FP8FA4 FP8 (v0.27)
KV 메모리FP8 저장 → BF16 변환 후 연산FP8 저장 → FP8로 직접 Tensor Core 연산
dequant 오버헤드있음없음
정밀도BF16 어텐션 결과FP8 내부 누적 (출력은 BF16)
적용 하드웨어H100 이상 FA3 지원SM100(H100/B200) FA4 한정

headdim-256 지원

기존 FA4는 headdim-128까지만 지원했다. v0.27에서 headdim-256이 추가됐다. 이는 Qwen3.5 MoE 및 MLA(Multi-head Latent Attention) 변형 모델들이 활용하는 헤드 크기다.

JIT 워밍업 인프라

FA4는 모델-형태별로 Triton 커널을 JIT 컴파일한다. 첫 요청에서 컴파일이 일어나면 지연이 급증한다. v0.27의 JIT 워밍업 인프라는 서버 시작 시 예상 입력 형태를 미리 컴파일해 초기 p99 스파이크를 제거한다.


4. Rust 프론트엔드 gRPC 제어면

v0.25에서 Rust 프론트엔드는 HTTP/mTLS + DP supervisor를 갖췄다. v0.27에서는 gRPC 제어면을 추가해 분산 추론 운영에 필요한 원격 관리 API를 제공한다.

vLLM 0.27 Rust 프론트엔드 gRPC 제어면 오케스트레이터 / LB KServe / k8s Gateway / 커스텀 ── gRPC 제어면 (새로 추가) ── Rust 프론트엔드 Health Reporting 엔진별 상태 보고 Abort Control 요청 중단 제어 KV Event Source Discovery KV 캐시 소스 발견·라우팅 Server & Model Discovery 실행 중인 서버·모델 목록 동적 발견 + vllm-bench CLI 통합 HTTP 데이터면 (기존) OpenAI-compatible API · mTLS · DP supervisor
vLLM Rust 프론트엔드 gRPC 제어면 아키텍처

gRPC 제어면이 해결하는 문제

기존 vLLM은 엔진 상태를 HTTP 헬스체크(/health, /metrics) 하나로 노출했다. 이 방식은 두 가지 한계가 있었다.

  • 엔진별 세분화 불가: 여러 DP 복제본 중 어느 것이 느린지 HTTP 폴링으로는 구분이 어렵다.
  • KV 이벤트 소스 비가시성: 분리 서빙(PD disaggregation)에서 프리필 노드가 생성한 KV 캐시를 디코드 노드가 어떻게 라우팅할지 제어 정보가 없었다.

gRPC 제어면은 엔진별 상태(부하, 큐 깊이, KV 캐시 점유율)를 스트리밍으로 전달하고, KV 이벤트 소스를 동적으로 등록·발견하게 한다. 외부 로드밸런서가 이 정보를 기반으로 라우팅을 결정할 수 있다.


5. 하드웨어: Rubin(sm_107)과 ROCm gfx1250

NVIDIA Rubin 조기 지원

v0.27.0은 sm_107 컴파일 타깃을 추가하고, NVLink all-reduce 경로를 SM107에서 활성화했다. Rubin(GB300/R100)은 아직 출시 전이지만, vLLM은 에뮬레이터와 얼리 액세스 하드웨어에서 실행이 검증된 상태로 배포됐다.

GPU 아키텍처 sm 번호 진행
  H100 (Hopper)  → sm_90
  B200 (Blackwell) → sm_100
  R100 (Rubin)   → sm_107 ← v0.27.0 조기 지원

ROCm gfx1250

AMD의 RDNA 4 기반 Strix Point APU 아키텍처(gfx1250)가 활성화됐다. v0.26에서 이미 Strix Halo(gfx1201)에 W4A16 커널이 최적화됐고, gfx1250은 그 다음 세대 타깃이다. AMD 가속기 생태계 지원의 연속성이다.


6. 분산 서빙: 내결함성과 Elastic EP

DP+EP 외부 로드밸런서 내결함성

v0.27.0은 DP(데이터 병렬)+EP(전문가 병렬) 외부 로드밸런서 배포를 위한 내결함성 프레임워크를 추가했다. 이전 버전에서는 EP 워커 하나가 죽으면 전체 서빙 그룹을 재시작해야 했다. 내결함성 프레임워크는 실패한 EP 슬롯을 격리하고 나머지 워커로 서비스를 지속한다.

Elastic EP 비동기 준비

엘라스틱 스케일링 시나리오에서 EP 워커를 추가할 때, 기존에는 새 워커가 완전히 초기화될 때까지 모든 요청이 블로킹됐다. async preparation은 새 워커가 백그라운드에서 초기화되는 동안 기존 워커가 계속 서빙하도록 한다.


7. 새 모델과 PyTorch 업그레이드

새로 지원되는 모델

모델특징
Qwen3.5 (덴스·MoE)headdim-256, video token pruning 추가
K-EXAONE-2.0-750B-A37BLG AI Research 한국어 특화 MoE
VaultGemma보안 도메인 Gemma 변형
jina-embeddings-v5-text-nanoMRv2 임베딩 경로 첫 번째 주요 모델

PyTorch 2.13.0 업그레이드

의존성이전v0.27.0
PyTorch2.12.x2.13.0
torchvision0.27.x0.28.0
Triton3.6.x3.7.1

PyTorch 2.13의 torchao.float8 안정 API와 FP8 훈련 개선이 포함됐다. Triton 3.7.1은 JIT 컴파일 성능 개선과 SM107 타깃 코드 생성을 지원한다.


8. 운영 체크리스트

업그레이드 전 확인

1. PyTorch 2.13.0 호환성
   - torch.compile 사용 중이라면 Triton 3.7.1 API 변경 확인
   - 커스텀 CUDA 확장이 있다면 sm_90/sm_100 재컴파일 필요 여부 검토

2. MRv2 임베딩 경로 전환
   - /v1/embeddings 엔드포인트가 MRv2를 사용하는지 확인
   - 레거시 v0 Runner 기반 임베딩 서버와 동작 차이 검증 필요

3. gRPC 제어면 포트
   - 기본 gRPC 포트(기본값 8001)가 방화벽에서 열려 있는지 확인
   - 오케스트레이터(KServe 등)가 gRPC health check를 사용한다면 프로브 설정 업데이트

4. Kimi K3 배포
   - 64+ GPU 슈퍼노드 필요 (NVLink 연결 권장)
   - vLLM 0.27.0 네이티브 AttnRes+DeepGEMM 스택 확인
   - compressed-tensors 양자화 체크포인트 형식 준비

5. FA4 FP8 경로
   - SM100(H100/B200)에서만 유효
   - 첫 서버 시작 시 JIT 워밍업으로 지연 발생 → 로드밸런서 헬스체크 타임아웃 여유 설정

사용 가능한 새 지표

vllm:kv_offload_tier_events_total{tier="OBJ"}  # 객체 스토어 KV 오프로드 이벤트
vllm:mrv2_nongen_requests_total                 # MRv2 비생성 요청 수
vllm:ep_fault_recovered_total                   # EP 내결함성 복구 횟수
vllm:grpc_control_plane_latency_seconds         # gRPC 제어면 응답 지연

정리

vLLM 0.27.0의 세 가지 변화는 방향이 같다: 분산 추론의 운영 제어면을 강화한다.

Kimi K3 전 스택은 새로운 하이브리드 모델 아키텍처를 지원하는 것 이상이다 — AttnRes, DeepGEMM, DSpark가 각각 다른 병목을 겨냥하며 한 릴리스에 동시 착지했다. MRv2의 비생성 확장은 임베딩과 생성을 같은 스케줄러로 통합해 메모리 관리 중복을 없앤다. gRPC 제어면은 멀티노드 환경에서 엔진 상태와 KV 이벤트를 외부 오케스트레이터가 활용할 수 있게 연다.

FA4 FP8, Rubin sm_107, PyTorch 2.13.0은 다음 세대 하드웨어와 수치 포맷으로의 이행을 준비한다.


References

  • GitHub Release: https://github.com/vllm-project/vllm/releases/tag/v0.27.0
  • vLLM Official X 릴리스 공지: https://x.com/vllm_project
  • Freedom.Tech vLLM 0.27.0: https://freedom.tech/posts/2026-08-10-vllm-0-27-0/
  • vLLM KV Offloading Usage Guide: https://docs.vllm.ai/en/latest/features/kv_offloading_usage/
  • NVIDIA Transformer Engine FP8: https://docs.nvidia.com/deeplearning/transformer-engine/user-guide/
  • Kimi K3 Technical Report: https://arxiv.org/abs/2607.24653
  • PyTorch 2.13 Release Notes: https://pytorch.org/blog/pytorch-2.13/