0264 | run nemotron-3.5-bolt on dgx spark

Dockerfile

# vLLM nightly pinned by the Nemotron 3.5 Bolt 24GB model card + b12x 2-bit kernels (Blackwell SM120/SM121)
FROM vllm/vllm-openai:nightly-77154ca6116ae34cbfe314beef1016bde9b63989
RUN pip install --no-cache-dir b12x && (vllm download-kernels || echo "download-kernels deferred to runtime")

docker-compose.yml

# NVIDIA Nemotron 3.5 Bolt 74B-A9B 24GB (2-bit packed) on DGX Spark via vLLM
# Recipe from https://huggingface.co/nvidia/NVIDIA-Nemotron-3.5-Bolt-74B-A9B-24GB
#
# Build + run:  docker compose up -d --build
#
services:
  nemotron-bolt-vllm:
    build: .
    image: vllm-nemotron-bolt:latest
    container_name: nemotron-bolt-vllm
    restart: unless-stopped
    ports:
      - "8003:8000"
    volumes:
      - ${HOME}/models/nemotron-3.5-bolt-vllm:/models:ro
      - ${HOME}/.cache/vllm-nemotron-bolt:/root/.cache
    environment:
      VLLM_USE_V2_MODEL_RUNNER: "1"
    ipc: host
    ulimits:
      memlock: -1
      stack: 67108864
    deploy:
      resources:
        reservations:
          devices:
            - driver: nvidia
              count: all
              capabilities: [gpu]
    healthcheck:
      test: ["CMD", "curl", "-fs", "http://127.0.0.1:8000/health"]
      interval: 30s
      timeout: 5s
      start_period: 1200s
      retries: 3
    command:
      - /models/target
      - --served-model-name
      - nemotron-3.5-bolt
      - --host
      - 0.0.0.0
      - --port
      - "8000"
      - --trust-remote-code
      - --load-format
      - auto
      - --tensor-parallel-size
      - "1"
      # unified memory shared with gemma4 (vllm-gemma4.service, ~36GB)
      - --gpu-memory-utilization
      - "0.40"
      - --max-model-len
      - "262144"
      - --max-num-seqs
      - "1"
      - --enable-chunked-prefill
      - --kv-cache-dtype
      - fp8
      - --linear-backend
      - b12x
      - --moe-backend
      - b12x
      - --attention-backend
      - FLASHINFER
      - --mamba-backend
      - flashinfer
      - --mamba-ssm-cache-dtype
      - bfloat16
      - --mamba-cache-dtype
      - bfloat16
      - --mamba-cache-mode
      - align
      - --seed
      - "42"
      - --allowed-local-media-path
      - /media
      - --limit-mm-per-prompt
      - '{"video":1,"image":1}'
      - --video-pruning-rate
      - "0.5"
      - --media-io-kwargs
      - '{"video":{"fps":2,"num_frames":256}}'
      - --enable-auto-tool-choice
      - --tool-call-parser
      - qwen3_coder
      - --reasoning-parser-plugin
      - /models/target/ultra_v3_reasoning_parser.py
      - --reasoning-parser
      - ultra_v3
      - --speculative-config
      - '{"method":"dflash","model":"/models/drafter","num_speculative_tokens":7,"rejection_sample_method":"standard","attention_backend":"FLASHINFER","draft_load_config":{"load_format":"auto"}}'

Download models first:

hf download nvidia/NVIDIA-Nemotron-3.5-Bolt-74B-A9B-24GB --local-dir ~/models/nemotron-3.5-bolt-vllm/target
hf download nvidia/NVIDIA-Nemotron-3.5-Bolt-74B-A9B-24GB-LiLiCorr --local-dir ~/models/nemotron-3.5-bolt-vllm/drafter

0263 | บั๊กตู้ชาร์จ ปตท รุ่นใหม่ๆ

พอดีเดินทางแล้วก็ต้องใช้งานตู้ชาร์จรถครับ ล่าสุดไปทะเลาะกับตู้ชาร์จ ปตท รุ่นใหม่ๆ หน่อย ล่าสุดก็คือไอ้ตู้รุ่นนี้ ที่จะมีแขนจับที่ชาร์จห้อยลอยๆ ที่สะดวกดีนะ ยกสายง่ายขึ้นเยอะ

ปัญหาคือ ตู้รุ่นนี้รองรับ auto charge ครับ (auto charge คือ function ที่ทำให้เราสามารถเสียบหัวจ่ายไฟของตู้ชาร์จเข้ากับรถ แล้วมันจะเริ่มชาร์จเลยโดยไม่ต้องมาวุ่นวายแสกน qrcode อะไรให้ปวดหัว)

ที่เป็นปัญหาขึ้นมาเพราะ

  • รถ (โดยเฉพาะ tesla) มัน support auto charge ด้วย
  • พอเสียบหัวไปปุ๊ป รถกับตู้เห็นว่ารองรับทั้งคู่ มันเลยพยายามเริ่มชาร์จ (ดูบนจอที่ตู้จะขึ้นว่ากำลังเริ่มชาร์จ โดยที่เรายังไม่ได้แสกน qr code)
  • พอตู้ชาร์จคุยกับรถเสร็จ พร้อมเริ่มชาร์จ เลยยิงสัญญาณไปบอกระบบกลาง แต่ระบบกลางไม่มีข้อมูลว่าการชาร์จรถคันนี้ต้องตัดเงินกับใคร (เพราะระบบกลางของ ปตท ยังไม่รองรับ) ระบบเลยสั่งยกเลิกการชาร์จ
  • ตู้ชาร์จเลยตัดการชาร์จ พร้อมขึ้นว่าชาร์จเสร็จแล้ว

แนวทางเบื้องต้นของคนใช้รถ (ระหว่างรอ ปตท. แก้)

  • อย่าเพิ่งเสียบหัวชาร์จเข้ากับรถ
  • เปิดแอพ แสกน qr code หัวชาร์จ ให้ขึ้นหน้ากดปุ่มเริ่มชาร์จไว้ก่อน
  • เสียบหัวชาร์จเข้ากับรถ พร้อมกับกดปุ่มเริ่มชาร์จให้ได้ภายในไม่เกิน 1 วิ ก่อนตู้กับรถจะเริ่มคุยกัน
  • ภาวนาให้แอพส่งไปบอกระบบกลางก่อนตู้ชาร์จ