N14 / 41 · Quant Lab
拖动位宽看 int4 如何映射浮点权重,再按参数量、上下文与并发拆解 显存估算:权重、KV 缓存、激活预留一目了然。
全部结果为理论估算,不含算子 workspace、内存碎片与 CUDA context;部署请以框架实测与 nvidia-smi 为准。
把一组示例权重映射到整数格点,误差随位宽变化;公式为可复算的标准量化定义。
| 原始 x | 量化 q | 反量化 | 误差 |
|---|
示例值固定为 [-2.3, -1.1, -0.4, 0.2, 0.9, 1.7, 2.8],便于逐档对比;真实量化通常按通道或分组统计 scale,并配合零点与裁剪,误差分布会不同。
每参数字节数与 7B 权重的理论体积,按当前展示的精度口径计算。
| 精度 | 位宽 | 字节 / 参数 | 7B 权重体积 | 常见用途 |
|---|
每行一条配置:名称, 参数量B, 位宽, 上下文, 并发;结构参数沿用上方预设。
| 配置 | 权重 GB | KV GB | 预留 GB | 合计 GB | 单卡判定 | 校验 |
|---|
围绕 int4、显存估算与量化精度损失整理,数值口径写在页面里。
量化把权重从 16 位浮点(fp16,每个参数 2 字节)映射到 4 位整数(每个参数约 0.5 字节),因此 7B 模型的权重从约 14 GB 降到约 3.5 GB。本页图解用对称量化公式 scale = max(|x|) / (2^(b-1) − 1)、q = clamp(round(x / scale)) 演示映射与误差;实际 GGUF / GPTQ / AWQ 还会做分组与零点优化,数值不会完全一致。
除权重外还要算 KV 缓存与运行时预留。以 Llama 3 8B 为例(32 层、8 个 KV 头、head_dim 128、KV 用 fp16),每个 token 的 KV 约为 2 × 32 × 8 × 128 × 2 = 131072 字节,即 128 KB;4096 上下文单并发约 0.5 GB,8 并发约 4 GB。本页按「参数量 × 位宽 / 8 + KV + 预留」估算,默认预设的结构参数请与模型 config.json 核对。
位宽从 8 降到 4,权重体积再减半,但可表示的离散取值从 256 个变成 16 个,量化误差明显增大,长文本推理与小模型上更容易出现质量下降。本页「精度对比表」列出 fp32、fp16、bf16、int8、int4、int3、int2 的每参数字节数与 7B 权重体积,图解区可拖动位宽滑杆直接比较误差。
本页是理论估算:权重按参数量与位宽线性计算,KV 缓存按层数、KV 头数、head_dim、上下文与并发计算,激活与运行时用经验预留。实际框架还会受算子workspace、内存碎片、CUDA context、KV 缓存量化、PagedAttention 与批处理调度影响。请以 nvidia-smi 实测为准,部署时留出余量。
本页图解展示的是示例数值的映射误差(最大绝对误差、均方误差),它说明位宽与误差的关系,不能预测某个模型在具体任务上的表现。评估精度损失应跑困惑度与业务评测集;页面内所有数值均标注为估算,不替代实测。