marksunner/dgx-spark-single-stack
GitHub: marksunner/dgx-spark-single-stack
在单台NVIDIA DGX Spark上运行Qwen 122B推理、Hermes Agent、Honcho对话记忆及健康监控的完整单栈自主AI Agent部署方案。
Stars: 16 | Forks: 0
# DGX Spark 单栈 AI Agent
**一个运行在单台 NVIDIA DGX Spark 上的完整自主 AI Agent。**
一台设备。一颗 GPU。全栈 AI:推理、agent runtime、对话记忆和监控 —— 全部在单台 128GB DGX Spark 上运行。
## 这是什么
一个有文档记录且可复现的配置,用于运行:
| 组件 | 角色 | 资源 |
|-----------|------|----------|
| **Qwen 3.5 122B** | LLM 推理(混合 INT4+FP8,MTP 投机解码) | GPU(约 67 GB) |
| **Hermes Agent** | 具备工具使用能力及 Discord/聊天集成的 AI agent runtime | CPU(约 300 MB) |
| **Honcho** | 对话记忆(PostgreSQL + Redis) | CPU(约 500 MB) |
| **Uptime Kuma** | 健康监控仪表盘 | CPU(约 100 MB) |
核心洞察:**GPU 和 CPU 的工作负载互不干扰。** vLLM 通过 `--gpu-memory-utilization` 独占 GPU 内存,而 agent 栈完全在 CPU/系统 RAM 上运行。它们可以轻松共存。
## 性能
| 指标 | 数值 |
|--------|-------|
| 解码速度 | **41–47 tok/s**(单用户) |
| MTP 接受率 | 并发数=1 时增加 40–50% |
| 并发稳定性 | 15 个并行任务,100% 通过率 |
| 顺序基准测试 | 得分 91/100,中位数耗时 2.0s/轮 |
| 并行 4 路基准测试 | 得分 88/100,中位数耗时 5.9s/轮 |
| 模型加载时间 | 约 65 秒 |
| 完整初始化(编译 + 预热) | 约 200 秒 |
## 快速开始
### 1. 构建混合 Checkpoint
完整流程请参阅 [`docs/hybrid-checkpoint.md`](docs/hybrid-checkpoint.md)。
混合 INT4+FP8 checkpoint 将 Intel AutoRound INT4 权重与 Qwen FP8 权重合并,比单独使用任一格式能产生更高的吞吐量。
### 2. 启动 vLLM
```
docker run -d --name vllm-qwen35 \
--gpus all --net=host --ipc=host \
-v /path/to/models:/models \
vllm-qwen35-v2 \
serve /models/qwen35-122b-hybrid-int4fp8 \
--served-model-name qwen3.5-122b \
--max-model-len 131072 \
--gpu-memory-utilization 0.85 \
--port 8000 --host 0.0.0.0 \
--load-format fastsafetensors \
--attention-backend FLASHINFER \
--enable-chunked-prefill \
--max-num-batched-tokens 16384 \
--max-num-seqs 256 \
--enable-prefix-caching \
--enable-auto-tool-choice \
--tool-call-parser qwen3_coder \
--generation-config auto \
--chat-template /models/qwen35-122b-hybrid-int4fp8/unsloth.jinja \
--override-generation-config '{"temperature": 0.3, "top_p": 0.95, "top_k": 20, "presence_penalty": 0.0, "repetition_penalty": 1.0}' \
--speculative-config '{"method":"mtp","num_speculative_tokens":2}'
```
### 3. 安装 Hermes Agent
请参阅 [`docs/hermes-setup.md`](docs/hermes-setup.md)。
### 4. 安装 Honcho(可选)
请参阅 [`docs/honcho-setup.md`](docs/honcho-setup.md)。
## 文档
- **[`docs/complete-walkthrough.md`](docs/complete-walkthrough.md) — 从这里开始:在大约 2 小时内从零开始构建整个栈**
- [`docs/vllm-config.md`](docs/vllm-config.md) — vLLM flag 参考与 OOM 预防
- [`docs/hybrid-checkpoint.md`](docs/hybrid-checkpoint.md) — 构建混合 INT4+FP8 checkpoint
- [`docs/hermes-setup.md`](docs/hermes-setup.md) — Agent runtime 安装
- [`docs/honcho-setup.md`](docs/honcho-setup.md) — 对话记忆设置
- [`docs/thinking-modes.md`](docs/thinking-modes.md) — 控制 thinking/reasoning token
- [`docs/troubleshooting.md`](docs/troubleshooting.md) — 常见问题与修复
- [`docs/benchmarks.md`](docs/benchmarks.md) — 性能测试方法论
## 模型大比拼
我们进行了一场正面交锋的比较:相同的研究任务,相同的 agent 框架,在各自独立的单台 Spark 上运行 Qwen 3.5 122B 与 Step 3.7 Flash。Qwen 的速度快了约 6.7 倍(4 分钟对 27 分钟);而 Step 3.7 在来源分析和矛盾解决方面挖掘得更深。
完整结果与方法论:**[总仓库中的模型大比拼](https://github.com/marksunner/dgx-spark#model-bake-off-research-task-quality)**
## 背景
### 为什么选择单台 Spark?
我们此前曾使用 Ray 分布式推理在**两台** DGX Spark 上运行 Qwen 3.5 122B。当时的假设是:硬件越多 = 速度越快。
**错了。**
| 配置 | Tok/s | 硬件 |
|--------------|-------|----------|
| 双 Spark(Ray,无 MTP) | ~28 | 2× DGX Spark |
| 单 Spark(vLLM,无 MTP) | ~29.5 | 1× DGX Spark |
| 单 Spark(混合 INT4+FP8,MTP K=3) | **41–47** | 1× DGX Spark |
Ray 的节点间通信开销抵消了第二台 Spark 带来的任何优势。与此同时,MTP(Multi-Token Prediction,多 token 预测)—— 这项技术仅在单节点上才能稳定工作 —— 带来了 40–50% 的速度提升。结论是:**一台 Spark 比两台更快。**
这释放了硬件资源,可用于其他实验、部署额外的 agent,或者仅仅是降低了功耗。
## 许可证
此文档被自由共享。所引用的工具(vLLM、Hermes、Honcho、Qwen)拥有它们各自的许可证。
标签:AI智能体, LLM部署, NVIDIA DGX, Qwen, vLLM, 性能优化, 搜索引擎查询, 检测绕过, 测试用例, 请求拦截, 运维部署