recipe.toml 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. # DeepSeek-V4-Flash-Vision (aiden production-3.73-vision image, 2x Spark).
  2. #
  3. # Image: aidendle94/sparkrun-vllm-ds4-gb10:production-3.73-vision (Docker Hub,
  4. # arm64, pushed 2026-09-06). The "vision" aiden line: their pinned
  5. # serve-ds4-flash-spark.sh launcher (env-driven; ds4-vision 0.20 branch)
  6. # wraps a compiled vLLM wheel (B12X MLA sparse attention, b12x MoE/linear,
  7. # instanttensor load, FULL_AND_PIECEWISE cudagraphs, async scheduling,
  8. # deepseek_v4 tokenizer/tool/reasoning parsers).
  9. #
  10. # Model: deepseek-ai/DeepSeek-V4-Flash-Vision-Exp (157 GB, 78.5 GiB/node at
  11. # 2x; cached in the NAS hub at snapshot 6821d6ad). Their launcher resolves
  12. # the model from the MODEL_PATH / MODEL_REVISION_OVERRIDE env vars, so this
  13. # recipe leaves `model` EMPTY — the launcher skips the positional model for
  14. # entrypoint-driven images (added capability, see AGENTS.md).
  15. #
  16. # Launcher env contract (read from the image's /opt/vllm-src/serve-ds4-
  17. # flash-spark.sh): requires NODE_RANK, MASTER_ADDR, VLLM_HOST_IP,
  18. # NCCL_IB_HCA, NCCL_IB_GID_INDEX, NCCL_SOCKET_IFNAME, GLOO_SOCKET_IFNAME,
  19. # UCX_NET_DEVICES, TP_SOCKET_IFNAME (all injected by the sm121 docker path;
  20. # NODE_RANK/MASTER_ADDR as env since their launcher doesn't parse them as
  21. # CLI flags). Defaults used here: TP=2, no spec (MTP/DSpark both off),
  22. # GMU 0.80, KV cap 24.4 GiB (SPARK_KV_CACHE_MEMORY_BYTES), max-model-len
  23. # 500K, max-num-seqs 4, max-num-batched-tokens 8192, B12X_MLA_SPARSE
  24. # attention, prefix caching on, flashinfer autotune on.
  25. #
  26. # SPARK_HF_HOME points their HF_HOME (which the launcher overrides to
  27. # ~/.cache/vllm-huggingface) at the NAS mount our docker path binds at
  28. # /root/.cache/huggingface.
  29. #
  30. # Boot markers: "Loading safetensors" (instanttensor, ~20 min from NAS) →
  31. # "GPU KV cache size" → "Application startup complete".
  32. # Bench model name: DeepSeek-V4-Flash (their SERVED_MODEL_NAME default).
  33. engine = "vllm"
  34. name = "DeepSeek-V4-Flash-Vision (aiden prod-3.73-vision img, 2x Spark)"
  35. docker_image = "aidendle94/sparkrun-vllm-ds4-gb10:production-3.73-vision"
  36. model = ""
  37. port = 30000
  38. required_nodes = 2
  39. tensor_parallel_size = 2
  40. pipeline_parallel_size = 1 # explicit: launcher default would be PP=nnodes=2
  41. # (this image's vllm fork asserts the TP×PP world size against the device count)
  42. distributed_backend = "mp"
  43. shm_size = "32gb"
  44. entrypoint = []
  45. args = []
  46. [env]
  47. MODEL_PATH = "deepseek-ai/DeepSeek-V4-Flash-Vision-Exp"
  48. MODEL_REVISION_OVERRIDE = "6821d6ad3681a4b137b066b76094fa82ebd0a380"
  49. SPARK_HF_HOME = "/root/.cache/huggingface"
  50. HF_HUB_OFFLINE = "1"
  51. VLLM_ENGINE_READY_TIMEOUT_S = "3600"
  52. VLLM_NO_USAGE_STATS = "1"