LLM - 支持 Hermes 智能体的 vLLM 部署 Qwen3.5 与 Qwen3.6 方案

欢迎关注我的CSDN:https://spike.blog.csdn.net/

本文地址:https://spike.blog.csdn.net/article/details/161429303

免责声明:本文来源于个人知识与公开资料,仅用于学术交流,欢迎讨论,不支持转载。


本文总结了当前面向 Hermes 智能体的 vLLM 模型服务部署方案:现有 3 个 OpenAI-compatible API 入口可用,包括 122B 主力服务、122B 备用服务和 27B 轻量服务。整体配置并发上限为 48,建议按 Hermes 工程智能体 24 并发、100K 以上长上下文 6 并发作为压测和容量规划口径。推荐将 qwen3.5-122b-a10b-fp8 作为复杂工程、多工具调用和长上下文主模型,将 qwen3.6-27b-fp8 用于摘要、分类和低复杂度批量任务。上线前需重点补齐备用 122B 节点复测、262K 极限上下文压测、并发压测、API Key 轮换、端口白名单和健康检查配置。

当前部署容量摘要

截至 2026-05-26 当前探测结果,已有 3 个 vLLM API 入口可用,均为 OpenAI-compatible /v1 接口。

指标 当前结论 说明
当前可用 vLLM API 入口数 3 个 122B 主力入口为 TP=4/DP=2 双副本,另有 1 个 122B 备用入口和 1 个 27B DP=3 入口
vLLM 配置最大并发序列数 48 按启动命令中的 max-num-seqs=8 叠加,DP 实例按 rank 叠加
Hermes 工程智能体建议并发 24 面向工具调用、代码阅读、工程分析的明确预估口径
长上下文工程任务建议并发 6 100K-262K 上下文不建议按配置上限打满
单请求输出烟测吞吐 约 60-120 output tok/s 非并发压测,仅用于估算
配置上限线性估算输出吞吐 约 4,320 output tok/s 按配置并发简单相乘,仅作为上限参考
合理工程预估输出吞吐 约 1,800 output tok/s 面向 Hermes 工程智能体和轻量任务混合负载
长上下文工程预估输出吞吐 约 500 output tok/s 面向 100K+ 上下文、代码审查、仓库分析;不包含输入 prefill 耗时

实例明细:

API 入口 模型 当前角色 副本数 配置最大并发 合理预估并发 长上下文并发 单请求输出 配置线性上限 合理预估输出吞吐
<主力节点A>:8000 qwen3.5-122b-a10b-fp8 122B 实例,8 卡 TP=4;DP=2 2 16 8 2 120 tok/s 1920 tok/s 800 tok/s
<备用节点B>:8000 qwen3.5-122b-a10b-fp8 122B 实例,4 卡 TP=4 1 8 4 1 120 tok/s 960 tok/s 400 tok/s
<轻量节点B>:13001 qwen3.6-27b-fp8 27B 实例,3 卡 DP=3 3 24 12 3 60 tok/s 1440 tok/s 600 tok/s
合计 48 24 6 4320 tok/s 1,800 tok/s

实例与启动命令对应关系:

实例 对应启动命令 GPU 并行方式 max-num-seqs 实际配置并发 max-num-batched-tokens max-model-len
<主力节点A>:8000 # 8个卡 122B 命令 CUDA_VISIBLE_DEVICES=0,1,2,3,4,5,6,7 TP=4, DP=2 8 / DP rank 16 65536 262144
<备用节点B>:8000 # 4个卡 122B 命令 CUDA_VISIBLE_DEVICES=4,5,6,7 TP=4 8 8 65536 262144
<轻量节点B>:13001 # 3个卡 27B 命令 CUDA_VISIBLE_DEVICES=1,2,3 DP=3, TP=1 8 / DP rank 24 65536 262144

其中 <备用节点B>:8000<轻量节点B>:13001 可以在同一台 8 卡机器上同时运行:122B 4 卡实例使用 GPU 4,5,6,7,27B DP 实例使用 GPU 1,2,3,GPU 分配不重叠。8 卡 122B 主力命令占用 0,1,2,3,4,5,6,78000 端口,应部署在另一台服务器,不能与 4 卡备用命令在同机同时运行。

说明:

  1. 上表的 tok/s 指模型输出 token/s,不包含输入 prefill token/s。
  2. "配置线性上限"按单请求烟测吞吐乘以配置最大并发计算,仅作为上限参考,不作为生产承诺。
  3. "合理预估输出吞吐"按混合负载折减后给出明确数字,已考虑 batch 调度、KV cache、工具调用等待、网络和排队损耗。
  4. <主力节点A>:8000 的 8 卡方案采用 TP=4, DP=2,是一个 API 入口下的 2 个 122B 副本;单个请求只落到其中 1 个 TP=4 副本,不会跨 2 个 DP 副本合并显存。
  5. 4 卡 122B 的 max-num-seqs 为 8,且 262K 长上下文、prefill 和 KV cache 余量明显弱于 8 卡资源池,因此合理预估并发明确按 4 处理。
  6. 对外容量承诺建议使用压测值。当前建议承诺口径为:普通短上下文 30 并发、Hermes 工程智能体 24 并发、100K+ 长上下文 6 并发;262K 极限上下文建议单独队列、单请求或低并发压测后再承诺。
  7. 当前命令的 --max-model-len 262144 是硬上限。超过 262K 需要启用 RoPE/YaRN 类扩展并重新压测;仅有 A100 80G 不代表当前服务会接受超过 262K 的请求。
  8. vLLM 官方文档当前将 qwen3_xml parser 主要列在 Qwen3-Coder 模型下;本方案用于 Qwen3.5/Qwen3.6 的依据是当前环境实测通过。升级 vLLM、模型权重或 chat template 后,必须重新做工具调用烟测。

一、结论摘要

本方案用于将自建 vLLM OpenAI-compatible 服务接入 Hermes 智能体,支撑复杂工程任务、工具调用、多轮工具闭环、流式输出和长上下文处理。

根据 2026-05-26 实测结果:

服务 模型 结论 推荐定位
http://<主力节点A>:8000/v1 qwen3.5-122b-a10b-fp8 可用,/models、聊天、流式输出、工具调用、工具闭环、长上下文烟测均通过 Hermes 主力复杂工程模型
http://<备用节点B>:8000/v1 qwen3.5-122b-a10b-fp8 可用,基础聊天、流式输出和工具调用通过;工具闭环与长上下文需补充复测 主力模型备用地址或负载均衡节点
http://<轻量节点B>:13001/v1 qwen3.6-27b-fp8 可用,工具调用和长上下文烟测通过 轻量任务、低成本任务、快速响应模型

关键适配结论:

  1. 该组 vLLM 服务可以适配 Hermes 智能体调用,尤其是 qwen3.5-122b-a10b-fp8 更适合作为复杂工程智能体主模型。
  2. /v1/models 已返回 max_model_len=262144,说明服务端配置了 262K 上下文;实测约 100,822 字符上下文可正常返回末尾校验码。
  3. 262K 是单请求上限,不等于 16 个并发请求都能同时打满 262K。复杂工程调用应按长上下文低并发、短任务高并发分开管理。
  4. 按当前启动命令复核,三实例配置并发上限是 16 + 8 + 24 = 48,不是 80。

二、实测记录

2.1 模型与上下文能力

地址 /models max_model_len 备注
<主力节点A>:8000 200 262144 122B 主服务
<备用节点B>:8000 200 262144 122B 备用服务
<轻量节点B>:13001 200 262144 27B 服务

2.2 Hermes 关键能力验证

能力 122B 主力节点 122B 备用节点 27B 轻量节点 说明
基础聊天 通过 通过 通过 返回正常 content
流式输出 通过 通过 通过 可返回 SSE chunk
OpenAI tools 通过 通过 通过 返回标准 tool_calls
工具调用闭环 通过 未单独复测 通过 role=tool 结果可继续生成最终回答
长上下文烟测 通过 未单独复测 通过 约 100,822 字符输入,正确返回末尾校验码

三、总体架构

用户 / 开发者
Hermes Dashboard :13007
Hermes API Server :18008
OpenAI Client / 请求适配层
vLLM Qwen3.5 122B 主力 :8000
vLLM Qwen3.5 122B 备用 :8000
vLLM Qwen3.6 27B :13001
工程工具: shell / git / 文件 / 浏览器 / CI
A100 80GB x 8
A100 80GB x 4
A100 80GB x 3, DP=3

推荐分工:

层级 推荐配置 说明
Hermes Dashboard 0.0.0.0:13007 或内网地址 对外 Web 管理入口,建议加访问控制
Hermes API Server <Hermes内网地址>:18008 只给 Dashboard 或内部服务访问
主模型 qwen3.5-122b-a10b-fp8 复杂工程、规划、代码理解、长上下文任务
轻量模型 qwen3.6-27b-fp8 摘要、分类、简单问答、低成本批处理
请求适配 OpenAI-compatible 请求透传 保证 Hermes 收到稳定的 content/tool_calls

四、vLLM 部署方案

4.1 模型下载

bash 复制代码
modelscope download --model Qwen/Qwen3.5-122B-A10B-FP8 \
  --local_dir /data/models/Qwen3.5-122B-A10B-FP8

modelscope download --model Qwen/Qwen3.6-27B-FP8 \
  --local_dir /data/models/Qwen3.6-27B-FP8

4.2 环境基线

项目 当前信息
vLLM 0.21.0
GPU 单节点基线为 NVIDIA A100-SXM4-80GB x 8;当前三入口组合至少涉及两组 8 卡资源
Driver 580.65.06
CUDA 13.0
推荐运行目录 /data/models
API Key 使用环境变量注入,不写入文档明文

生产环境建议:

  1. vLLM 服务进程使用专门账号运行。
  2. API Key 通过环境变量或密钥管理系统注入。
  3. 800013001 端口增加防火墙白名单。
  4. 如 API Key 已出现在聊天、文档或日志中,生产前建议轮换。

4.3 当前实例与并发口径

从当前可访问端点看,已经有 3 个 vLLM API 入口可用:

序号 地址 模型 实例类型 vLLM 配置并发上限 Hermes 推荐并发
1 <主力节点A>:8000 qwen3.5-122b-a10b-fp8 122B 主力服务,8 卡 TP=4/DP=2,2 副本 16 8
2 <备用节点B>:8000 qwen3.5-122b-a10b-fp8 122B 备用实例,4 卡 TP=4 部署 8 4
3 <轻量节点B>:13001 qwen3.6-27b-fp8 27B 轻量实例,3 卡 DP=3 部署 24 12

并发计算口径:

  1. --max-num-seqs 表示单个 vLLM 调度器可同时处理的序列数上限。
  2. 122B 8 卡 DP 部署时,理论并发序列数为 8 x 2 = 16;122B 4 卡非 DP 部署时,实例理论并发序列数等于 --max-num-seqs=8
  3. 27B 使用 --data-parallel-size 3 时,--max-num-seqs 按 DP rank 生效,理论并发序列数为 8 x 3 = 24
  4. 当前 3 个 API 端点按启动命令配置上限合计为 16 + 8 + 24 = 48 个并发序列。
  5. Hermes 复杂工程任务不建议按理论上限打满。混合工程负载建议 122B 8 卡 TP=4/DP=2 服务控制在 8 并发、122B 4 卡服务控制在 4 并发,27B 轻量任务控制在 12 并发。

需要注意:/v1/models 可以确认模型名和 max_model_len,但不会返回 --max-num-seqs--max-num-batched-tokens--tensor-parallel-size 等运行参数。要确认当前服务器真实启动参数,应在模型服务器执行:

bash 复制代码
ps -ef | grep 'vllm serve' | grep -v grep
grep -E 'max-num-seqs|max-num-batched-tokens|tensor-parallel-size|data-parallel-size|max-model-len' \
  vllm-qwen*.log

4.4 停止服务

bash 复制代码
pkill -f "vllm serve /data/models"

生产环境建议优先使用 systemd 管理,避免误杀同机其他 vLLM 进程。

4.5 启动 Qwen3.5 122B 服务,8 卡方案

该方案将 8 张 A100 拆成 2 个 TP=4 的 122B-FP8 副本,由 vLLM 通过 DP=2 在同一个 OpenAI-compatible API 入口内调度。它比单个 TP=8 副本更适合日常多人并发和资源利用;单个 262K 极限长上下文任务仍建议限流。

bash 复制代码
export VLLM_API_KEY='替换为生产密钥'

CUDA_VISIBLE_DEVICES=0,1,2,3,4,5,6,7 \
nohup vllm serve /data/models/Qwen3.5-122B-A10B-FP8 \
  --served-model-name qwen3.5-122b-a10b-fp8 \
  --host 0.0.0.0 \
  --port 8000 \
  --api-key "$VLLM_API_KEY" \
  --tensor-parallel-size 4 \
  --data-parallel-size 2 \
  --data-parallel-backend mp \
  --max-model-len 262144 \
  --tool-call-parser qwen3_xml \
  --enable-auto-tool-choice \
  --reasoning-parser qwen3 \
  --enable-prefix-caching \
  --gpu-memory-utilization 0.85 \
  --max-num-seqs 8 \
  --max-num-batched-tokens 65536 \
  --trust-remote-code \
  > vllm-qwen3.5-122b-fp8-hermes.log 2>&1 &

适用场景:

场景 建议
常规 Hermes 工程智能体 使用 122B 8 卡 TP=4/DP=2,合理并发 8
长上下文代码审查 使用该服务,但控制 100K+ 长上下文总并发为 2
多工具调用规划 使用该服务,优先路由复杂任务
高并发短请求 max-num-seqs=8 按 DP rank 生效,总配置并发 16
262K 极限上下文 建议单请求限流,不作为高并发能力承诺

启动参数标注:

参数 当前值 类型 作用 调整建议
CUDA_VISIBLE_DEVICES 0,1,2,3,4,5,6,7 GPU 资源 指定使用 8 张 A100 122B 主力服务建议保持 8 卡
--served-model-name qwen3.5-122b-a10b-fp8 接口标识 Hermes 请求中的 model 名称 必须与 Hermes 配置一致
--host 0.0.0.0 网络 对所有网卡监听 公网暴露时必须配防火墙白名单
--port 8000 网络 OpenAI-compatible API 端口 多实例部署时端口不能冲突
--api-key $VLLM_API_KEY 安全 启用 Bearer 鉴权 生产前轮换泄露过的 Key
--tensor-parallel-size 4 模型并行 每个 122B 副本使用 4 张 GPU 做 TP DP=2 共同使用 8 张卡
--data-parallel-size 2 数据并行 启动 2 个 TP=4 副本 提升吞吐和多人并发
--data-parallel-backend mp DP 后端 单机多进程数据并行 单机 8 卡部署建议使用
--max-model-len 262144 上下文 单请求最大上下文长度 复杂工程保留 262K,短任务实例可降到 32K/64K
--tool-call-parser qwen3_xml 工具调用 解析 Qwen 工具调用格式 Hermes tools 必须保留
--enable-auto-tool-choice 开启 工具调用 允许模型自动决定是否调用工具 Hermes 智能体必须保留
--reasoning-parser qwen3 推理字段 解析 Qwen reasoning 输出 可保留,用于兼容 Qwen 推理输出
--enable-prefix-caching 开启 性能 复用相同前缀 KV cache 工程任务和多轮对话建议保留
--gpu-memory-utilization 0.85 显存 vLLM 可使用显存比例 复杂工程和 262K 上下文建议从 0.85 起步
--max-num-seqs 8 并发 每个 DP 副本最大并发序列数 DP=2 下总配置并发为 16
--max-num-batched-tokens 65536 调度 单步批处理 token 上限 长上下文实例可保守 32768-65536
--trust-remote-code 开启 模型加载 允许模型仓库自定义代码 仅使用可信模型目录

本服务理论最大并发序列数为 8 x 2 = 16;Hermes 复杂工程合理预估并发为 8,100K+ 长上下文建议 2。

4.6 启动 Qwen3.5 122B 服务,4 卡方案

4 卡方案可用于验证、临时部署或上下文较短的任务;不建议作为 262K 长上下文复杂工程主力服务。

bash 复制代码
export VLLM_API_KEY='替换为生产密钥'

CUDA_VISIBLE_DEVICES=4,5,6,7 \
nohup vllm serve /data/models/Qwen3.5-122B-A10B-FP8 \
  --served-model-name qwen3.5-122b-a10b-fp8 \
  --host 0.0.0.0 \
  --port 8000 \
  --api-key "$VLLM_API_KEY" \
  --tensor-parallel-size 4 \
  --max-model-len 262144 \
  --tool-call-parser qwen3_xml \
  --enable-auto-tool-choice \
  --reasoning-parser qwen3 \
  --enable-prefix-caching \
  --gpu-memory-utilization 0.90 \
  --max-num-seqs 8 \
  --max-num-batched-tokens 65536 \
  --trust-remote-code \
  > vllm-qwen3.5-122b-fp8-hermes.log 2>&1 &

说明:

  1. 如果坚持 262K 上下文,4 卡更容易受到 KV cache 与并发压力影响。
  2. 当前启动命令为 max-num-seqs=8max-num-batched-tokens=65536;如生产压测不稳定,再降到 max-num-seqs=4max-num-batched-tokens=32768
  3. 如出现 OOM,可优先降低 max-num-seqsmax-num-batched-tokensmax-model-len

启动参数标注:

参数 当前值 类型 作用 调整建议
CUDA_VISIBLE_DEVICES 4,5,6,7 GPU 资源 指定使用 4 张 A100 与 27B 实例同机时注意 GPU 不重叠
--tensor-parallel-size 4 模型并行 将 122B 权重切分到 4 张 GPU 4 卡下更适合短上下文或低并发
--max-model-len 262144 上下文 保留 262K 上限 如 OOM,优先降到 131072 或 65536
--max-num-seqs 8 并发 单实例最大并发序列数 4 卡长上下文如 OOM 或排队严重,可降到 4-8
--max-num-batched-tokens 65536 调度 单步批处理 token 上限 4 卡长上下文如不稳定,可降到 32768
--gpu-memory-utilization 0.90 显存 vLLM 可用显存比例 OOM 时降到 0.85
工具相关参数 qwen3_xml / auto tool 工具调用 支持 Hermes tools 必须保留

本实例按当前启动命令的理论最大并发序列数为 8;但不建议在 262K 长上下文下打满。

4.7 启动 Qwen3.6 27B 轻量服务,3 卡 DP 方案

该方案适合作为 Hermes 的轻量任务模型或备用模型。

bash 复制代码
export VLLM_API_KEY='替换为生产密钥'

CUDA_VISIBLE_DEVICES=1,2,3 \
nohup vllm serve /data/models/Qwen3.6-27B-FP8 \
  --served-model-name qwen3.6-27b-fp8 \
  --host 0.0.0.0 \
  --port 13001 \
  --api-key "$VLLM_API_KEY" \
  --data-parallel-size 3 \
  --tensor-parallel-size 1 \
  --data-parallel-backend mp \
  --max-model-len 262144 \
  --tool-call-parser qwen3_xml \
  --enable-auto-tool-choice \
  --reasoning-parser qwen3 \
  --enable-prefix-caching \
  --gpu-memory-utilization 0.90 \
  --max-num-seqs 8 \
  --max-num-batched-tokens 65536 \
  --trust-remote-code \
  > vllm-qwen3.6-27b-fp8-hermes.log 2>&1 &

说明:

  1. --data-parallel-size 3 表示 3 个数据并行副本,适合提升吞吐。
  2. 每个副本仍需独立承载模型与 KV cache,长上下文并发时仍需压测。
  3. 对复杂工程规划、跨文件推理、长链路工具调用,优先使用 122B。

启动参数标注:

参数 当前值 类型 作用 调整建议
CUDA_VISIBLE_DEVICES 1,2,3 GPU 资源 指定使用 3 张 A100 与其他实例同机时不能重复占卡
--served-model-name qwen3.6-27b-fp8 接口标识 Hermes 请求中的 model 名称 必须与 Hermes 配置一致
--port 13001 网络 轻量模型 API 端口 可由 Hermes 路由为 low-cost model
--data-parallel-size 3 数据并行 启动 3 个 DP 副本提升吞吐 理论并发按 DP rank 叠加
--tensor-parallel-size 1 模型并行 每个 DP 副本单卡承载模型 27B FP8 在 A100 80GB 上适合单卡副本
--data-parallel-backend mp DP 后端 单机多进程 DP 单机部署保留
--max-model-len 262144 上下文 单请求最大上下文长度 轻量任务可单独降到 64K 提升稳定性
--max-num-seqs 8 并发 每个 DP rank 的最大并发序列数 DP=3 时理论上限为 24
--max-num-batched-tokens 65536 调度 每步批处理 token 上限 高并发短任务可保留,长上下文需压测
工具相关参数 qwen3_xml / auto tool 工具调用 支持 Hermes tools 已实测可返回 tool_calls

本实例理论最大并发序列数为 8 x 3 = 24;Hermes 轻量任务推荐并发为 12,复杂工程任务不建议路由到该实例。

五、Hermes 接入配置

5.1 Custom Endpoint 配置

hermes setup 或 Hermes Dashboard 中选择 Custom Endpoint:

text 复制代码
API base URL: http://<主力节点A>:8000/v1
API key: 使用 VLLM_API_KEY
Model: qwen3.5-122b-a10b-fp8
Context length: 262144

备用模型:

text 复制代码
API base URL: http://<备用节点B>:8000/v1
API key: 使用 VLLM_API_KEY
Model: qwen3.5-122b-a10b-fp8
Context length: 262144

轻量模型:

text 复制代码
API base URL: http://<轻量节点B>:13001/v1
API key: 使用 VLLM_API_KEY
Model: qwen3.6-27b-fp8
Context length: 262144

如果 Hermes 与 vLLM 部署在同一台服务器,可以使用:

text 复制代码
API base URL: http://127.0.0.1:8000/v1

如果 Hermes 不在 vLLM 服务器本机,不能使用 127.0.0.1localhost,应使用内网地址、服务地址或负载均衡地址。

5.2 推荐请求样例

基础聊天:

bash 复制代码
curl http://<主力节点A>:8000/v1/chat/completions \
  -H "Authorization: Bearer $VLLM_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "qwen3.5-122b-a10b-fp8",
    "messages": [
      {"role": "user", "content": "只回答 OK"}
    ],
    "temperature": 0,
    "max_tokens": 64
  }'

工具调用:

bash 复制代码
curl http://<主力节点A>:8000/v1/chat/completions \
  -H "Authorization: Bearer $VLLM_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "qwen3.5-122b-a10b-fp8",
    "messages": [
      {"role": "user", "content": "请调用 read_file 工具读取 /repo/src/main.py,不要直接回答。"}
    ],
    "tools": [
      {
        "type": "function",
        "function": {
          "name": "read_file",
          "description": "读取一个本地工程文件",
          "parameters": {
            "type": "object",
            "properties": {
              "path": {"type": "string"}
            },
            "required": ["path"]
          }
        }
      }
    ],
    "tool_choice": "auto",
    "temperature": 0,
    "max_tokens": 256
  }'

六、容量与性能建议

6.1 上下文容量

当前 vLLM /models 返回:

json 复制代码
{
  "max_model_len": 262144
}

实测约 100,822 字符工程上下文:

模型 结果 耗时
qwen3.5-122b-a10b-fp8 正确返回末尾校验码 约 2.69 秒
qwen3.6-27b-fp8 正确返回末尾校验码 约 19.22 秒

注意:

  1. 100K 字符烟测通过不等于 262K 极限压测通过。
  2. 262K 上下文建议单独做压测,覆盖单请求、2 并发、4 并发、工具调用循环和流式输出。
  3. Hermes 做复杂工程任务时,应优先使用检索、文件选择和分段摘要,避免每次把全仓库塞入上下文。

按模型结构、A100 80G 资源和当前烟测结果,建议将 262K 视为"服务端配置上限",不要直接视为生产承诺。上线前建议按以下口径压测并设定限流:

实例 当前 max-model-len KV cache 压力判断 发布前压测重点 生产建议
122B 8 卡 TP=4/DP=2 262144 每个请求只落到 1 个 TP=4 副本,长上下文主要消耗该副本 KV cache 128K、200K、262K 单请求和 2 并发 128K-200K 常规使用,262K 走专用队列
122B 4 卡 TP=4 262144 权重与 KV cache 共用 4 卡资源,长上下文余量弱于 8 卡 DP 资源池 128K、200K 单请求和 1 并发 128K 优先,262K 仅作备用专项验证
27B 3 卡 DP=3 262144 DP=3 提升吞吐,但单请求不跨卡切分,每个副本独立承担 KV cache 128K、200K 单请求和 3 并发 64K-128K 优先,长上下文复杂工程不优先路由

估算依据:

  1. 122B 8 卡方案是 TP=4, DP=2,不是单请求使用 8 卡合并显存;单个长上下文请求只占用其中一个 TP=4 副本。
  2. 27B 的 DP=3 提升的是副本数和吞吐,不会让单个请求跨 3 张卡共享 KV cache。
  3. 当前启动命令没有显式设置 --kv-cache-dtype fp8,按 vLLM 默认 auto 口径应以实际加载日志和显存曲线为准。若后续启用 FP8 KV cache,KV 占用可能下降,但需要验证稳定性和效果。
  4. 超过 262K 需要修改 RoPE/YaRN 配置并提高 --max-model-len,不是只改显存即可上线。

6.2 并发建议

当前部署可以按三种口径理解并发:

口径 计算方式 当前结论 适用说明
vLLM 配置理论上限 各实例 max-num-seqs 叠加,DP 按 rank 叠加 48 只表示调度器允许的最大序列数
Hermes 交互合理预估 122B 8 卡 TP=4/DP=2 为 8,122B 4 卡为 4,27B 为 12 24 适合日常多人交互、工具调用和短中上下文
长上下文工程上限 122B 8 卡 TP=4/DP=2 为 2,122B 4 卡为 1,27B 为 3 6 适合 100K-262K 上下文、代码审查、仓库分析

按当前实例拆分:

实例 配置并发上限 Hermes 推荐并发 长上下文推荐并发
122B 主力 <主力节点A>:8000 16 8 2
122B 备用 <备用节点B>:8000 8 4 1
27B 轻量 <轻量节点B>:13001 24 12 3
合计 48 24 6

按任务类型建议:

使用模式 推荐模型 并发建议 说明
复杂工程规划 122B 8 卡 TP=4/DP=2 优先 8 上下文中等、工具多、推理复杂
代码审查 / 多文件分析 122B 8 卡优先 6 关注 KV cache 与响应时间
普通问答 27B 或 122B 30 短上下文可提高并发
批量摘要 / 分类 27B 12 适合 DP=3 服务
262K 极限上下文 122B 1 单独队列,避免拖垮交互任务

如果要对外承诺容量,建议不要把 48 个配置并发序列直接承诺为复杂工程智能体并发。更稳妥的口径是:

  1. 短上下文普通问答:可按 30 并发压测目标设计。
  2. Hermes 工程智能体交互:建议按 24 并发压测目标设计。
  3. 100K 以上长上下文工程任务:建议按 6 并发压测目标设计。
  4. 262K 极限上下文任务:建议按 1 并发专用队列设计。

6.3 参数调优优先级

当出现 OOM、延迟过高或排队明显时,按以下顺序调整:

  1. 降低 --max-num-seqs
  2. 降低 --max-num-batched-tokens
  3. 为长上下文任务单独部署一个低并发实例。
  4. 降低非主力模型的 --max-model-len
  5. 将复杂工程任务固定路由到 122B 8 卡服务。

七、监控与运维

7.1 启动后检查

bash 复制代码
ss -lntp | grep -E '8000|13001'
tail -f vllm-qwen3.5-122b-fp8-hermes.log
tail -f vllm-qwen3.6-27b-fp8-hermes.log
nvidia-smi

7.2 健康检查

bash 复制代码
curl http://<主力节点A>:8000/v1/models \
  -H "Authorization: Bearer $VLLM_API_KEY"

curl http://<备用节点B>:8000/v1/models \
  -H "Authorization: Bearer $VLLM_API_KEY"

curl http://<轻量节点B>:13001/v1/models \
  -H "Authorization: Bearer $VLLM_API_KEY"

7.3 日志关注项

现象 可能原因 处理
finish_reason=length max_tokens 太小或输出被截断 提高 max_tokens 并复核请求上下文长度
工具调用没有返回 未启用 tool parser 或请求未带 tools 检查 --tool-call-parser qwen3_xml 与请求体
长上下文 OOM KV cache 压力过高 降并发、降 batched tokens、拆长上下文实例
本机地址不通 Hermes 与 vLLM 不在同机 改用内网地址或服务地址

八、验收计划

8.1 接口验收

项目 验收标准
/v1/models 返回 200,模型名正确,max_model_len=262144
基础聊天 返回 200,message.content 非空
流式输出 返回 SSE chunk,客户端可增量渲染
工具调用 返回 finish_reason=tool_calls 和合法 JSON arguments
工具闭环 传入 role=tool 后能生成最终回答
长上下文 100K 字符烟测通过,128K/200K/262K token 分级压测通过

8.2 Hermes 业务验收

场景 推荐模型 验收标准
读取工程文件并解释 122B 正确发起文件工具调用,并基于工具结果回答
多步工程定位 122B 能连续调用搜索、读取、测试工具
修复建议生成 122B 输出可执行修改建议,不丢失约束
简单摘要 27B 输出稳定,成本低,延迟可接受
长上下文代码审查 122B 不截断关键文件,回答引用上下文准确

九、风险与应对

风险 影响 应对
262K 上下文并发过高 GPU OOM 或请求排队 长上下文单独队列,降低 max-num-seqs
API Key 泄露 模型服务被滥用 轮换密钥、限制来源 IP、最小化端口暴露
122B 4 卡方案不稳定 长上下文和并发能力不足 生产主力使用 8 卡方案
27B 被误用为复杂工程主模型 工具规划质量和深度不足 通过路由策略限定 27B 任务类型
服务地址访问抖动 Hermes 调用失败 优先使用内网地址或本机回环,配置重试和备用节点

十、推荐落地步骤

  1. 生产主力使用 <主力节点A>:8000 或内网等价地址部署 qwen3.5-122b-a10b-fp8
  2. <备用节点B>:8000 配置为 122B 备用节点,必要时接入负载均衡。
  3. <轻量节点B>:13001 配置为轻量模型节点,用于摘要、分类和低复杂度任务。
  4. 对复杂工程任务固定路由到 122B;对批量轻任务路由到 27B。
  5. 完成 100K、200K、262K 三档上下文压测,并记录并发、显存、吞吐和失败率。
  6. 上线前轮换 API Key,配置端口白名单、日志留存、健康检查和重启策略。

十一、最终推荐

Hermes 智能体主模型推荐:

text 复制代码
Base URL: http://<主力节点A>:8000/v1
Model: qwen3.5-122b-a10b-fp8
Context length: 262144

Hermes 轻量模型推荐:

text 复制代码
Base URL: http://<轻量节点B>:13001/v1
Model: qwen3.6-27b-fp8
Context length: 262144

该部署组合可以支撑 Hermes 的复杂工程智能体调用;其中 122B 负责高复杂度、多工具、长上下文任务,27B 负责轻量、批量和备用场景。上线前重点补齐备用 122B 的工具闭环与长上下文复测、262K 极限上下文压测和并发压测。

相关推荐
这是谁的博客?3 小时前
LangChain 框架深度解析:从 LCEL 到 Agent 架构的核心原理
ai·架构·langchain·llm·agent·架构设计
zhojiew4 小时前
在Ray集群中使用vLLM部署LLM模型并集成Prometheus和Grafana进行指标观测的实践
grafana·prometheus·vllm
一个处女座的程序猿4 小时前
Agent之Hermes:Hermes Agent的简介、安装和使用方法、案例应用之详细攻略
agent·hermes
AINative软件工程4 小时前
AI Agent 记忆体系建设实战:短期、长期与工作记忆的工程实现
llm
用户467245132235 小时前
部署大模型或者RAGFlow出现:openaipublic.blob.core.windows.net port=443
llm
sg_knight8 小时前
Claude Cowork、ChatGPT、Claude 聊天、Copilot,到底怎么选
chatgpt·llm·copilot·agent·claude·code·claude-code
不吃天鹅肉9 小时前
PaddleOCR-VL + vLLM 高性能推理实践:踩坑与调优全记录
人工智能·语言模型·svm·vllm
文文鑫10 小时前
基于Hermes Agent+Gemma大模型实现企业级Text2SQL Skill的落地
大数据·ai·skill·hermes
无心水10 小时前
【Harness:核心原理】7、反馈层(Feedback):给 AI 装上“后视镜”,越用越聪明的核心秘密
网络·人工智能·openclaw·harness·hermes·honcho