尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

技术拆解(十):为什么你的大模型又慢又贵?搞懂量化原理、精度损失和 GPTQ/AWQ,推理成本直接砍半

技术拆解(十):为什么你的大模型又慢又贵?搞懂量化原理、精度损失和 GPTQ/AWQ,推理成本直接砍半 一大模型中的精度1.概念精度在深度学习中通常指数值表示的类型bit 数、指数/尾数分配及其对模型效果的影响。主要分为浮点类用于训练和推理和整数类主要用于推理量化。2.常见分类3.指数与尾数的概念尾数有效数字就是前面的3.0。它决定了你能精确到3.0还是3.01精度。指数10的幂次就是后面的8。它决定了这个数是百万级10^6还是亿级10^8范围。一句话概括尾数决定“数值有多精细精度”指数决定“数值有多大范围”。4.计算机二进制的指数与尾数上面举得例子是十进制的指数与尾数实际上计算机存储的是二进制计算过程主要以下三步4-1【判断】第一步拆分 判类看指数位拿到一段二进制浮点数先看指数位全0、全1、还是中间值中间值正规数指数位既不全为 0也不全为 1。此时尾数前隐含的整数位是1即1.xxx。全 0非正规数/零指数位全为 0。此时尾数前隐含的整数位是0即0.xxx用于表示 0 或极其接近 0 的小数。全 1特殊值指数位全为 1。此时表示无穷大尾数全0或 NaN尾数非0不参与范围计算。4-2【减偏置求E真实】第二步还原“真实指数”减偏置把指数位的二进制转成十进制整数 E存储​然后减去偏置Bias得到真实的二进制指数 E真实​正规数E真实E存储−Bias非正规数E真实1−Bias固定值用来衔接最小正规数偏置公式Bias2^(指数位数−1)−14-3【转十进制计算】第三步代入公式算数值二进制转十进制根据类别代入通用公式正规数值1.尾数二进制×2^E真实非正规数值0.尾数二进制×2^E真实想换算成我们熟悉的十进制范围时把 2^E真实 换成 10 的幂次即可利用 2^10≈10^3。看不懂上面没关系我们用FP16和BP16来举例子FP161位符号位 5位指数位 10位尾数位。BF161位符号位 8位指数位 7位尾数位。------------------------------------------------------------------------------------------------------------------------①FP16 00001 正规数最小值第一步判断确定是正规数数位既不全为 0也不全为 1第二步E真实E存储−Bias1-15-14其中E存储为00001转为十进制的值1偏置为2^(5−1)−115第三步最小值尾数是0000000000全是0所以1.尾数1.0000000000二进制转十进制计算值1×2^E真实2^-14≈6.10×10^−5------------------------------------------------------------------------------------------------------------------------②FP1611110十进制30 正规数最大值第一步判断确定是正规数指数位11110既不全为0也不全为1。第二步E真实E存储−Bias30−1515其中E存储为11110转为十进制的值30偏置为 2^(5−1)−115第三步最大值需尾数全取110位全1所以1.尾数1.1111111111二进制转十进制值为 2−2^−10转十进制计算值(2−2^−10)×2^156550------------------------------------------------------------------------------------------------------------------------③FP1600000绝对最小值非正规数第一步判断确定是非正规数指数位全为0。第二步E真实1−Bias1−15−14其中E存储​为0但非正规数不直接用它减偏置偏置为 2^(5−1)−115第三步最小非零尾数为0000000001所以0.尾数0.0000000001二进制转十进制值为 2^−10转十进制计算值(2^−10)×2^−142^−24≈5.96×10^−8------------------------------------------------------------------------------------------------------------------------④BF1611111110十进制254 正规数最大值第一步判断确定是正规数指数位11111110既不全为0也不全为1。第二步E真实E存储−Bias254−127127其中E存储为11111110转为十进制的值 254偏置为 2^(8−1)−1127第三步最大值需尾数全取17位全1所以1.尾数1.1111111二进制转十进制值为 2−2^−7。转十进制计算值(2−2^−7)×2^127≈3.39×10^38------------------------------------------------------------------------------------------------------------------------⑤BF1600000001正规数最小值说明工程上 BF16 常将非正规数冲刷Flush为 0因此实际训练中有意义的最小值就是正规数最小值。第一步判断确定是正规数指数位00000001既不全为0也不全为1。第二步E真实E存储−Bias1−127−126其中E存储E存储​ 为00000001转为十进制的值 1偏置为 2^(8−1)−1127第三步最小值尾数是0000000全是0所以1.尾数1.0000000二进制转十进制计算值1.0×2^−126≈1.18×10^−38类别指数位二进制E存储EE真实实​尾数情况最终数值FP16 最大值111103015全12−2^−1065504FP16 绝对最小值000000-14固定最小非零2−^105.96×10^−8BF16 最大值11111110254127全12−2^−73.39×10^38BF16 正规最小值000000011-126全01.01.18×10−^385.大模型训练各部分精度6. 浮点类FP—— 大模型训练的主力浮点数能表示小数动态范围广适合梯度更新和权重累积。6-1.FP32 单精度结构1位符号位 8位指数位 23位尾数位特点曾经的训练标准。数值范围广精度高。现状在大模型训练中几乎不再单独使用。因为显存占用太大4字节/参数且现代硬件如NVIDIA A100/H100对FP16/BF16的算力远高于FP32。现在主要用于损失缩放Loss Scaling或模型副本的存储。6-2.FP16 半精度结构1位符号位 5位指数位 10位尾数位。特点显存占用小2字节/参数算力高。痛点容易溢出。因为只有5位指数数值范围较小约6.5×10^⁻8到 6.5×10^4。在训练大模型时梯度一旦小于范围下限就会下溢出变成0导致训练失败。现状曾是混合精度训练的主流现在正被BF16取代。6-3.BF16 Brain Floating Point——当前训练的主流结构1位符号位 8位指数位 7位尾数位。特点指数位与FP32完全相同。优势它牺牲了精度尾数少但保留了与FP32相同的数值范围。这意味着在训练中BF16不会像FP16那样容易溢出且与FP32之间的转换几乎是无损的BF16范围1.18×10^⁻38到 3.39×10^38。现状大模型预训练的首选精度。配合A100/H100等GPUBF16混合精度训练既节省了显存相比FP32减半又保证了训练的稳定性。选择BF16的原因大模型训练时梯度值经常非常小FP16 的最小可表示正数约 6.5×10⁻⁸很容易下溢出变成 0导致模型无法收敛。BF16 牺牲了精度换来了与 FP32 同等的数值范围从而避免了溢出问题成为大模型训练的主流格式。6-4.FP8——新硬件的宠儿结构主要有两种变体——E4M34位指数3位尾数动态范围较小但精度较高和E5M25位指数2位尾数动态范围较大但精度较低。现状随着NVIDIA H100Hopper架构及Blackwell架构的普及FP8开始用于大规模预训练和推理。它能让显存占用再减半算力翻倍但需要非常精细的缩放Scaling算法来防止精度丢失6-5.FP4 / 更低精度现状主要用于推理。FP4是Blackwell架构如GB200主推的特性用于在极低显存下运行超大模型如405B参数模型但训练阶段几乎不用因为精度损失太大。7.整数类INT—— 大模型推理部署的主力整数只能表示整数没有指数位因此动态范围非常有限。它们通常用于量化Quantization。7-1INT8特点范围 -128 到 127。现状成熟的推理精度。经过大量实践验证将模型权重从FP16量化为INT8W8A8即权重8位、激活8位在大部分任务上精度损失极小约1%以内但显存占用减半吞吐量大幅提升。是目前云端部署的主流精度之一。7-2 INT4特点范围 -8 到 7。现状消费级显卡和个人部署的首选。通过QLoRA量化低秩适配器等技术甚至可以在24GB显存的显卡如RTX 3090/4090上运行130亿到700亿参数量的模型。代表技术GPTQ、AWQ、GGUFollama/llama.cpp常用。虽然输出质量相比FP16有所下降特别是逻辑推理能力但对于聊天和文本生成场景性价比极高。7-3INT2 / INT1 二值化/三值化现状处于学术研究阶段。将权重限制在 -1, 0, 1 或 0, 1。瓶颈虽然理论上能实现极高的压缩比32倍/64倍但目前在大规模商用大模型上精度坍塌严重尚不成熟。二量化1.数学本质一种有损压缩技术将高精度浮点数如 FP16、FP32映射到低精度整数如 INT8、INT4从而降低显存占用、提高计算速度。2.核心公式以非对称量化为例S缩放因子浮点数与整数之间的比例关系。Z零点用于对齐数据分布的中心非对称量化时 Z 不为 0对称量化时 Z 0。3.分组量化Group-wise Quantization为避免全局量化精度过低将张量按某个维度切分常见为每组 128 个元素每组独立分配一个缩放因子 S 和零点 Z。这样可以在精度与性能之间取得较好平衡。4.大模型中的特殊问题——激活值离群点当模型参数规模超过某个阈值如 6B、13B激活值中会出现大幅值的离群点outliers。若采用全局量化基于整个张量的 min/max这些离群点会拉大量化范围导致其余正常激活值被压缩到极少几个整数甚至 0 或 1模型能力瞬间崩塌。解决思路保护离群点。例如GPTQ、AWQ三常见的量化方式1.BitsAndBytes (NF4)1-1核心原理两阶段处理。先解决激活值中的离群值问题再对权重进行高效压缩。解决离群值 (LLM.int8())研究发现大模型中存在少量但数值极大的离群激活值。若统一量化会严重压缩其他激活值。LLM.int8() 采用混合精度分解法在矩阵乘法前算法会自动识别并分离出这些离群通道通常 1%以FP16高精度计算其余正常通道则做INT8量化计算最后将结果合并。从而在保证模型效果的同时大幅节省显存。压缩权重 (NF4)对权重参数进行4-bit压缩。它观察到神经网络权重的分布近似于正态分布中心密集、两端稀疏。传统的4-bit量化如INT4是均匀切分造成中间精度浪费、两端精度不够。NF4正是为高能效的信息保真而生它能精准地将更多的数值表示能力分配给权重最集中的区域从而用最少的bit实现更高精度的压缩。1-2优缺点优点开箱即用集成简单显存节省效果显著是进行QLoRA微调的首选方案。缺点混合精度计算带来额外开销推理速度通常慢于GPTQ/AWQ在长上下文等复杂任务上精度损失可能更明显。1-3适用场景个人开发者/研究人员在消费级GPU上进行模型微调QLoRA。2.GPTQ2-1核心原理逐层量化 误差补偿实现高精度的后训练量化。【量化当前列时产生的误差通过更新其他未量化的列来补偿从而最小化整层输出的变化。】逐列处理将待量化层的权重矩阵视作列集合并按列依次量化。误差补偿假设正在量化某一列量化会产生误差。GPTQ会计算该误差并将其补偿到该层中尚未被量化的其余权重列上。通过重构该层的输出使整个量化过程对最终输出的影响最小化。2-2优缺点优点应用范围最广长期被验证稳定性与可靠性极高数学原理严谨支持2-4 bit等低比特量化。缺点计算复杂量化速度慢量化70亿参数模型可能耗时35分钟以上且对GPU显存需求高对高质量校准数据要求较高。2-3适用场景对模型精度和稳定性要求极高的生产环境。批量进行模型量化任务可接受较长时间的处理等待。3.AWQ3-1核心原理激活感知重要权重保护。【利用激活值分布识别并保护关键权重】发现并非所有权重对模型性能都同等重要。它仅凭少量样本的激活值分布就能判断出关键权重仅占约1%。这些关键权重承载着模型大部分输出不适宜粗暴压缩。因此量化时会对关键权重进行重点保护如保留为FP16而对其他权重进行低比特量化。兼顾了压缩比和模型性能。3-2优缺点优点精度保留效果优秀推理速度快对校准数据质量和数量要求不高。缺点作为较新的方法其生态系统和框架支持度可能不如GPTQ成熟。3-3适用场景追求高精度与高效率平衡的高并发推理服务尤其配合vLLM推理引擎。难以获取高质量校准数据或希望快速实现高性能部署的场景。4.GGUF4-1核心原理一种综合性的模型文件格式而非单一的量化算法。GGUF 与其底层核心量化技术进行了深度集成共同实现高效的模型压缩和执行。其核心策略是混合精度与分层量化。它会智能识别模型中的关键部分如注意力层分配更高精度对非关键部分如偏置项采用低精度甚至极低精度。4-2优缺点优点极佳的硬件兼容性尤其对纯CPU运行进行了深度优化提供丰富的量化等级如2-8bit供用户灵活选择。缺点在GPU上的性能通常不如GPTQ/AWQ等专门优化方案主要应用在llama.cpp及其周边生态通用性有限。4-3适用场景CPU推理和硬件资源严重受限的环境如低配个人电脑、树莓派等边缘设备。llama.cpp、Ollama等本地大模型部署框架的原生格式。5.对比总结哲学视角——“量化不是让模型遗忘世界而是让模型学会用更少的符号保留世界。”量化不是对智能的削弱而是对“什么值得被保留”的一次判断FP32 试图完整记录世界BF16 学会在效率与稳定之间折中INT4/INT8 则进一步承认——理解并不等于复刻全部细节。真正的智能不在于用无限精度保存每一个数值而在于能否在误差、压缩和丢失之中仍然抓住世界最核心的结构。量化的哲学意义正在这里少一点表示不一定少一点理解更低的精度也可能是更高层次的抽象。结尾语如果本文对您有帮助请点赞鼓励一下这对我真的很重要。您的每一次鼓励都是我继续创作的动力谢谢啦下次见。
返回列表