开源三值LLM引擎:基于Rust/CUDA,用于消费级GPU上的模型量化、服务与训练,名为Tritium(Apache 2.0)

Reddit r/LocalLLaMA 工具

摘要

介绍Tritium,一个开源的Rust/CUDA引擎,用于在消费级GPU上对LLM进行三值(1.58位)量化、服务与训练。它声称在三值模型上推理速度比llama.cpp更快,并引入了一种名为SALT的新量化方法。

这篇文章不是由clanker写的。嘿,各位,我是一名计算机科学专业的学生,想介绍一个我构建的很酷的项目,用于将模型量化为三值(1.58位),并尽可能减少损失。这个过程可以使VRAM使用量减少10倍以上,并带来更快的推理速度、更少的磁盘占用等。需要说明的是,在目前阶段,VRAM的实际减少通常远低于10倍。(因ADHD致歉)作为参考,我们目前能做到的效果是:BitNet 2B4T 仅占用 1.71 GiB,比 fp16 小 7.5 倍,推理速度显著更快,并支持可选的 KV 缓存压缩。我计划发布 Tritium Stable v1.1,其中包含 Qwen 3.6 27B 的三值权重,可将VRAM使用量降至 8-12 GB,同时保持良好的上下文窗口和性能。欢迎探索代码,并使用 Tritium 推理引擎为你的三值模型设计自己的应用。 Tritium 历史 Tritium 取自 Trit,代表三值比特(ternary bit),而且 tritium(氚)听起来很酷,也寓意着我其他所有项目的一种融合。我现在发布这个项目,因为它已经开发了好几个月。但就在今天,7月30日,llama.cpp 终于合并了对 Q2_0 CUDA 的支持。我打算将其作为一个持续的基础设施项目,亲自使用并维护。我也打算发布我的代码,给它一个崭露头角的机会。截至今天早上的基准测试,与 llama.cpp 相比,我们在带宽归一化后仍然更快(有效带宽 474 vs 352 GiB/s)。我最初想开发这个项目的原因,是因为我创办了自己的公司,正在 MCU 硬件上运行三值模型进行信号压缩,因此我想要一种更好的方式来训练和量化三值模型,并将其嵌入固件中。遗憾的是我没有更早发布,因为这在两个月前肯定会引起更多关注。 如果有人不信,请直接说我撒谎,并用证据来反驳。上面每个数字旁边都有对应的确切命令,见 docs/BENCHMARKS.md。 概述 - 显然,它能运行推理,这是它的主要用途。通过优化权重流、基于 int8 张量核心(IMMA)内核的优化预填充(12.3K tok/s)等方法,BitNet 2B4T 在单张 RTX 4090 上的解码速度可达 280-300 tok/s,所有运行结果与标量参考逐位一致。支持在 CUDA 上运行,我自己测试过;同时支持 Metal、ROCm、Vulkan/wgpu 和 wasm,目前通过租用的云硬件进行了测试。 量化 - 我开发了一种名为 SALT 的量化算法,其想法很简单:如果 QAT(量化感知训练)无法将误差降低到与 FP16 相同的水平,就干脆添加三值权重。这花了大约两个月的研究、测试和开发,但我最终开发出了一种方法论,我称之为“灵敏度分配的分层三值化”(Sensitivity Allocated, Layered Ternarization),从技术上讲,它几乎可以将任何模型量化为精度越来越低的权重。如果你想要更深入的了解,请阅读我的白皮书。 训练 - 一种我称之为 SALT-aware training 的新 QAT 方法。不同于用通用 STE 或 fp32 掩码来训练三值模型,这里会将权重三值化,并让这些三值权重的输出直接运行在 Tritium 上。基本上,训练循环会通过引擎运行推理时所用的同一套 SALT 平面进行量化,因此训练和部署看到的是完全相同的权重。与 PyTorch 完全兼容。我们在仓库中提供了带有完整证据的蒸馏三值模型。白皮书及参考实现即将发布。Tritium 1.1.0 Stable 的发布阻碍在于,能否将 Qwen 3.6 27B 转换为三值模型,同时满足:与 bf16 相比,保留集困惑度相对增加低于 1.0%,六个任务的平均准确率下降不超过 0.5 个百分点,且没有任何单个任务的准确率下降超过 1.0 个百分点(与 bf16 相比)。任何拥有相应硬件的人都可以帮助我,因为所需的 GPU 算力比一次完整训练便宜得多。 服务 - 兼容 OpenAI 的服务器,支持连续批处理、分页 KV 和无损投机解码,构建在 BASTION(arXiv:2605.29727)投机解码框架之上。我也在为此开发一层服务层,但承诺与几乎所有其他软件、三值权重格式互操作,并支持完整导出。 如何使用 我会在这里和评论区提供仓库链接。Crates.io 版本也即将发布。现在也很晚了,我会在早上回复。-Blam LLM 使用披露:我设计了 API 接口,研究了 PTQ 方法的现代 SOTA,设计了自己的 PTQ(SALT),并以学术诚信和适当引用的方式整理了所有结果。所有借助 LLM 编写的代码都经过了严格测试,并在基于 Arch 的 Linux 系统以及受支持的硬件上验证。使用 LLM 编写代码的范围很广,几乎涵盖了整个优化设置,以及为我收集可读研究资料的抓取过程。 编辑1:已更新标题。
查看原文

相似文章

CAT-Q: 用于LLM的高效且准确的三值量化

arXiv cs.CL

CAT-Q 提出了一种面向LLM的训练后三值量化方法,该方法使用可学习调制和软化三值化技术,仅需512个校准样本即可实现优于BitNet 1.58-bit的性能,并可扩展到235B参数规模。

ggml-org/llama.cpp

GitHub Trending (daily)

llama.cpp 是一个开源 C/C++ 库,用于在本地硬件上高效运行 LLM 推理,支持多种量化方法和多后端(CPU、GPU 等)。