K-Quantization 及其对输出性能的影响

arXiv cs.CL 论文

摘要

本文研究了不同量化级别(2位到8位)对八个大型语言模型在推理、代码理解和阅读理解任务上的性能影响,发现虽然更高精度通常带来更好的性能,但激进量化通常能保持可接受的准确率,且更大的模型展现出更强的韧性。

arXiv:2605.19645v1 公告类型:新 摘要:大型语言模型(LLM)的最新进展展示了其在许多自然语言处理任务中的卓越能力。然而,它们庞大的规模往往给部署带来挑战。这需要高效的模型压缩技术,量化成为突出的解决方案。尽管有其优势,量化(从2位到6位)对LLM性能和准确性的确切影响仍是一个活跃的研究领域。本文研究了八个LLM在不同量化级别下的性能,重点关注诸如MMLU-Pro(用于知识处理和推理)、CRUXEval(用于代码理解)和MuSR(用于阅读理解)等任务。我们的结果显示出一致的趋势:更高精度(例如8位Q8\_0)能带来更好的性能,尽管收益递减。激进量化(例如2位Q2\_K)通常能保持可接受的准确率,但部分模型性能显著下降。我们的发现表明,虽然较低位精度通常会降低性能,但影响因模型和任务而异。较大的模型对激进量化展现出更强的韧性,但在较低精度级别仍可能出现显著下降。参数规模在70亿到90亿的中等模型在效率与资源使用之间达到了最佳平衡。这些结果为模型大小、量化与性能之间的权衡提供了见解。
查看原文
查看缓存全文

缓存时间: 2026/05/20 08:26

# K-量化及其对输出性能的影响
来源:https://arxiv.org/html/2605.19645
Robin Baki Davidsson 隆德大学 瑞典隆德 robindavidsson@outlook\.com | Pierre Nugues 隆德大学 瑞典隆德 pierre\.nugues@cs\.lth\.se

###### 摘要

大型语言模型(LLMs)的最新进展展示了其在许多NLP任务中的卓越能力。然而,它们庞大的规模往往给部署带来挑战。这需要高效的模型压缩技术,其中量化已成为一种突出解决方案。尽管有其优势,但量化(从2位到6位)对LLMs性能和准确性的确切影响仍是一个活跃的研究领域。本文研究了八个LLMs在不同量化级别下的性能,重点关注知识处理与推理任务(MMLU-Pro)、代码理解任务(CRUXEval)以及阅读理解任务(MuSR)。我们的结果显示出一致的趋势:更高的精度(例如8位Q8_0)带来更好的性能,尽管收益递减。激进的量化(例如2位Q2_K)通常能保持可接受的准确性,但某些模型显示性能大幅下降。我们的发现表明,虽然低位精度通常降低性能,但影响因模型和任务而异。较大的模型对激进量化表现出更强的韧性,但在较低精度水平下仍可能显著下降。7-90亿参数范围内的中型模型在效率和资源使用之间达到了最佳平衡。这些结果揭示了模型大小、量化和性能之间的权衡。

K-量化及其对输出性能的影响

Robin Baki Davidsson 隆德大学 瑞典隆德 robindavidsson@outlook\.com Pierre Nugues 隆德大学 瑞典隆德 pierre\.nugues@cs\.lth\.se

## 1 引言

大型语言模型(LLMs)正成为强大的工具,能在许多领域进行类人交流。然而,它们庞大的规模在部署到实际应用时带来了挑战。这一挑战在计算资源有限或数据隐私至关重要的环境中尤为突出,例如医院、研究实验室或教育机构。量化是一种使这些模型更紧凑的流行方法。它通过使用精度较低的数字来表示模型的内部参数(权重)来缩小模型。

尽管量化有助于提高效率,但对其如何影响模型能力仍需更清晰的理解。更具体地说,我们想知道降低权重的精度如何影响模型正确推理、理解复杂代码或把握长文本细微差别的能力。

本文探讨了量化级别对八个不同LLMs性能的影响,重点关注其在知识处理任务(使用MMLU-Pro数据集)、代码理解(使用CRUXEval)以及长文本理解(使用MuSR)中的推理能力。我们的目标是找到量化带来的效率提升与准确性或可靠性潜在损失之间的权衡。我们的结果通常显示,随着量化变得越发激进(使用更低位精度),性能会下降,尽管模型即使在2位水平下也往往保持合理准确。然而,我们也观察到例外情况,即在最低位水平下性能急剧下降,且影响取决于具体模型及其执行的任务。

## 2 相关工作

大型语言模型(LLMs)由于计算需求高、使用敏感数据以及严格的隐私设置,面临采用障碍。量化可以在牺牲最小性能的情况下缓解这些限制,并已成为一个活跃的研究领域。

#### 量化方法。
多种训练后量化(PTQ)方法已被开发出来,用于在不进行昂贵重新训练的情况下压缩LLMs。早期的单次方法之一是GPTQ (Frantar 等人, 2022 (https://arxiv.org/html/2605.19645#bib.bib9)),它可以将权重准确压缩到每个参数3或4位。近期,Lin 等人 (2025 (https://arxiv.org/html/2605.19645#bib.bib2)) 引入了激活感知权重量化(AWQ),它基于激活幅度保护重要权重,通常能带来改进的性能。此外,像 BitsAndBytes (https://github.com/bitsandbytes-foundation/bitsandbytes) 这样的库提供了流行的即时量化实现,适用于4位和8位精度,详见 Dettmers 等人 (2022a (https://arxiv.org/html/2605.19645#bib.bib6)) 和 Dettmers 等人 (2022b (https://arxiv.org/html/2605.19645#bib.bib28))。

#### 量化模型的评估。
越来越多的研究正在实证评估这些量化技术对模型性能的影响,揭示了量化技术、位精度、模型架构和任务类型之间复杂的相互作用。

先前关于量化方法的显著评估研究:Yao 等人 (2024 (https://arxiv.org/html/2605.19645#bib.bib57)) 研究了GPTQ与较老方法的比较。Badshah 和 Sajjad (2024 (https://arxiv.org/html/2605.19645#bib.bib58)) 使用 BitsAndBytes 研究了量化影响。Liu 等人 (2024 (https://arxiv.org/html/2605.19645#bib.bib59)) 在广泛量化方法(包括GPTQ和AWQ)上进行了综合研究。Liu 等人 (2024 (https://arxiv.org/html/2605.19645#bib.bib59)) 研究了GPTQ、AWQ、SpQR和SmoothQuant。(Lee 等人, 2024 (https://arxiv.org/html/2605.19645#bib.bib62)) 研究了GPTQ、AWQ、SmoothQuant和FP8。其他研究包括 Egashira 等人 (2024 (https://arxiv.org/html/2605.19645#bib.bib63)), Xu 等人 (2024 (https://arxiv.org/html/2605.19645#bib.bib64)), Marchisio 等人 (2024 (https://arxiv.org/html/2605.19645#bib.bib65)), Egiazarian 等人 (2024 (https://arxiv.org/html/2605.19645#bib.bib66)), Gong 等人 (2024a (https://arxiv.org/html/2605.19645#bib.bib67)), 和 Kurtic 等人 (2025a (https://arxiv.org/html/2605.19645#bib.bib68))。

近期综合研究表明,高精度格式几乎是无损的。例如,Kurtic 等人 (2025b (https://arxiv.org/html/2605.19645#bib.bib3)) 对 Llama 3.1 系列进行了超过500,000次评估,发现与BF16基线相比,8位量化“实际上是无损的”。他们的工作还表明,8位模型的准确率下降很小(1-3%),而仅权重的4位量化通常与8位性能相似。

Lee 等人 (2025 (https://arxiv.org/html/2605.19645#bib.bib4)) 发现量化影响也高度依赖于模型大小。对1B到405B参数的模型进行评估发现,较小的模型在4位精度下可能遭受严重的准确率下降,而较大的模型(例如70B规模)能保持更稳定的性能。

#### 本文的贡献。
先前的工作如 Jin 等人 (2024 (https://arxiv.org/html/2605.19645#bib.bib29)) 评估了GPTQ (Frantar 等人, 2022 (https://arxiv.org/html/2605.19645#bib.bib9)) 和 SpQR (Dettmers 等人, 2024 (https://arxiv.org/html/2605.19645#bib.bib5)) 等方法,其他综合研究比较了AWQ和GPTQ在不同模型大小下的表现。然而,对k-量化效果的针对性研究仍较少。我们的工作通过将分析扩展到四种不同的现代模型系列(Llama、Gemma、Phi和Mistral),并使用llama\.cpp (Gerganov 和社区贡献者, 2023 (https://arxiv.org/html/2605.19645#bib.bib23); Noble, 2024 (https://arxiv.org/html/2605.19645#bib.bib24)) 中实现的k-量化技术评估从2位到6位的广泛低位精度,为这一领域做出了贡献。

## 3 背景

本节描述大型语言模型背后的基础组件。我们主要关注权重,它直接受到量化压缩效果的影响。我们还描述了如何利用模型输出概率并将其表示为权重的函数。

### 3.1 自回归模型

自回归模型是专门为序列预测设计的概率模型。自回归模型构成了大多数现代LLMs中文本生成的基础。

#### 定义。
序列中下一个符号 \( x_i \) 的概率由下式给出:
\[
p(x_i \mid x_1, \ldots, x_{i-2}, x_{i-1}),
\]
其中 \( x_1, \ldots, x_{i-2}, x_{i-1} \) 表示过去符号的序列。本质上,这些模型被调整以将上下文映射到所有潜在未来值上的概率分布。

#### 困惑度。
基于自回归模型的预测能力,困惑度是一个关键的评估指标 (Zhong 等人, 2019 (https://arxiv.org/html/2605.19645#bib.bib17))。困惑度量化了模型预测单词序列(从而预测文本和语料库)的有效性。它通过计算给定先前上下文时预测的不确定性来实现 (Kuribayashi 等人, 2021 (https://arxiv.org/html/2605.19645#bib.bib14))。

较低的困惑度表明模型更准确地预测序列中的下一个 token,意味着更强的语言理解和生成能力 (Zhong 等人, 2019 (https://arxiv.org/html/2605.19645#bib.bib17))。对于包含 \( N \) 个 token 的序列,困惑度表示为:
\[
\text{PPL} = \prod_{i=0}^{N} p(w_i \mid w_{<i})^{-\frac{1}{N}}
\]
公式 (2) 源自信息论中的熵 (Kuribayashi 等人, 2021 (https://arxiv.org/html/2605.19645#bib.bib14); Shannon, 1948a (https://arxiv.org/html/2605.19645#bib.bib55), b (https://arxiv.org/html/2605.19645#bib.bib56))。

#### 上下文窗口。
上下文窗口是模型用于进行未来预测的前面符号的数量 (Dunn, 2023 (https://arxiv.org/html/2605.19645#bib.bib48))。为了进行计算,我们在固定大小的上下文窗口内按顺序处理文本。当上下文超过预定义的限制(特定模型的最大 token 数)时,窗口会沿着文本继续移动。

### 3.2 权重

模型的大小特指其参数或权重的数量。值得注意的是,“开放权重模型”是指那些权重已公开可用的模型,允许在本地使用而无需依赖在线服务。

在训练过程中,权重被迭代更新以找到最适合数据的函数。权重被调整以最小化模型预测输出与目标输出之间的差异,基于预定的损失和优化算法。这一调整过程负责优化权重。这些优化后的权重有效捕捉了数据集的底层结构,使得LLM能够生成语法正确且语义有意义的文本或代码。

我们可以使用权重将公式 (1) 重写为:
\[
\hat{x}_i = f(x_1, \ldots, x_{i-2}, x_{i-1}; W),
\]
其中 \( f \) 将过去元素 \( x_1, \ldots, x_{i-2}, x_{i-1} \) 作为输入并进行预测 \( \hat{x}_i \),而 \( W \) 表示权重。

### 3.3 模型结构中的权重

大多数自回归模型基于 Transformer 架构 (Vaswani 等人, 2017 (https://arxiv.org/html/2605.19645#bib.bib42)),但限制在其解码器部分。参数数量大致是解码器层数的函数。然而,随着新型激活函数和位置编码的出现,各个解码器组件正在迅速演变,偏离了原始架构。

#### 权重表示。
大型语言模型的权重通常存储为浮点数。一种常见格式是 bfloat16,每个数字使用16位。与传统的 float16 相比,bfloat16 优先表示更宽范围的值,代价是精度略低。图2 (https://arxiv.org/html/2605.19645#S3.F2) 显示了 float16 的尾数和指数之间的位分布,图2 (https://arxiv.org/html/2605.19645#S3.F2) 显示了 bfloat16 的位分布。

0123456789101112131415
符号 指数 尾数

图1: float16 中16位的分布。

0123456789101112131415
符号 指数 尾数

图2: bfloat16 中16位的分布。

#### 权重量化。
量化成为减少 LLMs 内存占用和加速计算的关键技术,使其适用于资源受限设备上的部署 (Gong 等人, 2024b (https://arxiv.org/html/2605.19645#bib.bib41))。该过程通过转换模型权重,使每个值使用更少的位,从而降低精度。较低精度的权重需要更少的存储空间,从而允许更快的数据传输和算术运算。

本文利用训练后量化(PTQ),这是一种在模型训练后应用的方法,以避免昂贵的重新训练 (Frantar 等人, 2022 (https://arxiv.org/html/2605.19645#bib.bib9); Huang 等人, 2024 (https://arxiv.org/html/2605.19645#bib.bib10))。一种常见的 PTQ 策略是仿射块量化 (HuggingFace, 2025 (https://arxiv.org/html/2605.19645#bib.bib21))。该方法将使用双重量化 (Dettmers 等人, 2023 (https://arxiv.org/html/2605.19645#bib.bib22));它对量化常数进行量化。

我们为本研究选择了 `llama\.cpp` 中实现的 k-量化方法。K-量化利用层次结构 (Turc, 2025 (https://arxiv.org/html/2605.19645#bib.bib18)),如图3 (https://arxiv.org/html/2605.19645#S3.F3) 所示。该方法将模型的一组高精度权重分组为较小的固定大小块,并针对每个块计算高精度标量 \( S_k \) 和偏移量 \( \alpha_k \)。这些被存储在一个称为超级块的大结构中。

每个块的常数不再以高精度存储;它们被量化为 INT8。然后为整个超级块存储另一组高精度常数。这些超级块常数用于在推理过程中对块级常数进行反量化 (Turc, 2025 (https://arxiv.org/html/2605.19645#bib.bib18))。量化后的权重被映射到 INT4 容器并以此存储。K-量化对权重采用混合精度策略以平衡模型大小和性能。该方法不对所有权重应用相同的位量化;有些权重对量化误差更敏感,因此被分配更高的精度。

原始超级块 (FP16) → 量化权重 (INT4) + 量化块常数 (INT8) + 超级块常数 (FP16) → 最终存储组件 → K-量化过程

图3: K-量化超级块的结构。该过程将原始高精度块分解为三个最终组件。

#### Llama\.cpp 和 GGUF。
为了模型评估和执行,我们使用了 `llama\.cpp` 软件库 (Gerganov, 2024a (https://arxiv.org/html/2605.19645#bib.bib71)) 及其 Python 绑定 (Betlen, 2024 (https://arxiv.org/html/2605.19645#bib.bib72))。该库将量化模型存储在名为 GGUF 的二进制文件格式中。GGUF 包含张量数据和元数据。它支持本文描述的2位到8位量化类型 (Gerganov, 2024a (https://arxiv.org/html/2605.19645#bib.bib71); HuggingFace, 2024 (https://arxiv.org/html/2605.19645#bib.bib72))。

相似文章

2-bit QAT 模型发布

Reddit r/LocalLLaMA

关于2位量化感知训练(QAT)在更大规模MoE模型上的潜力的讨论,比较其与4位QAT及三元LLM的性能,并探讨在消费级硬件上的可行性。

可变位宽量化:为“更大但更小”的语言模型学习每组的精度

arXiv cs.LG

介绍了可变位宽量化(VBQ),一种训练时的方法,其中每组64个权重通过Gumbel-Softmax松弛学习自己的位宽(1、2、4、8)。VBQ发现了一种异构分配,实现了“更大但更小”的机制,例如,平均位宽1.82的1.31亿参数模型在TinyStories上的困惑度为4.2,击败了5500万FP16模型(困惑度4.4),同时存储减少3.8倍;而1.46B模型在FineWeb-Edu上与593M FP16控制模型表现相当,存储减少约3.7倍。

递归推理模型的量化

arXiv cs.LG

本文研究了对递归推理模型的量化,其中权重共享块被重复使用,发现每张量4位量化会导致灾难性漂移,但每块缩放(如MXInt4)能恢复准确性,且更深层的架构更为敏感。

量化推理模型自以为需要更长的思考,实则不然

arXiv cs.LG

本文揭示,对推理模型进行激进的训练后量化会导致过度思考错误增加,即模型在中间步骤得出正确答案却未能作为最终答案输出。对过度思考标记施加简单的logit惩罚,可将思维链长度减少12-23%,同时提升准确率,尤其对量化模型效果显著。