vllm-metal v0.28.0 릴리스 노트 / 새 기능 소개
vllm-metal은 vLLM의 고급 스케줄링 및 메모리 관리를 Apple Silicon 생태계에 통합하여, 맥 사용자가 겹치는 요청을 효율적으로 처리할 수 있는 OpenAI 호환 서버를 실행할 수 있도록 합니다. vLLM V1 스케줄러와 페이지 기반 KV 캐시를 MLX와 Metal을 사용해 실행함으로써, vllm-metal은 로컬 모델 실행을 확장 가능한 서빙 문제로 전환합니다.
핵심 아키텍처 및 통합
vllm-metal은 상류 vLLM의 플러그인 역할을 하며, 다음 구성 요소를 활용합니다:
- vLLM 프론트엔드: V1 스케줄러, 페이지 기반 KV 블록 관리, 청크 기반 프리필, 샘플링, 도구 호출 파싱 및 스트리밍을 지원하는 OpenAI 호환 서버 제공.
- MLX 실행:
mlx_lm을 사용해 모델 구현을 하며, Apple Silicon의 통합 메모리에서 MLX를 사용해 하드웨어 실행. - 사용자 정의 Metal 커널: vllm-metal은
mlx_lm의 토큰 단위 레이어(RMSNorm, 선형, MoE, MLP)를 재사용하지만, 표준 어텐션 대신 페이지 기반 가변 길이 Metal 커널을 사용합니다. 이 커널은 vLLM의 통합 Triton 커널의 포트로, 각 쿼리 토큰의 요청 소유권을 식별하기 위해cu_seqlens에 이진 탐색을 구현합니다.
메모리 관리 및 페이지 기반 KV 캐시
vllm-metal은 --gpu-memory-utilization 플래그를 사용해 예측 가능한 추론 예산을 설정함으로써, macOS 및 기타 응용 프로그램을 위한 여유 공간을 보장합니다. 시스템은 시작 시 워밍업 패스를 실행하여 가중치와 활성화를 고려한 후, 남은 예산을 고정된 KV 캐시에 할당합니다.
처리량을 최적화하기 위해 vllm-metal은 패킹된 쿼리와 페이지 기반 KV 저장을 사용합니다:
- 패킹된 쿼리:
mlx_lm의 패딩된 배치와 달리, vllm-metal은 모든 스케줄된 쿼리 토큰을 단일[total_q, H, D]텐서에 패킹합니다. 이로 인해 엔진은 패딩 없이 긴 요청에 맞추지 않고도 혼합 단계(prefill 및 디코딩)를 한 번의 모델 전방향 패스로 처리할 수 있습니다. - 페이지 기반 KV: KV 캐시는 요청별 블록 테이블로 주소 지정된 고정 크기 페이지에 저장되며, 요청이 커져도 연속 버퍼를 재형성할 필요 없이 확장 가능합니다.
성능 벤치마크
동시 서빙 및 지연 시간
M5 Pro(64GB 메모리)에서 SiliconBench 에이전트 분할(100개의 다단계 프롬프트, 각각 약 4.6K 입력 토큰)을 사용하여 vllm-metal은 여러 측면에서 우수한 성능을 보였습니다:
- Qwen3.8-27B: 동시성 수준 2 및 4에서 vllm-metal은 가장 낮은 최초 토큰 도착 시간(TTFT)과 엔드투엔드 지연 시간을 기록했습니다.
- Gemma 4 E4B: 동시성 16까지의 범위에서 vllm-metal은 낮은 TTFT를 유지했습니다.
- Qwen3.6-35B-A3B: 동시성 4에서 vllm-metal의 처리량과 엔드투엔드 지연 시간은 RAM 캐시를 사용한 oMLX와 유사했지만, vllm-metal은 TTFT에서 상당한 우위를 보였습니다.
다중 토큰 예측(MTP)
Gemma 4 E4B의 경우, vllm-metal은 MTP 보조 모델을 통해 사전 추론(speculative decoding)을 지원합니다. 동시성 1에서 MTP는 MTP 없이 생성하는 것보다 벽 시간을 15% 감소시키고 출력 처리량을 20% 증가시켰습니다.
M5 하드웨어 가속
M5 맥에서는 vllm-metal이 자동으로 NAX 어텐션 커널을 사용하며, 이는 호환되는 프리필 배치에 GPU의 텐서 하드웨어를 활용하여 타일링 어텐션보다 더 빠른 프리필 시간을 제공합니다.
v0.28.0의 기능 세트
v0.28.0 릴리스는 몇 가지 핵심 기능을 도입합니다:
- 모델 지원: Qwen3.5, Qwen3.6, Qwen3.8, Qwen3-Next 계열에서 온 GGUF 체크포인트 및 하이브리드 어텐션 모델 지원.
- 사전 추론: Gemma 4 MTP, 별도의 드래프트 모델, 프롬프트 검색 n-그램의 세 가지 방법 지원.
- 고급 서빙: LoRA 어댑터, 구조화된 출력, MLX 링 백엔드를 통해 여러 맥 간 파이프라인 병렬 처리 지원.
- 실험적 기능: 비전-언어 모델, 텍스트 임베딩, 재정렬, 음성-텍스트 지원.
- 접두사 캐싱: Qwen3.5 스타일 하이브리드 모델의 경우, vllm-metal은
align모드를 지원하며 블록 경계에서 GDN 순환 상태를 저장하여 캐시된 접두사에서 재개할 수 있도록 합니다.
설치 및 사용법
vllm-metal은 macOS 15 이상이 필요하며, Homebrew를 통해 설치할 수 있습니다:
brew tap vllm-project/vllm-metal https://github.com/vllm-project/vllm-metal
brew install vllm-project/vllm-metal/vllm-metal
vllm serve 명령어를 사용해 OpenAI 호환 서버를 시작할 수 있으며, 모델과 메모리 사용 예산을 지정합니다.