안녕하세요, 모두,
24GB 카드에 27B 를 밀어넣고 이를 수행하기 위해 관련된 모든 양자화 트릭에 대한 많은 게시물을 보았습니다. 모든 작업은 놀라운 것이지만, 결국 양자화된 모델과 양자화된 KV 는 양자화되지 않은 것보다 오류가 더 빠르게 누적되어, 이는 에이전트 코딩에 눈에 띄는 영향을 미칩니다.
48GB GPU 는 대부분의 양자화 나쁜 것을 피하기 위해 충분히 VRAM 을 제공하며, Blackwell 가속화된 FP8 과 같은 genuinely 좋은 옵션이 있다는 것을 알게 되었습니다. 다행히 Qwen 은 27B 모델의 자체 FP8 버전을 출시했습니다.
진지하게 말하면: 저는 우리가 "10 만 달러에 무엇을 사야 할까?"라는 모든 게시물의 답을 찾을 수 있을 것이라 생각합니다. Pro5k, 64GB RAM, 적절한 CPU/mobo, 그리고 Blackwell 하드웨어 가속과 양자화되지 않은 KV 를 사용하여 FP8 양자의 27B 를 champ 처럼 실행할 것입니다. 그것은 조용하고, 충분히 차갑고, 작고, 빠르며... 정말 훌륭합니다.
최종 레시피:
- vLLM 0.20.1
- CUDA 12.9
- Qwen 의 공식 Qwen3.6 27B FP8 양자화 이 Qwen3.6 의 모든 기능을 제공하며, 다중 모달리티, MTP 등을 포함합니다.
- 20 만 토큰의 BF16 KV 캐시 @ 1.09x 병행
- 실제 벤치마크 숫자는 추후 업데이트 - 그들은 현재 실행 중입니다.
이 설정들:
export VLLM_USE_FLASHINFER_MOE_FP8=1
export VLLM_TEST_FORCE_FP8_MARLIN=1
export VLLM_SLEEP_WHEN_IDLE=1
export VLLM_MEMORY_PROFILER_ESTIMATE_CUDAGRAPHS=1
export VLLM_LOG_STATS_INTERVAL=2
export VLLM_WORKER_MULTIPROC_METHOD=spawn
export SAFETENSORS_FAST_GPU=1
export CUDA_DEVICE_ORDER=PCI_BUS_ID
export TORCH_FLOAT32_MATMUL_PRECISION=high
export PYTORCH_ALLOC_CONF=expandable_segments:True
vllm serve Qwen/Qwen3.6-27B-FP8 \
--host 0.0.0.0 --port 8080 \
--performance-mode interactivity \
--trust-remote-code \
--enable-auto-tool-choice \
--tool-call-parser qwen3_coder \
--reasoning-parser qwen3 \
--mm-encoder-tp-mode data \
--mm-processor-cache-type shm \
--gpu-memory-utilization 0.975 \
--speculative-config '{"method":"mtp","num_speculative_tokens":2}' \
--compilation-config '{"cudagraph_mode": "FULL_AND_PIECEWISE", "max_cudagraph_capture_size": 16, "mode": "VLLM_COMPILE"}' \
--async-scheduling \
--attention-backend flashinfer \
--max-model-len 196608 \
--kv-cache-dtype bfloat16 \
--enable-prefix-caching
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
성능
저는 현재 실제 벤치마크를 실행 중이며, 이 게시물을 나중에 업데이트할 것입니다. 일반적으로: MTP=2 로 코드를 작성하면 60-90 TPS 를 얻으며, 이는 일상 사용을 위해 완벽하게 수용 가능한 숫자입니다. 또한, FP8 을 실행하고 KV 는 양자화되지 않았으므로 초기 컴팩션, 끝없는 루프 등을 포함하지 않고 긴 Claude 세션의 혜택을 받습니다. 그것은 정말로 최소한의 양자화입니다.
AI 가 생성된 텍스트가 여기에 따라옵니다.