海域重启礼包码汇总 海域重启最新可用兑换码分享
2026-07-21
2026-07-21 0
| 项目 | 信息 |
|---|---|
| 项目名 | kvcache-ai/ktransformers |
| 一句话定位 | 用 CPU、GPU 与系统内存协同承载超大 MoE 模型的推理及 LoRA 微调 |
| Stars / Forks | 18,516 / 1,459 |
| Open Issues | 462 |
| Watchers | 120 |
| 主语言 | Python 57.1%、C++ 34.1%、CUDA 4.9% |
| License | Apache-2.0 |
| 最新正式 Release | v0.6.3(2026-06-21) |
| main 源码版本 | 0.6.3.post1 |
| 最新核验提交 | d1a3ed8a308c,2026-07-19,K2 RAWINT4 prefill 优化 |
| 创建时间 | 2024-07-26 |
| 项目主页 | ktransformers 文档站 |
在今日 19 个候选项目里,榜首 ai-agent-book 是内容完整、实践丰富的 Agent 教材,第二名 code-review-graph 也有明确的本地代码图谱价值;但若按“创新性、系统深度、实际成本收益”排序,KTransformers 更值得做深度拆解。它不是又一层 LLM API 包装,而是把问题推进到 CPU 指令集、NUMA 内存、MoE 路由、量化权重和服务调度这一层。

超大 MoE 模型的参数总量很大,但每个 token 只激活少数专家。传统部署常把“模型很大”直接等同于“必须全部塞进昂贵 GPU”,KTransformers 抓住了二者之间的结构性空隙:注意力、共享层和热点专家留在 GPU,冷专家下沉到容量更大但带宽更低的 CPU 内存,再用异步执行和动态专家放置减少慢路径的影响。
这套思路真正有价值的地方,不只是“能跑起来”,而是把硬件异构做成可调系统:CPU 后端可以选择 AMX、AVX512、AVX2、Llamafile/GGUF 等路径;GPU 端可以保留指定比例的专家;多路 CPU 内存通过 NUMA 感知线程池减少跨节点访问;SGLang 负责请求调度和 OpenAI 兼容服务。用户得到的不是单一模型 Demo,而是一组可以围绕显存、内存、延迟、吞吐与精度做权衡的工程旋钮。
项目也已从早期一体化框架收敛为两个更清楚的入口:kt-kernel 推理与 KTransformers × LLaMA-Factory SFT。原先的集成代码被移入 archive/,当前主线更强调内核、SGLang 集成、CLI 和微调后端。这一变化降低了认知负担,但也意味着旧教程与当前主线不能混用,部署时应优先看 kt-kernel/README.md 和 0.6.x 文档。
KTransformers 不要求专家只能整层放在某一种设备上。启动时可以按 uniform、frequency、front-loading 或 random 选择 GPU 专家;长提示词 prefill 阶段还可收集真实路由统计并动态重排热点专家。
复制代码python -m sglang.launch_server
--model /data/Qwen3-30B-A3B
--kt-method AMXINT8
--kt-weight-path /data/Qwen3-30B-A3B-INT8
--kt-cpuinfer 64
--kt-threadpool-count 2
--kt-num-gpu-experts 32
--kt-expert-placement-strategy frequency
--kt-enable-dynamic-expert-update
--kt-gpu-prefill-token-threshold 512
核心不是简单 offload,而是让不同设备承担最适合自己的部分:GPU 处理高复用、高并行路径;CPU 用大容量内存保存大量低频专家;路由统计则负责缩短热点 token 的 CPU 往返。
PyPI wheel 声称会在运行时检测 CPU,并从六类变体中选择:AMX、AVX512+BF16、AVX512+VBMI、AVX512+VNNI、基础 AVX512 和 AVX2。源码中的 KTMoEWrapper 进一步把推理方法映射到不同实现:
| 方法 | 主要实现 | 适合场景 |
|---|---|---|
AMXINT4 / AMXINT8 | AMXMoEWrapper | Sapphire Rapids 等支持 AMX 的 Intel 服务器 |
RAWINT4 / FP8 / BF16 / MXFP4 / MXFP8 | NativeMoEWrapper | 原生精度或新型低精度 MoE 权重 |
GPTQ_INT4 / SYCL_GPTQ_INT4 | Native / SYCL 路径 | GPTQ 权重与 Intel iGPU 实验路径 |
LLAMAFILE | LlamafileMoEWrapper | AVX2 起步、直接读取 GGUF 权重 |
MOE_INT4 / MOE_INT8 | GeneralMoEWrapper | 通用量化 MoE 内核 |
这也是它比“把权重放到 RAM”更深的一层:性能瓶颈最终落在矩阵乘、反量化、激活融合、内存布局和线程绑定,而这些都需要 C++/CUDA/SYCL 内核配合。
多路服务器里,CPU 核访问远端 NUMA 节点内存的成本不可忽略。项目建议 --kt-cpuinfer 使用物理核心数,而不是超线程数;--kt-threadpool-count 则对应 NUMA 节点数。权重和线程池按内存域组织,尽量让计算靠近数据。
另一个旋钮 --kt-max-deferred-experts-per-token 允许把少量专家延后,使 CPU 处理下一批工作时 GPU 继续执行当前任务。它能降低同步等待,但 README 明确提示:设置过大可能造成可见精度损失,因此这不是“免费加速”,而是延迟与质量之间的显式交换。
项目同时支持 INT4、INT8、BF16、FP8、FP8 per-channel、GPTQ INT4、MXFP4、MXFP8 与 GGUF 多种路径。AMX 后端通常需要先把 CPU 专家权重转换成适合矩阵指令的布局:
复制代码python kt-kernel/scripts/convert_cpu_weights.py
--input-path /data/Qwen3-30B-A3B
--input-type bf16
--output /data/Qwen3-30B-A3B-INT8
--quant-method int8
README 特别警告,AMXINT4 在部分模型上可能带来明显精度下降。生产环境不能只看 tokens/s,应针对自己的模型、任务和提示长度做质量回归。
在微调侧,KTransformers 接入 LLaMA-Factory,通过 LoRA、FSDP2 和 CPU/GPU 混合后端降低超大 MoE 的显存压力。官方 README 给出的仓库基准包括:
| 模型 | GPU 总显存 | 仓库报告速度 | 硬件 |
|---|---|---|---|
| DeepSeek-V3 | 约 80GB | 3.7 it/s | 4× RTX 4090 |
| DeepSeek-R1 | 约 80GB | 3.7 it/s | 4× RTX 4090 |
| Qwen3-30B-A3B | 约 24GB | 8+ it/s | 1× RTX 4090 |
仓库同时宣称,在其 MoE SFT 测试配置中相对 ZeRO-Offload 有 6–12 倍训练加速、CPU 内存约为旧 KT SFT 路径的一半。这里必须强调:这些是项目方基准,硬件、模型、量化、上下文长度和 batch size 都会影响结果,本文未独立复跑。
复制代码用户 / OpenAI 兼容客户端
│
▼
SGLang-KT 请求调度层
├─ continuous batching / KV Cache
├─ Attention、共享层、GPU 专家
└─ MoE router:为每个 token 选择 Top-K 专家
│
▼
KTransformers Python 适配层
├─ KTMoEWrapper:校验 mode / method
├─ 专家掩码与动态放置
├─ buffer 预分配与异步 submit/sync
└─ SFT:LoRA / LLaMA-Factory 适配
│
▼
kt-kernel 原生执行层
├─ AMX INT4/INT8
├─ AVX512 / AVX2:BF16、FP8、RAWINT4、MXFP4/8
├─ Llamafile / GGUF
├─ CUDA GPTQ / Marlin 与 Top-K softmax
└─ SYCL GPTQ_INT4(Intel iGPU 路径)
│
▼
NUMA 感知线程池 + CPU DRAM + GPU VRAM
submit_forward 与 sync_forward 允许 CPU、GPU 工作重叠;最终按路由权重聚合专家输出。MoE 路由通常并不均匀,不同任务和上下文会形成热点专家。如果 GPU 只容纳 10% 专家,随机或均匀放置很容易让热门专家留在 CPU;动态策略在 prefill 中观察实际分布,再把高频专家迁移到 GPU。仓库在 Qwen3-Next-80B-A3B-Instruct-FP8、4×RTX 4090、Xeon Gold 6454S、ShareGPT、TP=4 上报告:
| GPU 专家比例 | random | frequency | dynamic update | 动态相对 random |
|---|---|---|---|---|
| 10% | 56.63 tok/s | 58.60 tok/s | 70.22 tok/s | +24.0% |
| 20% | 58.75 tok/s | 61.92 tok/s | 74.73 tok/s | +27.2% |
| 40% | 66.81 tok/s | 72.78 tok/s | 80.98 tok/s | +21.2% |
| 70% | 74.40 tok/s | 89.37 tok/s | 88.70 tok/s | +19.2% |
| 100% | 112.61 tok/s | 114.26 tok/s | 112.99 tok/s | +0.3% |
这组结果揭示了策略边界:**GPU 容量越紧张,放对专家越重要;当全部专家都在 GPU 时,放置策略自然失去意义。**此外,动态方案在 80%–100% 区间并不总是优于 frequency,说明迁移和统计也有成本。
项目首页还给出 DeepSeek-R1-0528 FP8 在 8×L20 + Xeon Gold 6454S 上的 227.85 tok/s 总吞吐、87.58 tok/s 输出吞吐(8 并发)。两组数据的模型、硬件和指标都不同,不能直接横向比较,也不能据此推算单请求延迟。
对 2026-07-19 的浅克隆进行静态盘点,排除 third_party/ 与 archive/ 后,仓库约包含:
| 类型 | 文件数 | 行数(文本统计) |
|---|---|---|
| Python | 164 | 57,059 |
| C++ | 43 | 23,644 |
| C/C++ Header | 74 | 37,856 |
| CUDA | 5 | 3,445 |
| Markdown | 85 | 14,017 |
| Shell / CMake | 11 | 4,047 |
文件名或路径含 test 的文件有 177 个,Markdown 文档 86 个。静态执行 python3 -m compileall -q kt-kernel/python 已通过;但由于报告环境没有对应的 Linux x86-64、CUDA、AMX/AVX512 服务器和完整模型权重,本文没有编译原生扩展,也没有复跑官方吞吐数据。换言之,源码结构与 Python 语法已核验,硬件性能仍以仓库披露为准。
README 将主线能力收敛为两部分:
kt CLI 和 SGLang-KT 集成。旧的一体化 KTransformers 代码仍在 archive/ 中供参考,但不应被当成当前推荐入口。最新正式 Release 是 v0.6.3,而 main 的 version.py 已是 0.6.3.post1,部署时要区分 Release、源码和 PyPI 实际解析出的版本。
kt-kernel wheel 的 README 支持范围是 Python 3.10–3.12、Linux x86-64、最低 AVX2。sglang-kt,不是官方 sglang 包;这是重要的依赖边界。2026 年 7 月的近期提交包括 K2 RAWINT4 prefill 优化、AVX-VNNI-256 权重加载修复、调度器 ZMQ 仅绑定 loopback 的安全修复,以及 Intel iGPU 的 SYCL 后端。这表明项目仍在同时推进性能、硬件覆盖与服务安全,而非只维护模型兼容列表。
推荐环境是 Linux x86-64、Python 3.11、AVX2 以上 CPU;要启用 CUDA 则需 Ampere 或更新架构。先安装并检查:
复制代码python3.11 -m venv .venv
source .venv/bin/activate
python -m pip install -U pip
pip install kt-kernel sglang-ktkt version
kt doctor
项目的新 CLI 会检测硬件并选择配置。模型别名是否可用取决于当前模型注册表和本地资源:
复制代码# 启动模型服务;首次运行可能需要下载大量权重
kt run m2# 新终端中连接服务
kt chat
如果目标是可控的生产配置,应改用 SGLang 显式参数,而不是只依赖自动调优。
复制代码# 1. 下载原始权重
huggingface-cli download Qwen/Qwen3-30B-A3B
--local-dir /data/Qwen3-30B-A3B# 2. AMX 服务器把 CPU 专家转为 INT8
python kt-kernel/scripts/convert_cpu_weights.py
--input-path /data/Qwen3-30B-A3B
--input-type bf16
--output /data/Qwen3-30B-A3B-INT8
--quant-method int8# 3. 启动 OpenAI 兼容服务
python -m sglang.launch_server
--host 127.0.0.1
--port 8000
--model /data/Qwen3-30B-A3B
--served-model-name Qwen3-30B-A3B
--kt-method AMXINT8
--kt-weight-path /data/Qwen3-30B-A3B-INT8
--kt-cpuinfer 64
--kt-threadpool-count 2
--kt-num-gpu-experts 32
--kt-max-deferred-experts-per-token 2
调用接口:
复制代码curl
-H 'Content-Type: application/json'
-d '{
"model": "Qwen3-30B-A3B",
"messages": [{"role": "user", "content": "解释 MoE 专家路由"}],
"stream": false
}'
部署前应依次确认:物理核心数、NUMA 节点数、可用 DRAM、GPU 架构、权重格式和模型质量回归。尤其不要照抄 64 核、2 个线程池或 32 个 GPU 专家;这些参数必须按机器拓扑与显存实测调整。
| 指标 | 数值 | 解读 |
|---|---|---|
| Stars | 18,516 | 在底层推理项目中已形成较强关注度 |
| Forks | 1,459 | Fork / Star 约 7.9%,存在真实部署与二次开发需求 |
| Open Issues | 462 | 每千 Star 约 25 个开放 Issue;活跃但也说明硬件兼容面复杂 |
| Watchers | 120 | 持续订阅项目动态的人数不低 |
| Top Contributor | Atream,245 次贡献 | 核心维护者投入显著 |
| 前十贡献者合计 | 946 次贡献 | 不是单一作者的一次性 Demo |
| 最新正式版 | v0.6.3,2026-06-21 | 0.6.x 仍保持较快迭代 |
| 近期提交 | 2026-07-19 | Trending 前一天仍有性能与兼容性改动 |
仓库从 2024-07-26 创建到快照日约 723.7 天,生命周期平均约 25.6 Stars/天。这只能作为长期基线,不能代表今日增长速度。任务快照没有保存“今日新增 Stars”,所以今日增量标记为不可得,也不把 Trending 第 3 名误写成某个虚构涨幅。
从发布节奏看,v0.6.1、v0.6.2、v0.6.3 在 2026 年 4 月末到 6 月下旬连续发布;从提交内容看,7 月仍有 RAWINT4、AVX-VNNI、SYCL 和网络绑定安全修复。它的热度更像“新模型支持 + 内核持续演进”共同推动,而不是单次营销峰值。
| # | 仓库 | Stars | 主语言 | 简要观察 |
|---|---|---|---|---|
| 1 | bojieli/ai-agent-book | 7,850 | Python | AI Agent 全书与十章配套实验 |
| 2 | tirth8205/code-review-graph | 21,934 | Python | 本地优先代码知识图谱与 MCP |
| 3 | kvcache-ai/ktransformers | 18,516 | Python | CPU-GPU 异构 MoE 推理与微调 |
| 4 | rohitg00/ai-engineering-from-scratch | 39,993 | Python | AI 工程课程型仓库 |
| 5 | jamiepine/voicebox | 43,660 | TypeScript | 本地 AI 语音工作室 |
| 6 | KnockOutEZ/wigolo | 2,107 | TypeScript | 本地 Agent 搜索、抓取与研究 MCP |
| 7 | andrewrabert/jellium-desktop | 1,351 | Rust | 非官方 Jellyfin 桌面客户端 |
| 8 | github/copilot-sdk | 10,007 | Java | 将 Copilot Agent 嵌入应用与服务 |
| 9 | PostHog/posthog | 37,034 | Python | 产品分析、可观测性与自动修复平台 |
| 10 | microsoft/terminal | 104,260 | C++ | Windows Terminal 与 Console Host |
| 11 | AstrBotDevs/AstrBot | 36,818 | Python | 多平台 Agent 助手与插件框架 |
| 12 | 1jehuang/jcode | 9,114 | Rust | Coding Agent Harness |
| 13 | trycua/cua | 20,304 | HTML | 跨系统 Computer-Use 驱动、集群与评测 |
| 14 | MoonshotAI/kimi-cli | 10,015 | Python | Kimi 命令行 Coding Agent |
| 15 | Flowseal/zapret-discord-youtube | 31,059 | Batchfile | Discord / YouTube 网络工具集合 |
| 16 | codecrafters-io/build-your-own-x | 529,139 | Markdown | 从零复刻技术系统的教程索引 |
| 17 | lyogavin/airllm | 23,749 | Jupyter Notebook | 以分层加载降低大模型显存门槛 |
| 18 | Canner/WrenAI | 16,346 | Python | 带治理语义层的 Text-to-SQL / GenBI |
| 19 | PKUFlyingPig/cs-self-learning | 74,315 | HTML | 计算机自学课程指南 |
| 场景 | 适合度 | 原因与注意事项 |
|---|---|---|
| 单机或少量消费 GPU 运行超大 MoE | 高 | 可把大量冷专家放入 CPU 内存,但通常仍需数百 GB RAM |
| 多路 Xeon / EPYC + 4090 工作站 | 很高 | 能利用 NUMA、AVX512/AMX 与 GPU 热专家调度 |
| 私有化 OpenAI 兼容推理服务 | 高 | SGLang 提供服务层,KT-Kernel 提供异构专家执行 |
| 超大 MoE 的 LoRA SFT | 高 | 与 LLaMA-Factory/FSDP2 集成,降低显存压力 |
| 只有 16–32GB 普通内存的个人电脑 | 低 | 节省的是显存,不会消除总权重与 KV Cache 的容量需求 |
| 追求极低单请求延迟 | 中 | CPU offload 受内存带宽限制,需大量调优且可能不如全 GPU |
| 密集模型而非 MoE | 中低 | 项目最核心的收益来自稀疏专家结构 |
| 老旧 GPU(V100/T4)直接装 wheel | 低 | README 明确不在当前 CUDA wheel 支持范围内 |
sglang-kt,SFT 还涉及 KTransformers 适配的 Transformers/Accelerate;升级上游组件前需做兼容验证。archive/、早期 balance-serve 文档、当前 kt-kernel 与 0.6.x SGLang-KT 路径并存,最好锁定 tag 和整套依赖版本。KTransformers 的核心价值不是“用 CPU 替代 GPU”,而是把超大 MoE 的稀疏性变成一个可工程化利用的资源调度问题:让 GPU 保存热点,让 CPU 提供容量,用量化内核、NUMA 局部性、异步流水线和 SGLang 调度弥合两者差距。
对有大内存工作站、消费级 GPU 集群或私有化 MoE 需求的团队,它提供了一条比全 GPU 更可负担的路径;对普通笔记本用户,它并不是魔法压缩器。最合理的评估方式是选定自己的模型与请求分布,先验证精度,再逐步测量 GPU 专家比例、NUMA 绑定、prefill 阈值和并发数,而不是直接照搬项目首页的峰值。
d1a3ed8a308cf45a2bdf8dc0ec18ea0cf782486c;性能数据均标记为仓库方披露,未冒充独立实测。