合并、量化与导出
前置知识点
一句话定义
导出流水线把训练产物变成部署物:adapter 按 fp32 合并回基座(避免精度损失),再按部署目标选量化格式——GPU 服务用 AWQ/GPTQ,端侧与 Mac 用 GGUF。
为什么重要
训练完成不等于交付完成。「合并后效果掉了」「量化后变笨」「端侧跑不起来」都发生在这最后一公里。格式与量化方案选错,轻则返工重导,重则整个部署架构推翻。
前置知识
kp-009 的合并原理与 fp32 合并纪律;kp-007 的量化存储与计算分离思想。
核心概念
- 合并(merge):W′ = W₀ + (α/r)·BA,产出独立完整模型(操作见 kp-009)。
- AWQ:激活感知量化——按激活分布找出「重要通道」保持高精度,4-bit 下质量保留好,GPU 推理快。
- GPTQ:基于二阶信息的训练后量化,逐层误差补偿,GPU 部署常用,需要校准集。
- GGUF:llama.cpp 生态格式,支持 CPU/Mac/端侧,Q4_K_M 等混合精度档位兼顾体积与质量。
- 校准集:量化时用于统计权重重要性的代表性样本(几百条领域数据为佳)。
原理与机制
选型决策树:部署在 NVIDIA GPU 服务 → AWQ(质量优先)或 GPTQ;部署在 Mac/CPU/手机/边缘设备 → GGUF(Q4_K_M 起步,体积约为 fp16 的 1/4);显存极度紧张的多 LoRA 服务 → 不合并,直接用 vLLM 的 LoRA 支持(kp-029)。量化的质量规律:4-bit 训练后量化(PTQ)在大多数任务上损失可控(1-2 个点内),但小模型(<3B)与高难度推理任务上损失放大,导出后必须重跑评测验收(kp-025 的体系照用)。
图示
adapter ─fp32合并─► 合并模型(BF16) ─┬─► AWQ/GPTQ 4bit ─► vLLM GPU服务
└─► GGUF Q4_K_M ─► llama.cpp / Mac / 端侧
验收: 每种导出格式都重跑私有评测, 与合并模型对照直观类比
合并是把补丁烧进系统做成定制镜像;量化是压缩打包——AWQ 像知道哪些文件常用而保留高清的智能压缩,GGUF 像通用的 zip(跨平台谁都解得开),GPTQ 像按文件相关性做误差补偿的高级压缩。
实例或案例
7B 客服模型的导出对照(同评测集 300 题):合并 BF16 → 格式遵从 95.3%;AWQ 4-bit → 94.9%(无损感);GPTQ 4-bit(随机校准集)→ 92.1%(校准集换成领域数据后回升到 94.7%);GGUF Q4_K_M → 94.5%。结论:校准集质量影响 GPTQ 一到两个点,所有格式导出后必须重跑评测,不能想当然。
操作步骤
- fp32 合并(kp-009 的代码),产出合并模型并归档为「黄金基线」。
- GPU 目标:用 llm-compressor/autoawq 做 AWQ 4-bit,校准集取 256-512 条领域样本;或 GPTQ 校准同源。
- 端侧目标:convert_hf_to_gguf.py 转 GGUF → llama-quantize 生成 Q4_K_M(保留 Q8 做对照)。
- 每种导出物重跑私有评测,与黄金基线对照,跌幅超阈值(如 2 点)即换方案或调档位。
- 交付物三件套:权重文件 + tokenizer/config + 模型卡(训练数据版本、配置、评测分数、许可声明)。
排错清单
- 合并后效果下降:fp32 合并纪律(kp-009);核对 α/r 与训练配置一致。
- 量化后明显变笨:换校准集(领域真实分布);4-bit 不行试 8-bit;小模型考虑不量化。
- GGUF 转换报错:架构支持问题,确认 llama.cpp 版本覆盖该模型家族。
- 端侧加载 OOM:降档位(Q4_K_M → Q3_K_M)或换更小基座,注意上下文长度也占内存。
- 导出物在服务端 tokenize 不一致:tokenizer/config 必须与训练时同源同版。
常见误区
- 量化免费:4-bit 通常可控,但「可控」要用评测证明,不是信仰。
- 校准集随便取:随机网页文本做校准的 GPTQ 可以差两个点,校准集要取目标领域分布。
- 只导一种格式:交付前用黄金基线对照多格式,为未来部署变化留好档案。
与其他知识点的关系
合并的原理与多 LoRA 备选见 kp-009;QLoRA 的训练侧量化见 kp-007;导出物如何服务化见 kp-029;精度问题的数值基础见 kp-018。
延伸阅读
Lin et al. 2023《AWQ: Activation-aware Weight Quantization for LLM Compression and Acceleration》;Frantar et al. 2022《GPTQ: Accurate Post-Training Quantization for Generative Pre-trained Transformers》。
自测题
- 合并为什么要在 fp32 下做?
答:LoRA 增量远小于基座权重,低精度相加的舍入误差会吞掉增量,fp32 合并后再转目标精度才不掉点。
- GPU 服务与 Mac 端侧分别选什么格式?
答:GPU 服务选 AWQ(质量优先)或 GPTQ;Mac/CPU/端侧选 GGUF(Q4_K_M 起步)。
- 为什么每种导出格式都要重跑评测?
答:量化损失随模型、任务、校准集变化(案例中 GPTQ 因校准集差两个点),只有对照黄金基线的评测能证明导出物合格。
相关知识点
来源
- Lin et al. 2023《AWQ: Activation-aware Weight Quantization for LLM Compression and Acceleration》
- Frantar et al. 2022《GPTQ: Accurate Post-Training Quantization for Generative Pre-trained Transformers》
基于模型知识整理,建议按需核对原文。