What is 量化(Quantization)?

    降低模型权重数值精度(例如从 FP16 到 INT8 或 INT4)以缩小内存占用并加速推理,同时不大幅牺牲准确性的过程。

    Definition

    量化是一种模型压缩技术,将训练期间使用的高精度浮点数转换为推理时的低精度表示。在训练期间,神经网络通常使用 16 位(FP16)或 32 位(FP32)浮点权重来保持学习所需的梯度分辨率。然而,一旦模型训练完成,这种精度在生成预测时很大程度上是多余的。量化通过将权重——有时还包括激活值——映射到更小的数据类型(如 8 位整数 INT8 甚至 4 位整数 INT4)来利用这种冗余。

    量化有两大类方法。训练后量化(PTQ)对完全训练好的模型在事后转换其权重,有时使用小型校准数据集来最小化准确度损失。量化感知训练(QAT)则在训练过程中模拟低精度运算,使模型调整其权重以适应量化方案。PTQ 更快更简单;QAT 通常在极低位宽下产生更高的准确度。

    现代量化格式如 GGUF 不仅编码量化后的权重,还编码推理期间反量化所需的元数据。GPTQ、AWQ 和 llama.cpp 使用的 k-quant 方法等技术在压缩比、速度和质量之间提供不同的权衡。经过良好量化的 7B 模型在 4 位精度下可以放入 4 GB RAM 并在笔记本电脑 CPU 上运行——与同一模型在 FP16 下需要的 14 GB 形成鲜明对比。

    Why It Matters

    没有量化,运行大型语言模型需要昂贵的 GPU 硬件和大量 VRAM。一个 700 亿参数模型在 FP16 下大约需要 140 GB 内存——远超任何单个消费级 GPU。量化通过使模型可以在普通硬件、边缘设备甚至手机上运行来实现访问的民主化。对于组织来说,这直接转化为更低的基础设施成本、更低的延迟,以及在数据不能离开本地设备的隐私敏感环境中部署 AI 的能力。

    How It Works

    量化管道首先分析训练模型每一层权重值的分布。然后计算一个映射函数,将每个浮点权重转换为最接近的低精度对应值,同时最小化整体重建误差。对于 INT8 量化,这通常涉及为每个张量或每个通道计算缩放因子和零点。对于激进的 4 位方案,分组策略(例如以 32 或 128 个权重为一组进行量化)有助于保持准确度。量化后的模型以 GGUF 等部署就绪格式序列化,该格式存储量化权重以及推理时所需的反量化参数。

    Example Use Case

    一家医疗初创公司需要在没有专用 GPU 的医院工作站上运行微调的 130 亿参数医学问答模型。通过使用 llama.cpp 的 GGUF 格式将模型从 FP16 量化到 Q4_K_M,他们将模型大小从 26 GB 减少到 7.4 GB。量化后的模型仅在 CPU 上就能以每秒 12 个 token 的速度运行,在医学基准上的性能下降不到 1%——实现了实时临床决策支持,无需将患者数据发送到云端。

    Key Takeaways

    • 量化降低模型精度(FP16 到 INT8 到 INT4)以将内存需求缩减 2-4 倍或更多。
    • 训练后量化快速简便;量化感知训练在极低位宽下效果更好。
    • GGUF 是分发用于本地推理的量化模型的最流行格式。
    • 执行良好的量化保留了 95-99% 的模型质量,同时大幅降低硬件要求。
    • 量化对于在边缘设备、笔记本电脑和隐私敏感环境中部署大语言模型至关重要。

    How Ertas Helps

    Ertas 将量化工作流简化为模型导出管道的一部分。在 Ertas Studio 中微调后,用户可以一键将模型直接导出为各种量化级别(Q4_K_M、Q5_K_M、Q8_0 等)的 GGUF——无需命令行工具。这使得从微调模型到为 Ollama 或 llama.cpp 本地推理优化的可部署工件变得轻而易举,整个工作流都在 Ertas 的无代码界面内完成。

    Related Resources

    Ship AI that runs on your users' devices.

    Early bird pricing starts at $14.50/mo — locked in for life. Plans for builders and agencies.