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 未能完全匹配