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

资讯详情

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

LLM那些事 · 拓展:大模型动辄百亿、万亿参数,个人电脑怎么跑(量化之美)

LLM那些事 · 拓展:大模型动辄百亿、万亿参数,个人电脑怎么跑(量化之美) 1. 几百亿参数凭什么塞进你的显卡一个 70 亿参数的模型按每个参数占 4 字节FP32算光权重就是 28 GB。一张 RTX 4090 只有 24 GB 显存连权重都装不下。可现实中这个模型不但跑得起来还能在你的笔记本上以每秒几十个 token 的速度生成文本。中间差的这道魔法就是量化。量化不是什么新概念——你每天听的 MP3 是音频量化看的 JPEG 是图像量化。本质都是同一件事用更少的位数存一个数字换来空间和速度的收益代价是精度。LLM 的量化把这套逻辑搬到了模型权重和运行时数据上。这篇文章拆的就是这两本账。2. 量化是什么把「元角分」四舍五入成「整元」先说最朴素的直觉。你记账精确到「分」一个数字要用很多位来写123.45。如果你只记「整元」这个数字变成 123——少写了两位但大多数时候不影响你判断这笔开销大不大。精度丢了但账本变薄了算账也快了。LLM 量化做的是同一件事把权重从高精度比如 FP32 的 32 位浮点转成低精度比如 INT4 的 4 位整数每个参数省 7/8 的空间。70 亿个参数从 28 GB 缩到 3.5 GB一张消费级显卡刚好装得下。同构的类比还有音频从 CD 音质16-bit 44.1kHz压到 MP3128kbps码率降到原来的 1/11人耳大多数场景听不出差别照片从 RAW14-bit 每通道存成 JPEG8-bit 每通道文件缩小 5-10 倍肉眼几乎看不出损失。量化就是模型世界的「降码率」。但有一个关键区别不是所有参数都一样重要。账本里有些条目是几百块的外卖四舍五入到整元没问题有些是几十万的房款差一块钱都不行。模型里也一样——少量权重对输出质量影响极大粗暴地一刀切量化会把模型「压坏」。这个洞察是后面所有方法的分水岭。3. 数值格式速览用几位数字记账在深入量化方法之前先把「账本」里用到的几种数字格式搞清楚。位宽决定了每个参数占多少空间指数位和尾数位的分工决定了它能存多大的数、精确到小数点后几位。格式总位宽符号指数位尾数位动态范围精度直觉每参数字节FP32321823±3.4×10³⁸小数点后 7 位有效数字4FP16161510±65504小数点后 3-4 位有效数字2BF1616187与 FP32 相同小数点后 2-3 位有效数字2FP8 (E4M3)8143±448不到 1 位有效小数1INT88有/无——-128~127 或 0~255整数无小数1INT44有/无——-8~7 或 0~15整数无小数0.5几个要点直接给判断FP16 和 BF16 都是 16 位但取舍不同。FP16 的尾数更长10 位 vs 7 位存小数更精确但指数只有 5 位大数容易溢出。BF16 反过来指数和 FP32 一样宽8 位动态范围不打折但尾数短、小数精度粗。训练场景梯度经常飙到很大BF16 不溢出更安全所以 2026 年训练默认用 BF16。推理场景数值相对平稳FP16 的精度优势更值钱。FP8 有两个变体。E4M34 位指数、3 位尾数精度高适合前向推理E5M25 位指数、2 位尾数范围大适合反向传播算梯度。推理场景主要用 E4M3。FP8 需要 H100 及以上架构才有原生硬件支持——V100、A100 上跑不了。INT8 和 INT4 没有指数位和尾数位之分。它们是纯整数用固定的位宽存一个线性映射后的值。量化的核心操作就是「把浮点权重映射到整数格点上用时再反映射回来」。格点越密位宽越宽映射误差越小。4. 两条路线便宜的主流 vs 贵的精修量化按「什么时候做」分成两条路。PTQPost-Training Quantization训练后量化模型训完了直接拿过来量化。不需要重新训练只需要少量校准数据通常几百到几千条文本跑一遍统计权重和激活的分布然后量化。成本低、速度快几个小时就能完成一个 7B 模型的量化。GPTQ、AWQ、GGUF 都属于这一类。QATQuantization-Aware Training量化感知训练训练过程中就模拟量化的效果。前向传播用量化后的低精度值反向传播用全精度梯度更新直通估计器STE。训出来的模型天然适应低精度质量比 PTQ 好一截但成本等同于重新训练一遍——几十万美元起步。2026 年的生产实践里PTQ 是绝对主流。原因很现实大多数场景下PTQ 在 4-bit 位宽的质量损失已经可以接受8-bit 几乎无损花大价钱跑 QAT 的回报不成比例。QAT 主要用在极端位宽2-bit 及以下或对质量要求极高的场景。5. 权重量化静态的那本账权重量化是离线做好的——模型发布前把权重文件从高精度压缩成低精度用户下载到的就是量化后的版本。这是「静态」的那本账一次做完、反复使用。GPTQ逐层校准用少量数据补误差GPTQ 的核心思路来自 OBQOptimal Brain Quantization量化一个权重时产生的误差可以通过调整同一层里还没量化的其他权重来补偿。怎么做到的用 Hessian 矩阵二阶导数衡量每个权重对输出的敏感度。敏感度低的权重「皮糙肉厚」量化误差影响小敏感度高的权重「金贵」动不得。GPTQ 按敏感度从低到高逐列量化每量化一列就把误差分配给还没动的列用 Hessian 的逆矩阵算出最优分配方案。工程上GPTQ 用了 Cholesky 分解保证 Hessian 求逆的数值稳定性用分块处理把大矩阵拆成可管理的小块用懒更新把累积的修正一次性批量应用。这三招让 OBQ 从「理论上很美但跑不动」变成「几十亿参数模型几小时量化完」。GPTQ 的典型产出一个 7B 模型从 FP1614 GB压到 4-bit约 4 GB困惑度损失不到 1 个百分点以 LLaMA 系列为参考具体数字因模型而异。AWQ不是所有权重都同样重要AWQ 的核心洞察比 GPTQ 更直觉模型里只有约 1% 的权重通道是「显著」的它们对输出质量的影响远超其余 99%。怎么找到这 1%AWQ 不看权重本身的大小而是看推理时激活值的幅度。激活幅度大的通道意味着输入数据频繁经过这条路这条路上的权重一旦量化出错错误就会被放大。所以「显著权重」的定义是被大激活值乘过的那些权重通道。保护方法很优雅对显著通道乘一个放大系数大于 1让它们的值在量化前就「撑开」量化格点上的相对误差就变小了输出时再除回来数学上等价。这招叫 per-channel scaling成本极低效果显著。AWQ 由 MIT HAN Lab 提出获 MLSys 2024 最佳论文奖。GPU 推理速度约为 GPTQ 的两倍AWQ 的量化方案对 GPU Tensor Core 更友好质量在同位宽下也略优于 GPTQ。2026 年 GPU 推理场景AWQ 是多数部署的首选。GGUF k-quants本地玩家的事实标准如果你用过 llama.cpp 或 Ollama 在本地跑模型你一定见过 GGUF 格式和 Q4_K_M、Q5_K_M、Q8_0 这些名字。GGUF 是 llama.cpp 生态的模型格式它的量化方案k-quants和 GPTQ/AWQ 走的是不同路线不依赖 GPU不依赖校准数据纯靠权重的统计分布做量化。每 256 个权重为一组block组内用各自的缩放因子和量化参数。k-quant 的命名规则Q 后面的数字是位宽4/5/8K 表示 k-quant 方案比老版的 Q4_0、Q5_0 更精细S/M/L 表示「medium/small/large」——M 是安全默认S 更激进地压缩L 保留更多精度。推荐的递进选择按可用内存从少到多Q4_K_M → Q5_K_M → Q8_0。Q4_K_M 是 4-bit 的安全默认值Q8_0 几乎等同 FP16 质量但需要约两倍于 Q4 的内存。GGUF 的核心优势是硬件普适纯 CPU 能跑Mac 的 Metal 能跑NVIDIA/AMD GPU 也能跑。对于没有专业 GPU 的本地玩家GGUF 是唯一选择。代价是 GPU 推理速度不如 AWQGGUF 的反量化路径对 GPU 不够优化但在 CPU 和混合推理场景没有对手。SmoothQuant激活值量化的平滑术前面三种方法主要量化权重激活值模型推理过程中每一层的中间计算结果保持高精度。但激活值也有量化价值——如果权重和激活都能用 INT8就能利用 GPU 的 INT8 Tensor Core 获得接近翻倍的计算吞吐。难点在于激活值里经常出现极端离群值outlier某个通道偶尔冒出一个比其他通道大 100 倍的值。直接量化会把整个范围压缩到很少的格点上精度损失惨重。SmoothQuant 的做法把激活的量化难度「平滑」一部分给权重。具体来说找一个逐通道的缩放因子 s把激活除以 s、权重乘以 s数学上输出不变因为矩阵乘法里一个乘一个除刚好抵消。激活的离群值被压小了变得好量化权重本来就是比较均匀的分布稍微放大一点也不难量化。结果是 W8A8权重 INT8 激活 INT8的量化方案在 GPU 上能获得显著的吞吐提升。SmoothQuant 也常和 GPTQ/AWQ 配合使用——权重用 4-bit 极致压缩激活用 SmoothQuant 的 8-bit 方案加速计算。NF4 与 QLoRA微调时的 4-bit如果你想在一张消费级显卡上微调一个 7B 模型FP16 需要约 70 GB 显存QLoRA 是你的救星。QLoRA 的关键组件是 NF4NormalFloat4——一种专门为正态分布的权重设计的 4-bit 数据类型。LLM 的权重在训练后近似服从高斯分布大部分值集中在均值附近极端值很少。NF4 的 16 个量化格点不是均匀排列的而是按正态分布的分位数排列——中间密、两头疏信息论意义上是最优的。QLoRA 的做法基座模型用 NF4 量化到 4-bit 冻结不动在上面叠加一对低秩矩阵LoRA adapter用 BF16 训练。训练过程中只有 LoRA 的参数在更新显存占用从几十 GB 降到个位数。65B 模型的微调一张 48 GB 的 A6000 就能跑起来。NF4 只用于微调场景。推理时QLoRA 训完的模型通常会被导出为 AWQ 或 GGUF 格式部署。6. KV cache 量化运行时的另一本账权重只是静态的那本账——量化一次、下载一次、反复使用。模型运行时还有另一本越滚越大的账KV cache。回顾一下之前讲 Transformer 与注意力的那篇写过每生成一个新 token注意力机制需要和之前所有 token 的键Key和值Value做计算。为了避免重复计算已经算过的键值对被缓存下来就是 KV cache。这个缓存随上下文长度线性增长——一个 GPT-3 级别的模型每 token 的 KV cache 约 4.5 MB128K 上下文窗口的 KV cache 约 570 GB。对长上下文场景10 万 token 以上KV cache 经常比模型权重本身还占显存。所以量化 KV cache 是实打实的刚需。截至 2026 年 8 月的现状FP8 KV cache 已生产可用。vLLM 在 2026 年 4 月的官方博客明确推荐 FP8 KV cache 作为长上下文部署的默认起点。在 H100 上FP8 把 KV cache 显存占用砍半吞吐提升显著反量化开销低于 INT8。前提是硬件支持——需要 H100/H200/B200 等 Hopper 及以后架构。INT8 KV cache 也可用但路径不同。INT8 不依赖特定硬件V100 以上都能跑在某些场景质量比 FP8 更稳非对称范围处理更成熟。vLLM 社区有专门的讨论指出 INT8 的量化稳定性优势目前已有社区贡献的 INT8 KV cache 支持。代价是反量化开销比 FP8 高约 15-25%。INT4 KV cache 仍在探索阶段。受限于硬件支持和量化精度KV cache 的值分布不像权重那样规律4-bit 量化容易丢关键信息截至 2026 年中还没有广泛的生产级方案。选型一句话有 H100 及以上硬件就用 FP8老硬件用 INT8INT4 先别碰。7. 权衡账本内存、速度、质量三角量化说到底是在三角里做取舍内存占用、推理速度、输出质量——你不可能三个都要。质量悬崖在哪个位宽根据多项评测来源见文末参考来源8-bit → FP16质量损失极小。SitePoint 的评测显示精度下降不到 0.5%Latitude 的测试给出约 1% 的质量损失。大多数应用可以无感切换。4-bit → FP16开始出现可感知但不致命的损失。SitePoint 给出 1.8-2.9% 的平均准确率下降。模型越大70B 以上4-bit 的损失越小——大模型的冗余度更高量化容错更好。2-bit 及以下质量悬崖。困惑度显著上升多数任务表现明显下降。只有 BitNet 等原生低精度训练的模型能在这个位宽保持可用。一个经验法则社区里广泛流传的粗估公式——8-bit 量化的显存需求约等于参数量以 GB 计。7B 模型 → 约 7 GB70B 模型 → 约 70 GB。4-bit 再砍一半。FP16 翻倍。实际部署还要额外留 2-6 GB 给 KV cache 和运行时开销。什么时候 4-bit 够用这取决于你的任务。文本分类、摘要、翻译等「模式化」任务对量化不太敏感4-bit 够用了。数学推理、多步逻辑、代码生成等需要精确性的任务4-bit 的损失会更明显。如果你在消费级显卡上跑一个通用聊天助手Q4_K_M 或 AWQ 4-bit 是性价比最高的选择如果你做的是代码审查或数学证明8-bit 更稳。8. 技术深挖2026 趋势这一节放的是前沿内容对日常选型参考价值有限但对理解方向有价值。可跳过。FP8 推理普及FP8 在 2026 年已经从「尝鲜」变成「默认」。NVIDIA 的 Transformer Engine 在 H100/H200 上原生支持 FP8 混合精度推理vLLM 等主流推理框架都已集成。对新建的推理集群FP8 是默认起点——相比 FP16 吞吐翻倍、显存砍半质量损失在多数任务上可忽略。FP8 的硬件前提很明确H100Hopper 架构及以上。V100、A100 没有 FP8 硬件单元软件模拟的性能收益不大。NVFP4 与 MXFP4Blackwell 时代的 4-bit 浮点NVIDIA 在 Blackwell 架构B200上引入了 NVFP4——一种 4-bit 浮点格式编码为 E2M12 位指数、1 位尾数。和 INT4 不同NVFP4 是浮点格式带指数位能表示更大范围的值。NVFP4 的关键设计是微块缩放micro-block scaling每 16 个权重共享一个高精度缩放因子粒度比 MXFP4Open Computing Project 的开放标准每 32 个权重共享一个缩放因子更细。粒度越细量化误差越小。据 NVIDIA 官方博客和 Red Hat 2026 年 2 月的测试NVFP4 在大规模模型上接近基线精度特别适合 MoE混合专家模型的推理——MoE 模型的权重矩阵更大、冗余度更高4-bit 量化的容错更好。据 ZeroEntropy 的总结「对于 2026 年 Blackwell 上的大模型推理NVFP4 是默认选择。FP8 是精度敏感任务如推理链较长的 reasoning 模型的降级方案。MXFP4 是跨厂商的开放替代。」1-bit 路线BitNetBitNet 走的是一条完全不同的路——不是量化已有的全精度模型而是从训练开始就用极低精度权重。BitNet b1.58微软研究院2024把每个权重限制为三值{-1, 0, 1}即 1.58 bit因为 log₂(3) ≈ 1.58。一个 7B 模型的权重只需要约 0.8 GB 存储。更关键的是三值权重的乘法可以简化为加减法——不需要乘法器这对 CPU 和专用硬件极其友好。据 Reddit 社区的 CPU 实测BitNet b1.58 模型在 CPU 上的推理速度显著快于同规模的 GGUF Q4 模型。但它有一个根本限制必须从头训练不能把已有的 FP16 模型「压」成 1-bit。这意味着你需要完整的训练数据和算力来重新训练一个模型——成本不低。BitNet a4.8 是后续的扩展把激活值也压到 4-bit进一步降低推理时的内存和计算需求。1-bit 路线在 2026 年仍处于研究和早期验证阶段离大规模生产部署有距离。但它指向了一个清晰的方向如果训练时就用低精度推理侧的收益可以是数量级的。9. 选型指南一张表收束场景推荐方法位宽关键理由GPU 服务器推理A100/H100AWQ4-bitGPU Tensor Core 优化好速度约为 GPTQ 两倍质量同位宽最优GPU 服务器推理H100 长上下文AWQ FP8 KV cache4-bit FP8权重静态压缩 运行时 KV cache 压缩双管齐下本地 CPU / MacGGUF (Q4_K_M 或 Q5_K_M)4/5-bit硬件普适CPU/Metal/GPU 混合推理无门槛本地 GPU消费级显卡GGUF 或 AWQ4-bit显存 8GB 以下选 GGUF Q4_K_M8GB 以上选 AWQ显存紧张想微调QLoRA (NF4)4-bit基座 NF4 冻结 LoRA 训练65B 模型单卡可训极致精度要求FP8 或 W8A8 (SmoothQuant)8-bit损失不到 1%吞吐显著高于 FP16Blackwell (B200) 新集群NVFP44-bit硬件原生支持MoE 模型尤其合适补充两点GPTQ 还能用吗能但已经不是首选。AWQ 在速度和质量上都追平或超过了 GPTQ且社区活跃度更高。如果你已有的部署用的是 GPTQ不必急着迁移新项目直接选 AWQ。EXL2 值得提一嘴。它是一个支持可变位宽的格式可以在同一模型内不同层用不同位宽在显存利用效率上有独特优势。但生态不如 AWQ/GGUF 成熟适合愿意折腾的高级玩家。10. 量化让大模型走进寻常硬件回到开头那个问题几百亿参数的模型凭什么塞进你的显卡答案是取舍。量化用精度换空间和速度而且换得聪明——不是均匀地砍每一刀而是找到那些不敏感的权重多砍、敏感的权重少砍甚至不砍。GPTQ 用 Hessian 矩阵算敏感度AWQ 用激活值找显著通道NF4 用正态分布分位数排列格点——方法不同核心思路一样把有限的位数花在刀刃上。量化不是压缩是取舍。4-bit 是消费级硬件的甜点位——损失可接受收益看得见。8-bit 是「几乎无损」的安全区。再往下走就要靠从头训练BitNet或接受明显的质量折损。这篇是「LLM那些事」系列的拓展篇。系列主线讲的是模型「怎么工作」——从 token 与自回归到注意力与上下文窗口到 embedding、function calling、RAG、MCP。这篇开始聊模型「怎么用起来」——部署、推理、工程化。后面还会聊推理引擎选型、本地部署实操、Agent 工作流编排这些话题关注不迷路。
返回列表