微信扫码
与创始人交个朋友
我要投稿
这么多量化后的模型,到底有什么区别?
我们需要对这些值进行 int8 量化。下面是具体步骤:
1. 旧范围 = FP16 格式中的最大权重值 - FP16 格式中的最小权重值 = 0.932–0.0609 = 0.871
2. 新范围 = Int8 包含从 -128 到 127 的数字。因此,范围 = 127-(-128) = 255
3. 比例 (Scale) = 新范围中的最大值 / 旧范围中的最大值 = 127 / 0.932 = 136.24724986904138
6. 四舍五入误差 — 这里需要注意的一个重要点是,当我们反量化回到 FP16 格式时,可以看到到数字似乎并不完全相同。第一个元素 0.5415 变成了 0.543。大多数元素都会出现相同的问题。这是量化 - 反量化过程的结果所导致的误差。
OK,量化基本上就是这么回事,接下来继续讨论LLM中涉及到的量化方法。
GPTQ 是一种针对4位量化的训练后量化 (PTQ) 方法,主要关注GPU推理和性能。
该方法的思想是通过将所有权重压缩到4位量化中,通过最小化与该权重的均方误差来实现。在推理过程中,它将动态地将权重解量化为float16,以提高性能,同时保持内存较低。
缩放:将输入张量x除以缩放因子scale。这一步是为了将x的值范围调整到预期的量化范围。
四舍五入:将缩放后的结果四舍五入到最近的整数。这一步是为了将x的值离散化,即将其转换为整数。
限制范围:使用torch.clamp函数将四舍五入后的结果限制在0和maxq之间。这一步是为了确保量化后的值不会超出预期的量化范围。
关于GPTQ的关键点:
GPTQ可以在大约四个GPU小时内量化具有1750亿参数的GPT模型,将位宽减少到每个权重的3或4位,与未压缩的基线相比,准确性降低可以忽略不计。
该方法的压缩增益是以前提出的一次性量化方法的两倍多,保持了准确性,使我们首次能够在单个GPU内执行1750亿参数的模型进行生成推断。
GPTQ还表明,即使在极端量化情况下,也可以提供合理的准确性,其中权重被量化为2位甚至三元量化级别。
该方法可以用于端到端推断加速,相对于FP16,使用高端GPU(NVIDIA A100)时约为3.25倍,使用更经济实惠的GPU(NVIDIA A6000)时为4.5倍。
GGUF是GGML的新版本。尽管 GPTQ 在压缩方面表现出色,但如果你没有运行它所需的硬件,它对 GPU 的依赖性可能会成为一个缺点。
GGUF是一种量化方法,是LLM库的C++复制品,支持多种LLM,如LLaMA系列和Falcon等。它允许用户在 CPU 上运行 LLM,同时将其部分层次转移到 GPU 上以加速运行。尽管使用 CPU 通常比使用 GPU 进行推理要慢,但对于在 CPU 或 Apple 设备上运行模型的人来说,这是一种非常好的格式。特别是我们看到出现了更小、更强大的模型,如 Mistral 7B,GGUF 格式可能会成为一种常见的格式
3. PTQ 训练后量化(Post-Training Quantization) [2]
QAT 的基本思想是根据该层权重的精度将输入量化为较低的精度。QAT 还负责在下一层需要时将权重和输入相乘的输出转换回较高的精度。这个将输入量化为较低精度,然后将权重和输入的输出转换回较高精度的过程也称为“伪量化节点插入”。这种量化被称为伪量化,因为它既进行了量化,又进行了反量化,转换成了基本操作。
- 这样做可以将由于量化而引起的准确性损失降到最低,因为这是在放大最重要的权重,同时降低不重要权重的精度。
将量化模型的权重内存占用减少为LLM推理带来了四个主要优点:
减少模型服务的硬件需求:量化模型可以使用更便宜的GPU进行服务,甚至可以在消费者设备或移动平台上进行访问。
为KV缓存提供更多空间,以支持更大的批处理大小和/或序列长度。
更快的解码延迟。由于解码过程受内存带宽限制,减少权重大小的数据移动直接改善了这一点,除非被解量化的开销抵消。
EXL2:一种新的量化格式,它在机器学习领域,特别是在大型语言模型(LLMs)在消费级GPU上的运行中代表了一个重要的进步。它作为ExLlamaV2库的一部分被引入,以其对量化的多样化方法而突出。与传统方法不同,它支持一个从2位量化开始的范围。这种量化格式可以显著减少模型的大小并加速推断。
H6:"H6"代表"HEAD BITS"的值为6。这就意味着在网络的"head"部分,每个权重使用6个比特进行表示。依次类推,H8代表8个比特表示,这是一种量化的参数设置,可以帮助在减少模型大小和计算复杂性的同时,保持一定的精度
LLaMAfy / LLaMAfied:即 step-by-step to align with LLaMA's architecture
最后,在知道了这么多量化方法后,对于如何选择量化,看一篇前2天发布的关于LLAMA-3 量化相关的论文中的相关结论
1. 8bit 量化是免费午餐,无损失。
2. AWQ 4bit量化对8B模型来说有2%性能损失,对70B模型只有0.05%性能损失。可以说也是免费午餐了。
3. 参数越大的模型,低bit量化损失越低。AWQ 3bit 70B 也只有2.7%性能损失,完全可接受。
4. 综合来说,如果追求无任何性能损失,8B模型用8bit量化,70B模型用4bit量化;如果能接受2-3%损失,8B模型用4bit量化,70B模型用3bit量化。
---------- 完 ----------
53AI,企业落地应用大模型首选服务商
产品:大模型应用平台+智能体定制开发+落地咨询服务
承诺:先做场景POC验证,看到效果再签署服务协议。零风险落地应用大模型,已交付160+中大型企业
2024-05-14
2024-04-26
2024-03-30
2024-04-12
2024-05-10
2024-07-18
2024-05-22
2024-05-28
2024-04-25
2024-04-26