趋近智
量化 (quantization)技术有望大幅减小模型规模,并可能提升运行速度,但这些好处并非自动实现。它们在很大程度上取决于底层硬件的能力以及是否有优化的软件程序(即计算内核)来高效执行低精度运算。如果处理器无法快速执行这些数据类型的算术运算,那么简单地用更少的比特表示权重 (weight)和激活值是不够的。理解硬件限制、内核支持与量化大型语言模型(LLM)实际性能之间的关联是必要的。
现代处理器,特别是GPU和TPU等专用加速器,通常包含专门的硬件单元,旨在加速特定数值格式的计算。例如,从图灵架构开始的英伟达GPU引入了Tensor Core,能够加速涉及FP16和INT8等格式的混合精度矩阵乘法。安培和霍珀等更新架构已将这种支持扩展到INT4甚至更稀疏的运算。类似地,现代CPU也常配备指令集扩展(如AVX-512 VNNI),用于加速INT8计算。
然而,对超低精度格式(低于4比特)或NF4(NormalFloat 4)等不常见格式的支持,通常并非硬件算术逻辑单元(ALU)的本地能力。在这些格式下执行运算可能需要通过一系列更标准的指令进行模拟,这会抵消甚至逆转预期的性能提升。
因此,一个主要限制是你的目标硬件是否拥有对你打算使用的特定量化 (quantization)数据类型的本地指令。在具有专用INT4 Tensor Core支持的GPU上使用INT4量化,很可能带来显著的速度提升。在缺乏这种支持的硬件上尝试相同操作,可能导致计算效率低下,甚至比使用FP16或INT8更慢,如果引入了大量的软件开销用于打包、解包和模拟。
即使有本地硬件支持,也只有当软件能有效使用这些硬件功能时,才能达到峰值性能。这就是优化计算内核发挥作用的地方。内核是底层、硬件专用的代码程序,旨在以最高效率执行矩阵乘法(GEMM)、向量 (vector)加法或归一化 (normalization)等基本运算,适用于特定数据类型和布局。
对于FP32和FP16等标准格式,经过多年发展,已经有了高度优化的内核库(例如,英伟达GPU的cuBLAS,英特尔CPU的MKL)。然而,对于量化 (quantization)格式,特别是那些非对称的或涉及不寻常数据表示的格式(如NF4或GPTQ、AWQ等方法中使用的自定义块结构),标准库通常缺少相应的优化内核。
开发这些内核并非易事,需要计算机架构、编译器设计和特定量化方案方面的扎实知识。bitsandbytes、英伟达的cutlass等库以及TensorRT-LLM等框架投入大量精力创建自定义内核,这些内核能够:
dp4a、dp2a,Tensor Core运算)。没有这些专用内核,量化的理论优势便无法实现。INT4模型可能占用更少内存,但如果矩阵乘法仍通过反量化到FP16/FP32并使用标准内核运行,预期的推理 (inference)速度提升就不会出现。更糟的是,反量化的开销可能会拖慢速度。
特定量化 (quantization)技术(例如GPTQ、AWQ、基础INT4)在特定硬件上的实际用途,通常归结为推理 (inference)框架或库是否为该组合提供了所需的优化内核。
bitsandbytes等库提供低位基础内核(例如,用于NF4、INT8),这些内核可以集成到Hugging Face Transformers等更高级别的框架中。然而,它们的性能可能与TensorRT-LLM等专用推理引擎中专门调优的内核有所不同。下方的图表说明了性能提升如何高度依赖于内核支持。虽然理论上较低精度能提供更高的吞吐量 (throughput),但这只有在优化内核有效使用硬件时才能实现。
不同精度的相对推理吞吐量。请注意,在没有优化内核的情况下,INT4性能如何显著下降,甚至可能低于INT8,尽管其比特宽度更小。
成功部署量化 (quantization)大型语言模型(LLM)需要认真考量这些硬件和软件依赖:
理解硬件指令集所施加的限制以及优化内核的支持情况,对于实现大型语言模型(LLM)量化的实际优势非常重要。选择量化策略时,不仅要评估理论上的压缩和精度权衡,还要考量在预定部署平台上可达到的实际性能。
这部分内容有帮助吗?
© 2026 ApX Machine LearningAI伦理与透明度•