원클릭으로
vllm-metal
Official community-maintained hardware plugin enabling vLLM inference on Apple Silicon. Uses MLX as primary compute b...
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
Official community-maintained hardware plugin enabling vLLM inference on Apple Silicon. Uses MLX as primary compute b...
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
Proton CLI local email indexing and search pipeline.
Proton CLI local email indexing and search pipeline.
Expert LiteLLM - AI Gateway proxy multi-provider, routing fallback, budgets/spend, caching, guardrails, MCP gateway, logging. Consulter pour decisions d'integration LiteLLM dans IntelliSoins.
mlx-audio — Text-to-Speech (TTS), Speech-to-Text (STT) et Speech-to-Speech (S2S) optimisé pour Apple Silicon. Supporte le clonage de voix zero-shot (VoxCPM2, F5-TTS, Voxtral) et le fine-tuning (OuteTTS via mlx-lm, F5-TTS).
Manage the local AI/ML inference servers in this repository via `./aictl`. Use this project skill whenever Michael asks about ai-servers, aictl, local model server status, health checks, LaunchAgents, port conflicts, MLX servers, LiteLLM proxy, embeddings, reranker, GLiNER, Whisper STT, Kokoro TTS, oMLX, Ollama, or the PRO-G40 model-cache disk.
Stack AI/ML personnelle Michael Ahern, installée nativement sur le disque (Apple Silicon M3 Max via Homebrew + Launch...
| name | vllm-metal |
| description | Official community-maintained hardware plugin enabling vLLM inference on Apple Silicon. Uses MLX as primary compute b... |
Provenance : transféré du skill
intellisoins-mlx:vllm-metal(SKILL.md+references/configuration.mdfusionnés) le 2026-05-24. Distinct de :vllm-mlx(waybarrios, serveur standalone),vmlx(Jinho Jang),vllm-omni(GPU Linux). vllm-metal = plugin officiel vllm-project dans le core vLLM. Voir aussi~/.claude/rules/local-ai-stack.md.
Official community-maintained hardware plugin enabling vLLM inference on Apple Silicon. Uses MLX as primary compute backend while maintaining full vLLM engine/scheduler/API compatibility.
Version actuelle : v0.2.0 (April 2026) — unified paged varlen Metal kernel default + STT + TurboQuant. Docs : https://docs.vllm.ai/projects/vllm-metal/en/latest/
Repo: vllm-project/vllm-metal (Apache 2.0)
| Aspect | vllm-metal (this) | vllm-mlx |
|---|---|---|
| Maintainer | vllm-project (official) | waybarrios (community) |
| Architecture | Plugin into vLLM core | Standalone server |
| Backend | MLX + PyTorch interop | MLX natif |
| Paged Attention | Metal kernels (experimental) | Via vLLM scheduler |
| Install | One-line script + venv | pip install |
# Install (creates ~/.venv-vllm-metal)
curl -fsSL https://raw.githubusercontent.com/vllm-project/vllm-metal/main/install.sh | bash
# Activate
source ~/.venv-vllm-metal/bin/activate
# Update
rm -rf ~/.venv-vllm-metal && curl -fsSL https://raw.githubusercontent.com/vllm-project/vllm-metal/main/install.sh | bash
# Uninstall
rm -rf ~/.venv-vllm-metal
Requires: Apple Silicon Mac, Python 3. Installs vllm-metal plugin + vLLM core (latest compatible) + transformers >=5.0.0. Note : install.sh ne pin pas de version vLLM précise — toujours résolu vers la version compatible upstream au moment de l'install.
curl -fsSL https://raw.githubusercontent.com/vllm-project/vllm-metal/main/install.sh | bash -s -- --with-vllm-rs
Installs vllm-frontend-rs (Rust drop-in pour vLLM serving layer). Requiert Rust toolchain (rustup.rs). Voir docs/rust_frontend.md upstream.
source ~/.venv-vllm-metal/bin/activate
# Serve a model (OpenAI-compatible API)
vllm serve mlx-community/Qwen3-0.6B-8bit --port 8000
# Test
curl http://localhost:8000/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{"model":"mlx-community/Qwen3-0.6B-8bit","messages":[{"role":"user","content":"Hello"}]}'
| Variable | Default | Description |
|---|---|---|
VLLM_METAL_MEMORY_FRACTION | auto | Memory allocation. auto or numeric (0,1] for paged mode |
VLLM_METAL_USE_MLX | 1 | Enable MLX compute (0=PyTorch fallback) |
VLLM_MLX_DEVICE | gpu | Device: gpu or cpu |
VLLM_METAL_BLOCK_SIZE | 16 | KV cache block size |
VLLM_METAL_USE_PAGED_ATTENTION | 0 | Enable experimental paged attention |
VLLM_METAL_DEBUG | 0 | Debug logging |
VLLM_METAL_PREFIX_CACHE | unset | Enable prefix caching for prompt reuse |
VLLM_METAL_PREFIX_CACHE_FRACTION | 0.05 | Prefix cache memory fraction (0,1] |
| Mode | Config | Notes |
|---|---|---|
| MLX default | PAGED_ATTENTION=0, MEMORY_FRACTION=auto | Simple, stable |
| Paged KV | PAGED_ATTENTION=1, MEMORY_FRACTION=auto or numeric | Experimental, higher throughput |
v0.2.0 default : unified paged varlen Metal kernel — 83× TTFT, 3.6× throughput vs v0.1.0 (release officielle April 2026). Other models may still have compatibility issues — bench avant prod.
vLLM Core (engine, scheduler, OpenAI API)
|
Plugin Layer (MetalPlatform, MetalWorker, MetalModelRunner)
|
Unified Backend (MLX primary + PyTorch interop)
|
Metal GPU (Apple Silicon unified memory, zero-copy)
Support OpenAI-compatible STT via Whisper et Qwen3-ASR, native MLX sur Apple Silicon.
# Install STT extras (post install.sh)
source ~/.venv-vllm-metal/bin/activate
pip install 'vllm-metal[stt]'
# Optional: ffmpeg pour formats non-WAV (mp3, m4a, flac)
brew install ffmpeg
# Serve Whisper
vllm serve openai/whisper-small --port 8000
# Transcribe
curl -X POST http://localhost:8000/v1/audio/transcriptions -F "file=@recording.wav"
Modèles supportés : Whisper (tiny/base/small/medium/large + turbo), Qwen3-ASR.
Walsh-Hadamard rotation + per-block quantization → 2.5×-5× compression du KV cache avec quality loss minimal. Quantize/dequantize natif Apple Silicon via MLX + Metal kernel.
VLLM_METAL_USE_PAGED_ATTENTION=1 vllm serve meta-llama/Llama-3.2-1B-Instruct \
--dtype bfloat16 \
--max-model-len 32768 \
--additional-config '{"turboquant": true, "k_quant": "q8_0", "v_quant": "q3_0"}'
Configuré via --additional-config JSON (pas de variable env séparée). Requiert VLLM_METAL_USE_PAGED_ATTENTION=1.
Pour TurboQuant en dehors du plugin Metal (mlx-vlm, mlx-openai-server, mlx_lm), voir
~/.claude/rules/turboquant-mlx.md.
k_quant | Bits | Notes |
|---|---|---|
q8_0, int8, uint8 | 8 | Near-lossless |
q5_0 | 5 | Bon trade-off qualité/taille |
q4_0, int4, uint4 | 4 | Config TurboQuant paper |
int2, uint2 | 2 | Aggressive, perte qualité notable |
v_quant : Lloyd-Max non-uniform quantization avec Walsh-Hadamard rotation, valeurs mappées vers centroïdes pré-calculés par bitwidth.
Voir docs/turboquant.md upstream pour détails.
MEMORY_FRACTION=autoModel not loading: Ensure HuggingFace model is downloaded. Try huggingface-cli download <model-id>.
OOM: Use quantized models (*-4bit, *-8bit), reduce memory fraction, close GPU apps.
Paged attention issues: Disable with VLLM_METAL_USE_PAGED_ATTENTION=0 and test with default MLX mode.
venv conflicts: Isolate from other MLX venvs (mlx-openai, mlx-audio). Do not mix.
Transféré de
references/configuration.md.
Valid combinations of VLLM_METAL_USE_PAGED_ATTENTION and VLLM_METAL_MEMORY_FRACTION:
| Paged Attention | Memory Fraction | Result |
|---|---|---|
| 0 (default) | auto (default) | MLX default path — stable |
| 0 | numeric | INVALID — MLX requires auto |
| 1 | auto | Paged KV, defaults to 0.9 internally |
| 1 | numeric (0,1] | Paged KV with explicit allocation |
Enable for higher throughput on supported models:
export VLLM_METAL_USE_PAGED_ATTENTION=1
export VLLM_METAL_MEMORY_FRACTION=0.8 # or auto
vllm serve mlx-community/Qwen3-0.6B-8bit
Early benchmarks (Qwen3-0.6B):
Caveats: other models may have compatibility issues. Test with default MLX mode first.
Reuse computed KV cache for repeated prompt prefixes:
export VLLM_METAL_PREFIX_CACHE=1
export VLLM_METAL_PREFIX_CACHE_FRACTION=0.05 # 5% of memory
vllm serve <model>
Useful for: RAG with shared system prompts, repeated context, batch inference.
export VLLM_USE_MODELSCOPE=True
export VLLM_METAL_MODELSCOPE_CACHE=/path/to/local/models # optional
vllm serve <model-id-from-modelscope>
| Model Size | Quantization | Estimated RAM | Recommended |
|---|---|---|---|
| 0.6B | 8-bit | ~2 GB | 8GB+ Mac |
| 3B | 4-bit | ~4 GB | 16GB+ Mac |
| 7-8B | 4-bit | ~8 GB | 16GB+ Mac |
| 14B | 4-bit | ~12 GB | 32GB+ Mac |
| 30B | 4-bit | ~20 GB | 48GB+ Mac |
| 70B | 4-bit | ~40 GB | 96GB+ Mac |
mlx-community/ quantized models from HuggingFaceStandard vLLM endpoints exposed:
| Endpoint | Method | Description |
|---|---|---|
/v1/chat/completions | POST | Chat completions (streaming supported) |
/v1/completions | POST | Text completions |
/v1/models | GET | List loaded models |
/health | GET | Health check |
Full vLLM CLI and API docs: docs.vllm.ai