llama.cpp
分类: 高效推理与部署
llama.cpp
定义
由 Georgi Gerganov 开发的开源 LLM 推理框架,专注于 CPU 和边缘设备上的高效 LLM 推理,支持多种量化格式(QX_0、QX_K、TQ 系列等)
核心要点
提供 QX_0(如 Q4_0)和 QX_K 系列:bit-wise MAD-based 方法,通过多步去量化实现推理
提供 TQ 系列:针对三值模型的 element-wise MAD-based 方法
- TQ1_0:1.69 bpw,但性能慢于 2-bit 方案
- TQ2_0:2.06 bpw,使用 block 量化(与 BitNet b1.58 的 per-tensor 训练约束不一致,有精度损失)
广泛支持多种硬件(x86 AVX2、ARM NEON、Apple Metal 等)
代表工作
Bitnet.cpp: 在 llama.cpp 生态上开发,修正了 TQ2_0 的量化不一致问题,提出 I2_S 实现无损推理
相关概念
mpGEMM: llama.cpp 中各量化格式对应的矩阵乘实现
BitNet b1.58: llama.cpp TQ 系列的推理目标
QAT: BitNet b1.58 的训练范式,llama.cpp TQ2_0 未能完全匹配