Devotd Github
新发现大语言模型基础设施

guqiong96/lsglang 1.7.2 — expert 缓存填充路径与验证默认值

guqiong96/lsglang 1.7.2 是一个发布提交,将 GPU expert 缓存填充路径拆分为两条,并开启了推测性验证的默认值。

仓库信息guqiong96/lsglang ↗

guqiong96/lsglang 1.7.2 是一个发布提交,将 GPU expert 缓存填充路径拆分为两条,并开启了推测性验证的默认值。

GitHub 项目说明: Lsglang is a special extension of sglang that fully utilizes CPU and GPU computing resources with an efficient GPU parallel + NUMA parallel architecture, suitable for MOE model hybrid inference.

星标
★ 147
复刻
17
语言
Python
许可证
Apache-2.0
最新版本
lsglang-v1.6.0
查看原始来源 ↗在 GitHub 查看 ↗

Lsglang 扩展了 SGLang,是一个同时使用 CPU 和 GPU 的 MoE(将处理拆分给多个 expert 的模型)混合推理服务器。2026 年 11 月 3 日的提交 2eee88c 的提交信息是 'Release 1.7.2',变更的文件有三个:README.md、RELEASE_NOTES.md、python/pyproject.toml(137 行变更,122 行新增,15 行删除)。

本次版本的核心是 GPU expert 缓存,也就是把填充“让常用 expert 常驻 GPU”这一部分的路径拆成两条。新的环境变量 LK_POOL_NO_STAGE 默认值 1 会把每个 NUMA 分片从 pinned 主机页直接 DMA 到 slot,从而消除主机拷贝。在 8 节点主机上,异步 DMA 拷贝大约发生 16 次。README 写明在同一个构建中,DeepSeek-V4-Flash-0731/DSPARK 的 expert 准入开销从 1.1 ms 降到 0.13 ms,gather 从 1669-2494 us 降到 0 us。如果给出 0,则改为运行现有的 coalesced staging ring,也就是 LK_POOL_STAGE。

更显眼的变化在推测性解码一侧。LK_VERIFY_RESIDENT 的默认值从 0 改为 1,draft 行直接沿用真实 token 建立的 expert residency。README 写明,在 DeepSeek-V4-Flash-0731/DSPARK 上相对纯 CPU 路径为 +17.6%,接受率不变。LK_POOL_MBOX_SPLIT 在唯一一行数据中为 7.43 ms/step 对 7.07-7.35 ms/step,无法分出哪一边更快,因此从配方中移除;LK_POWER_SAVING 也被更正为仅适用于空闲状态,在推理过程中不降低功耗。LK_POOL_LOG、LK_VERIFY_PUMP、LK_POOL_DET_SPLIT、LK_POOL_SPLIT_PROBE 被分离到仅调试用的章节。

不过,仅凭这些数字下结论还为时过早。所有数值都是 README 在某个特定构建上测得的,而在 DeepSeek-V4.1-Flash-1017 TP2/3090 上结论恰好相反。在该配置下,采用 per-fragment 默认值时解码中位数从 27.0 tok/s 降到 21.1 tok/s,而在 LK_POOL_NO_STAGE=0 时回到 26.0 tok/s。样本数也不一样,分别是 284 次和 11 次。因此 launch/sglang_serve_dsv41_*.sh 这三个配方固定为 0,其他地方则保留默认值 1。没有依据把它原样套用到其他模型和硬件上。