Back to blog
    移动端量化指南: Q4、Q5 和 Q8 在真实设备上的表现
    quantizationGGUFmobile AIQ4performancellama.cppsegment:mobile-builder

    移动端量化指南: Q4、Q5 和 Q8 在真实设备上的表现

    GGUF 量化级别移动端部署实用指南。Q4、Q5 和 Q8 如何影响 iPhone 和 Android 设备上的模型大小、速度、质量和内存使用。

    EErtas Team·

    量化是让 LLM 能在手机上运行的关键。一个 3B 参数模型在全精度(FP16)下占 6GB。量化到 Q4 后只需 1.7GB。模型大致相同,只是存储效率更高。

    但"大致相同"隐藏了重要的细微差别。不同的量化级别在大小和速度与质量之间进行权衡。为你的移动应用选择正确的级别需要了解这些在真实硬件上的折衷。

    量化做了什么

    LLM 权重以数字形式存储。全精度使用每个权重 16 位(FP16)。量化减少每个权重的位数,从而缩小模型:

    格式每权重位数3B 模型大小相对质量
    FP1616~6GB100%(基准)
    Q8_08~3.2GB~99.5%
    Q6_K6~2.5GB~99%
    Q5_K_M5~2.1GB~98.5%
    Q4_K_M4~1.7GB~97.5%
    Q4_04~1.6GB~96%
    Q3_K_M3~1.4GB~93%
    Q2_K2~1.1GB~85%

    "_K_M" 后缀表示 k-quant 中等质量,这是 llama.cpp 中的一种量化方法,根据各层的重要性对不同层应用不同的位宽。这比均匀量化更好地保留了质量。

    最佳选择: Q4_K_M

    对于移动端部署, Q4_K_M 是标准选择。原因如下:

    大小: 比 FP16 大约小 4 倍。3B 模型只需 1.7GB,完全在移动应用的存储预算之内。

    质量: 约为 FP16 质量的 97.5%,在大多数任务上退化几乎不可测量。对于模型经过微调的领域特定任务,微调数据会补偿任何量化损失。

    速度: 更小的权重意味着推理期间使用更少的内存带宽。Q4 模型通常比更高精度版本运行更快,因为内存瓶颈减小了。

    兼容性: 1B 适配 4GB+ RAM 设备, 3B 适配 6GB+ RAM 设备。覆盖了绝大多数活跃智能手机。

    量化级别在真实设备上的对比

    3B 模型, iPhone 15 Pro (A17 Pro, 8GB RAM)

    量化大小Token/秒内存使用质量(困惑度)
    Q8_03.2GB14-184.0GB8.12
    Q6_K2.5GB16-203.2GB8.18
    Q5_K_M2.1GB17-222.7GB8.25
    Q4_K_M1.7GB18-252.2GB8.38
    Q4_01.6GB19-262.1GB8.52
    Q3_K_M1.4GB20-271.9GB9.05
    Q2_K1.1GB22-291.5GB11.4

    困惑度越低越好。Q4_K_M 到 Q8_0 之间的质量范围很窄(8.12-8.38)。Q4 以下,质量明显下降。Q3 以下,退化显著。

    3B 模型, Galaxy S24 (骁龙 8 Gen 3, 8GB RAM)

    量化大小Token/秒 (Vulkan)内存使用
    Q8_03.2GB16-204.0GB
    Q5_K_M2.1GB20-252.7GB
    Q4_K_M1.7GB22-282.2GB
    Q3_K_M1.4GB24-301.9GB

    1B 模型, iPhone 14 (A15, 6GB RAM)

    量化大小Token/秒内存使用
    Q8_01.1GB20-261.4GB
    Q5_K_M750MB23-301.0GB
    Q4_K_M600MB25-32800MB
    Q3_K_M500MB27-34700MB

    何时使用各级别

    Q4_K_M(默认选择)

    除非有特定理由,否则使用此级别。大小、速度和质量之间的最佳整体平衡。移动端部署的标准。

    • 适用于: 所有发布 GGUF 模型的移动应用
    • 设备要求: 4GB+(1B)或 6GB+(3B)

    Q5_K_M(质量优先)

    当质量至关重要且你的目标设备有空间容纳更大文件时使用。相比 Q4_K_M 的质量提升很小但在需要精确措辞的任务上可以测量到。

    • 适用于: 医疗、法律或金融应用,词语级准确性很重要
    • 设备要求: 6GB+(1B)或 8GB+(3B)
    • 大小增加: 比 Q4_K_M 增加约 25%

    Q8_0(最高质量)

    仅在 RAM 充裕的旗舰设备上使用。质量几乎与 FP16 相同。速度较慢,内存使用较高。

    • 适用于: 测试和基准测试,非典型生产部署
    • 设备要求: 8GB+(1B)或 12GB+(3B)
    • 大小增加: 比 Q4_K_M 增加约 90%

    Q3_K_M(大小优先)

    当你需要将模型挤进受限设备时使用。质量明显下降,但对于简单任务(分类、是/否、短回答),可能是可接受的。

    • 适用于: 入门级设备,或在通常只能放 1B Q4 的空间放入 3B 模型
    • 质量风险: 在细微任务上有明显退化
    • 大小节省: 比 Q4_K_M 减少约 18%

    Q2_K(不推荐)

    严重的质量退化。模型经常生成不连贯或不正确的输出。不适合生产使用。

    微调与量化

    微调在全精度(FP16 或 BF16)下进行。量化在训练后作为导出步骤应用。工作流程:

    1. 在你的训练数据上使用 LoRA 微调模型(全精度)
    2. 将 LoRA 适配器合并到基础模型中
    3. 按目标级别量化为 GGUF(大多数情况下使用 Q4_K_M)
    4. 在你的评估集上测试量化后的模型

    Ertas 等平台端到端处理此流程。你上传训练数据,选择基础模型,训练,然后直接以你选择的量化级别导出为 GGUF。

    量化对微调模型影响更大吗?

    略微。微调后的模型在权重中打包了更多信息(领域特定知识)。激进量化(Q3 及以下)可能会丢失部分特定知识。

    实际中, Q4_K_M 很好地保留了微调后的准确性。在领域特定基准上, Q4_K_M 和 FP16 之间的质量差异通常不到 2 个百分点。Q3_K_M 可能显示 3-5 个点的退化。

    实用建议

    1. 默认选择 Q4_K_M。 它成为标准是有原因的。先用此级别测试。
    2. 先微调再优化量化。 微调后的 Q4 模型在领域任务上优于未调优的 Q8 模型。
    3. 在你的任务上测试,而非通用基准。 困惑度是代理指标。真正重要的是你的模型在你选择的量化级别下,在你特定评估集上的准确性。
    4. 每个模型大小只提供一个量化级别。 不要让用户在 Q4 和 Q5 之间选择。发布 Q4_K_M 以实现广泛兼容。如果你同时支持 1B 和 3B,那就有足够的选择性了。
    5. 测量真实场景性能。 在量化后的模型上运行你的评估套件。如果准确率与 FP16 相差 2% 以内,就可以发布。

    Ship AI that runs on your users' devices.

    Early bird pricing starts at $14.50/mo — locked in for life. Plans for builders and agencies.

    Ship AI that runs on your users' devices.

    Early bird pricing starts at $14.50/mo — locked in for life. Plans for builders and agencies.

    Keep reading