Fase 5: docker-compose.eval.yml - servicio vllm-eval-nvfp4 (puerto 8002)
Clona 1:1 el docker-compose.yml real de produccion de vllm-qwen36 (citado integro en PLAN.md): mismos flags de vLLM incluido --speculative-config (mtp, num_speculative_tokens=1) -- la primera vez que se prueba en este proyecto -- --quantization compressed-tensors, --moe-backend flashinfer_cutlass, --kv-cache-dtype fp8_e4m3, --hf-overrides de rope scaling, parsers de reasoning/tool-call, y el resto de flags identicos. Solo cambia container_name, puerto (8002 vs 8000 de produccion y 8001 del vllm-eval de Fase 4), volumen (checkpoint NVFP4 de Fase 5), --model/--served-model-name, y restart: "no". Nunca toca vllm-qwen36 ni su compose real de Portainer.
This commit is contained in:
@@ -25,3 +25,58 @@ services:
|
||||
- driver: nvidia
|
||||
count: 1
|
||||
capabilities: [gpu]
|
||||
|
||||
# Fase 5: clona 1:1 el docker-compose.yml real de produccion (vllm-qwen36, ver
|
||||
# PLAN.md) -- mismos flags de vLLM (incluido --speculative-config real, la
|
||||
# primera vez que se prueba en este proyecto), cambiando solo container_name,
|
||||
# puerto (8002, produccion usa 8000 y el vllm-eval de Fase 4 usa 8001), volumen
|
||||
# (checkpoint NVFP4 de Fase 5 en vez de RedHatAI--Qwen3.6-35B-A3B-NVFP4),
|
||||
# --model/--served-model-name, y restart: "no". Nunca se toca vllm-qwen36 ni su
|
||||
# compose real de Portainer -- este es un contenedor nuevo y propio del repo.
|
||||
vllm-eval-nvfp4:
|
||||
image: vllm/vllm-openai:cu130-nightly-aarch64
|
||||
container_name: vllm-eval-nvfp4
|
||||
restart: "no"
|
||||
runtime: nvidia
|
||||
environment:
|
||||
NVIDIA_VISIBLE_DEVICES: all
|
||||
NVIDIA_DRIVER_CAPABILITIES: compute,utility
|
||||
ports:
|
||||
- "8002:8000"
|
||||
ipc: host
|
||||
ulimits:
|
||||
memlock: -1
|
||||
stack: 67108864
|
||||
volumes:
|
||||
- /home/aleleba/ft-models/Qwen3.6-35B-A3B-mcp-NVFP4:/models/Qwen3.6-35B-A3B-mcp-NVFP4:ro
|
||||
command: >
|
||||
--model /models/Qwen3.6-35B-A3B-mcp-NVFP4
|
||||
--served-model-name qwen3.6-35b-a3b-mcp-nvfp4
|
||||
--host 0.0.0.0
|
||||
--port 8000
|
||||
--tensor-parallel-size 1
|
||||
--trust-remote-code
|
||||
--quantization compressed-tensors
|
||||
--moe-backend flashinfer_cutlass
|
||||
--kv-cache-dtype fp8_e4m3
|
||||
--gpu-memory-utilization 0.45
|
||||
--max-model-len 524288
|
||||
--max-num-seqs 8
|
||||
--max-num-batched-tokens 32768
|
||||
--enable-chunked-prefill
|
||||
--enable-prefix-caching
|
||||
--speculative-config '{"method":"mtp","num_speculative_tokens":1}'
|
||||
--reasoning-parser qwen3
|
||||
--tool-call-parser qwen3_coder
|
||||
--enable-auto-tool-choice
|
||||
--default-chat-template-kwargs '{"preserve_thinking":true}'
|
||||
--limit-mm-per-prompt '{"image":4,"video":0,"audio":0}'
|
||||
--generation-config vllm
|
||||
--override-generation-config '{"temperature":0.6,"top_p":0.80,"top_k":20,"presence_penalty":0.0,"repetition_penalty":1.0}'
|
||||
--hf-overrides '{"text_config":{"rope_scaling":{"rope_type":"yarn","factor":2.0,"original_max_position_embeddings":262144}}}'
|
||||
healthcheck:
|
||||
test: ["CMD", "curl", "-f", "http://localhost:8000/health"]
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
retries: 5
|
||||
start_period: 600s
|
||||
|
||||
Reference in New Issue
Block a user