# heretic2-charrp-reasoning — modelopt NVFP4 + native MTP fast char-rp-reasoning seat on # fv-ml1 GPU0, replacing the GGUF NEO-CODE reasoning seat (llama-charrp-reasoning, now retired). # Same Heretic2/NEO-CODE model; ~77 tok/s (~1.3x over GGUF) via qwen3_5_mtp spec-decode. # # ⚠️ REQUIRES the MTP workaround: vLLM 0.24.0 doesn't propagate modelopt exclude_modules to the # spec-decode DRAFT model, so the BF16 mtp head gets quantized -> shape crash. The mounted # sitecustomize.py (conf/mtp-workaround/) force-skips mtp.* in is_layer_skipped. Without it the # engine dies at load. Full recipe: eshpfi docs/runbooks/heretic2-nvfp4-mtp-seat.md. # # Co-located on GPU0 with vllm-aeon-gen (gen) + llama-charrp (char-rp). VRAM: NVFP4 27B weights # ~26GB + KV. util 0.30 fits the ~33GB free alongside gen+char-rp -> max-model-len capped at # 32768 (the GGUF seat did 256K on lighter Q5 weights; NVFP4 is heavier, so context is reduced # until VRAM is rebalanced). Tunables in .env. name: heretic2-charrp-reasoning services: vllm-charrp-reasoning: image: ${REASONING_IMAGE:-vllm/vllm-openai:v0.24.0} container_name: ${REASONING_CONTAINER:-vllm-charrp-reasoning-nvfp4} restart: unless-stopped ipc: host ports: - "${REASONING_PORT:-8018}:8000" volumes: - /tank/aimodels:/tank/aimodels # The MTP draft-model quant workaround (sitecustomize.py). PYTHONPATH loads it in the # engine-core subprocess. See runbook landmine #4. - ./conf/mtp-workaround:/mtp-workaround:ro environment: - PYTHONPATH=/mtp-workaround - VLLM_API_KEY=${API_KEY:-} command: - ${REASONING_MODEL:-/tank/aimodels/heretic2-nvfp4-work/heretic2-modelopt-nvfp4-mtp} - --quantization - modelopt - --speculative-config - '{"method": "qwen3_5_mtp", "num_speculative_tokens": ${SPEC_TOKENS:-3}}' - --language-model-only - --mamba-cache-dtype - float32 - --reasoning-parser - qwen3 - --tool-call-parser - qwen3_coder - --enable-auto-tool-choice - --served-model-name - char-rp-reasoning - --max-model-len - "${REASONING_MAX_MODEL_LEN:-32768}" - --max-num-seqs - "${REASONING_MAX_NUM_SEQS:-4}" - --gpu-memory-utilization - "${REASONING_GPU_MEM_UTIL:-0.30}" - --kv-cache-dtype - fp8 - --trust-remote-code deploy: resources: reservations: devices: - driver: nvidia device_ids: - "${REASONING_GPU_ID:-0}" capabilities: - gpu healthcheck: test: ["CMD", "curl", "-f", "http://localhost:8000/health"] interval: 30s timeout: 10s retries: 3 start_period: 600s networks: - tnet labels: - homepage.group=AI - Inference - homepage.name=char-rp-reasoning (Heretic2 NVFP4+MTP) - homepage.icon=mdi-rocket-launch - homepage.description=NEO-CODE Heretic2 NVFP4 + native MTP, ~77 tok/s (fv-ml1 GPU0) - homepage.href=http://10.251.50.54:${REASONING_PORT:-8018}/docs networks: tnet: name: traefik-net external: true