搜索你想找的开源项目

输入名称、用途或关键词,也可粘贴 GitHub 仓库链接

分享到微信

当前解读页的微信分享二维码

用微信扫一扫打开,点击右上角「···」分享给朋友或朋友圈。

手机上可截屏后,在微信扫一扫中从相册识别二维码。

StargazerX0/SpecPilot

机器学习

面向投机解码的系统优化引擎,包含六种 GPU 部署配置,以及启动、基准测试和验证脚本。

156
9
Python
Apache-2.0
创建于 4 天前

项目介绍

SpecPilot 关注的是投机解码中一个实际问题:已发布的 drafter 系统仍有一大部分加速空间没有用上,而最优的优化方式因部署而异。项目把它描述为一个智能体式优化循环——成本模型定位当前系统与理论上限之间的最大差距,并行智能体探索并整合有效方向,kernel 子智能体调优离内存带宽上限最远的 kernel,token forcing 则逐一校验输出 token 与 stock 系统是否一致。

仓库实际交付的是为六种部署搜索出的引擎,以及配套的启动、基准测试和验证脚本。六种配置覆盖 Qwen3.8-27B 和 Muse-Glimmer-30B,搭配 DFlash2 或 DSpark drafter,运行在 H100 80GB 与 RTX PRO 6000 Blackwell 上,其中包括三组 FP8 Qwen 的批量配置。README 声称每个 final 引擎都是无损的:解码为贪心,每个 token 都由目标模型决定。单请求配置的主要机制是 W12,一种 12 位权重格式,在 GEMM 内部按位精确解码,据称能让普通 BF16 解码在 batch 1–32 下加速 1.15–1.26×。

快速使用

文档流程要求具备所列 GPU 之一(H100 sm_90 或 RTX PRO 6000 sm_120)、Python 3.11 与 torch 2.13 + CUDA 13.0,并需要编译 CUDA/Triton kernel。在全新克隆后执行:

# 1. 准备环境(每台机器一次)
bash scripts/setup_env.sh

# 2. 下载某一种配置的检查点
bash scripts/download_models.sh h100_c1_qwen38-27b_dflash2

# 3. 在 GPU 0、30000 端口启动 SpecPilot final
bash scripts/serve.sh h100_c1_qwen38-27b_dflash2 final 0

# 4. 跑基准测试,然后停止服务
bash scripts/bench.sh h100_c1_qwen38-27b_dflash2 final-1 0
bash scripts/stop.sh 30000

对 stock 和 ar 重复第 3–4 步,然后在 bench 目录中比较:

cd ~/specpilot_data/work/bench
python3 ~/SpecPilot/scripts/compare.py speed --ar ar-1.json --stock stock-1.json --final final-1.json
python3 ~/SpecPilot/scripts/score.py final-1.json stock-1.json

配置名就是 settings/ 下的目录名。数据默认放在 ~/specpilot_data(可用 SPECPILOT_DATA 覆盖):shared/ 存放虚拟环境、检查点和缓存,work/ 存放组装好的引擎、日志和结果。服务通过 127.0.0.1:<port> 暴露 SGLang HTTP 和 OpenAI 兼容 API。首次启动会把 CUDA、Triton 和 DeepGEMM kernel 编译进共享缓存;README 提醒,新装环境首次测量在 16 请求的批量场景会慢 10–15%,所以正式测量前要先跑一次预热。

结果与验证

在 H100 单请求配置上,报告的 SpecPilot/stock 加速为 2.24×(Qwen + DFlash2)和 2.52×(Qwen + DSpark);四种 H100 配置已从全新克隆复现,并给出 95% bootstrap 置信区间,如 2.25× [2.18, 2.32] 和 2.52× [2.46, 2.58]。批量配置约为 stock 的 1.9–2.0×。基准分数明确只是健全性检查,不是准确率评测:批量场景很多答案在 2048 token 处被截断,且 stock 自身两次运行之间也会有 2 分波动。

scripts/bench.sh 运行 dev 切分(gsm8k、humaneval、math500、mbpp、mt-bench)的首轮,贪心解码,生成 2048 个新 token;scripts/compare.py speed 报告加速比和输出一致性;scripts/score.py 用 \boxed{} 提取答案并在沙箱子进程中执行代码评分。任何投机解码器的输出都不会与自回归解码逐位相同,因此验收依赖逐 token 校验,确认每个提交的 token 都是目标模型在该位置自己的选择。

使用约束

  • 每种配置需要一处所列型号的 GPU。RTX PRO 6000 的 kernel 只针对 sm_120a 构建;H100 final 也只在 H100 上测过。
  • torch 2.13 + CUDA 13.0 需要 R580 驱动;旧驱动由 setup_env.sh 安装 NVIDIA 前向兼容 libcuda。
  • 所有检查点都在 Hugging Face 上公开并锁定 revision,download_models.sh 下载的正是这些版本。
  • Muse 的 chat template 会把当前日期写进系统提示,同一组对比实验必须在同一个 UTC 日内完成。
  • 构建方式是裁剪到实际使用路径的 stock SGLang(python/)叠加各配置自己的文件;scripts/build_engine.py 负责组装并输出内容哈希。
  • 许可证为 Apache-2.0;python/ 源自 SGLang。

HotRepo 点评

在 Python 新项目榜记录的约 18 小时窗口内,该项目新增 48 个 Star,截至 2026-11-05 13:45 UTC 累计 151 Star、9 Fork,没有记录到全语言日榜名次。观察窗口短、增长快,但这个项目给出的内容相当具体:六种具名部署、锁定版本的检查点、逐配置的机制说明、可复现脚本和置信区间,而不是单一宣传数字。W12、逐 token 无损校验和可复现的基准工具让读者能在本地复测;主要限制是环境严格绑定 H100 80GB 和 RTX PRO 6000,宣称的约 2× 加速在其他硬件上难以评估。

本文由 AI 根据项目 README 生成,更新于 ,以项目官方文档为准。