开源(MIT)· v1.3.5
Agens Engine
我们为 Agens Volundr 打造的推理引擎。在 16 GiB 显存预算内,运行 Volundr 完整的 262K token 上下文。
- 兼容 OpenAI 的 API
- 262K 上下文
- 16 / 24 / 48 GB 配置
- 投机解码
- 图片输入
- 多 GPU
Volundr 的上下文窗口为 262K token。检索能力已验证至 107K token(大海捞针 100/100);完整 262K 窗口尚未在此版本上重新验证。
显存去向
围绕模型而设计,不是事后加装
Volundr 的 72 层之中,只有 18 层需要 KV cache,其余 54 层只保存固定大小的状态。引擎正是围绕这个结构设计:计算留在 GPU,查找表放在系统内存,长上下文的 KV 移到主机内存,而不是不断占用显存。预算由你设定,引擎绝不超出。
GPU
16 GiB 预算
- 计算权重(含输出层),混合 2/3/4-bit约 11 GB
- KDA 状态,54 层固定大小
- 18 层注意力的近期 KV、草稿模型预算之内
系统内存
262K 需 32 GB 以上
- 词嵌入表约 2.5 GB
- Engram n-gram 表约 4.3 GB
- 长上下文 KV(分层存放)最多约 24 GB
16 GB 版本,16gb 配置。数值为约数。
功能
专为一个模型,认真服务
兼容 OpenAI 的 API
/v1/chat/completions 与 /v1/completions。现有工具与智能体框架可直接接入。
混合 2/3/4-bit 权重
按层选择位宽,加载时重新打包,计算权重只需约 11 GB 显存。
KV cache 分层至主机内存
长上下文时,KV cache 移至锁页系统内存。下一轮对话直接沿用,不必重读整段历史。
投机解码
配套草稿模型加上模型自身的 MTP head,greedy 与采样请求均适用。输出不变,只影响速度。
图片输入
用同一个 API 发送图片。24 GB 与 48 GB 配置默认开启。
多 GPU
通过 --tp 2 或 --tp 4,在同一台机器的 2 或 4 张相同 GPU 上进行张量并行。
实测数据
16 GiB 预算下的表现
在一张 48 GB GPU(compute capability 8.9)上实测,由引擎的硬上限限制在 16 GiB 预算内,单一对话。并非在实体 16 GB 显卡上测得。
98–150
tok/s,greedy,短上下文,配草稿模型
67–93
tok/s,greedy,读完 219K token 文档后
108–155
tok/s,greedy,短上下文,草稿模型 + MTP
93–136
tok/s,采样(T 0.6),短上下文,草稿模型 + MTP
15.5 GiB
对话达 239K token 时的显存峰值
239K
单一对话 token 数,保持在 16 GiB 上限内
社区实测
社区贡献者 @mmssix 在 24 GB 显卡(compute capability 8.6)上,以 24gb 配置运行 16 GB 版本,单路,关闭思考,greedy:
Engine 1.1.0,草稿模型
对话 65.0 · 编程 52.9 · 推理 79.0 tok/s
Engine 1.3.0,草稿模型 + MTP
对话 70.7 · 编程 59.4 · 推理 93.5 tok/s
54K token 对话的下一轮
使用 session ID 5.7 秒,不使用 77 秒
规模另一端
Agens Engine 1.3.5,两张 141 GB GPU(compute capability 9.0),--tp 2,Volundr INT4,服务器模式,--gpu-gib 128 --max-batch 48 --max-convs 48 --vision 1,开启 --mtp 及 MTP head v1.1(Blockway/Agens-Volundr-32B-v1-MTP)。
~375
tok/s,greedy,单一请求,短提示(6K token 提示约 320,22K 约 327)
1,857
tok/s 总吞吐,48 个并发请求
0
48 个并发、各约 30K token 的智能体会话中失败的请求(首 token 中位数 1.1 秒)
1,329 / 1,620
tok/s 总吞吐,16 / 32 个并发请求,默认采样
~7,000
3 小时混合流量(对话、图片、文档、智能体会话)中的请求数,全部成功
0.49 秒
同一测试中短对话的首 token 时间中位数
快速开始
两条命令即可运行
先从 Hugging Face 或魔搭 ModelScope 下载模型与草稿模型,再按你的 GPU 选择配置启动服务器。
# 16 GB GPU: 262K context, one conversation, speculative decoding
scripts/agens-run.sh --profile 16gb --model /path/to/model --drafter /path/to/drafter
# the same with the MTP head as a second draft source (context ~237K)
scripts/agens-run.sh --profile 16gb --model /path/to/model --drafter /path/to/drafter --mtp /path/to/mtp
# then, from another shell
curl http://localhost:30000/v1/chat/completions -H 'Content-Type: application/json' \
-d '{"model": "agens", "messages": [{"role": "user", "content": "Hello!"}]}'或直接使用 Docker
docker run --gpus device=0 --ipc=host -p 30000:30000 \
-v /path/to/model:/model:ro -v /path/to/drafter:/drafter:ro \
ghcr.io/blockwayz/agens-engine:1.3.5 --profile 16gb --model /model --drafter /drafter配置
| 配置 | GPU 预算 | 上下文 | 模式 |
|---|---|---|---|
| 16gb | 16 GiB | 262K(开启图片时 225K) | 单一对话,图片默认关闭 |
| 24gb | 23 GiB | 262K | 服务器,最多 4 个并发请求 |
| 48gb | 46 GiB | 262K | 服务器,最多 16 个并发请求 |
任何配置均可加上 --mtp(16gb 上下文约 237K,实测 237,572)。使用 --tp 2 或 --tp 4 运行 2 或 4 张相同 GPU。
系统要求
你需要什么
操作系统
Linux,配备 Docker、NVIDIA container toolkit 及支持 CUDA 12.9 的驱动
显存
16 GB、24 GB 或 48 GB
预编译内核
compute capability 8.6、8.9、9.0 与 12.0。已验证:8.9 与 9.0(由我们验证),8.6(由社区贡献者验证)。12.0 已编译,但未经我们验证
系统内存
完整 262K 上下文需 32 GB 或以上
注意事项
- 目前只支持 Linux,暂不支持 Windows 与 macOS。Mac 用户可使用社区的 MLX 移植版 volundr-mlx(MIT),链接见我们的 README。
- Volundr 的上下文窗口为 262K token。检索能力已验证至 107K token(大海捞针 100/100);完整 262K 窗口尚未在此版本上重新验证。
- 16 GB 版本在长文档上开启思考模式时可能出现循环。处理长文档时,请关闭思考或改用 4-bit 版本。
- Agens Engine 专为 Agens Volundr 而设,并非通用推理服务器。
下一步
发展方向
- 支持 Windows,先从 WSL2 开始。
- 支持 12 GB GPU,开发中。
- 上游支持:Volundr 模型 PR 已提交至 SGLang(sgl-project/sglang#45093),另有两项 flashinfer 修复(#45091、#45092)。我们也承诺以多个小型 PR 将架构提交至 llama.cpp。
版本记录
1.3.5 · 10 月 23 日
长上下文高负载下不再导致进行中的请求失败;KV 池自动调整大小;长时间智能体会话的调度更公平
1.3.4 · 10 月 21 日
compute capability 9.0 上单路生成更快;服务器模式最多批处理 64 个请求
1.3.3 · 10 月 21 日
可复现的采样(单独或批量、有无投机解码结果一致);采样改在 GPU 上进行
1.3.2 · 10 月 21 日
前缀缓存;支持惩罚参数的投机解码;compute capability 9.0 上生成更快
1.3.0 · 10 月 19 日
MTP 可配合 --tp 及图片输入,适用所有配置;KV 可放入 GPU 时保留在 GPU
1.2.0 · 10 月 19 日
MTP 草稿(--mtp);多 GPU 张量并行(--tp 2/4)
1.1.0 · 10 月 18 日
图片输入;投机采样(temperature、top-k、top-p、min-p)
1.0.0 · 10 月 18 日
首个版本:16 GB 版本、262K 上下文、投机解码