index_new5.html
../../../zaker_core/zaker_tpl_static/wap/tpl_guoji1.html
![]()
本文探讨了在AI领域中,如何通过量化技术,在不牺牲模型性能的前提下,实现向量模型的压缩和优化。文章重点介绍了训练后量化(PTQ)和输出量化感知训练(Output QAT)两种方法,并分析了不同量化等级和缩放策略对模型性能的影响。实验结果表明,输出量化感知训练和非对称量化能有效提升性能,滚动平均缩放法优于静态缩放。这项研究为大规模向量模型的实际应用提供了有价值的参考。
💡量化是压缩神经网络模型的关键技术,通过降低数值精度来减少模型体积,从而加速检索速度并降低存储和内存消耗。
🔍文章对比了训练后量化(PTQ)和输出量化感知训练(Output QAT)两种量化策略。PTQ操作简单,但精度有损失;QAT通过在训练阶段使模型适应量化,能有效缓解性能损失,表现更优。
📊实验结果显示,量化程度直接影响模型性能,4位量化优于二元量化;非对称量化能有效提升性能,仅量化文档的QAT方案性能超越基线。滚动平均缩放法优于静态缩放。
🛠️文章还提到,在Jina Embeddings v4上,8位量化和4位量化之间的性能没有显著差异,可能存在性能阈值。即将推出Jina Embeddings v4的二元量化支持。
原创 Jina AI 2025-07-09 13:35 北京
要量化还是要性能?v4 说:我全都要。

在 AI 领域,我们对模型的期待总是既要、又要、还要:模型要强,速度要快,成本还要低。但实际应用时,高质量的向量表征往往意味着庞大的数据体积,既拖慢检索速度,也推高存储和内存消耗。量化(Quantization)正是破解这一矛盾、实现规模化应用的关键技术。量化是一种常用的神经网络模型压缩技术,本质并不复杂:通过把高精度的小数四舍五入成更粗的整数,主动牺牲一部分精度,换来模型体积的大幅缩减。量化不仅节省了存储和内存,还让向量计算变得更快,显著提升了检索效率。更重要的是,量化作为一种通用的数值优化手段,它不挑数据、不看场景、不依赖特定领域知识,适用于各类模型和应用场景。一般认为,量化总会牺牲精度,有得必有失。但我们发现,通过量化感知训练(Quantization-Aware Training, QAT),可以在压缩体积的同时,最大程度保留模型性能。我们已经将这一技术应用在 jina-embeddings-v4
,为极致空间敏感的场景带来更小、更高效的向量表征。 主流量化方法对比模型量化是提升大模型落地效率的关键工具。结合实际应用背景,目前主流的量化方法大致可以分为四类:1. 训练后量化 (Post-training quantization, PTQ)这种方法最为直接,针对已经训练好的向量模型,直接对输出的浮点数进行取整或缩放处理。模型本身的结构和参数不会发生变化,不需要再进行额外训练。。常用于快速压缩向量体积,操作简单,见效快,但模型本身大小和推理速度不变。2. 输出量化感知训练 (Training for quantized embedding outputs, Output QAT)这种方法的关键在于:让模型在训练阶段就知道输出会被量化。 通过在训练过程中引入量化操作,模型主动适应低精度输出的限制,自动调整参数,使量化后的向量尽量保留原始信息。虽然模型参数会有所调整,但模型权重的精度保持不变,因此模型整体的体积不会缩小,变化的只是输出向量的尺寸。适合对模型结构和推理速度有要求,但希望输出更紧凑的场景。3. 全量化感知训练 (Training for fully quantized models, Full QAT)以一个训练好的高精度模型为起点,先将模型权重降低到目标精度,再针对精度损失进行再训练和微调。最终不仅能获得更小的向量表征,还能压缩模型体积、加速推理。由于涉及权重和结构的全面调整,这种方法对训练资源和工程成本的要求最高。4. 蒸馏 (Distillation)蒸馏是一种以大带小的策略,通过用一个强大的大模型(教师模型)生成大量训练数据,来训练一个专为量化设计、结构更小的新模型(学生模型)。实现模型和向量的双重压缩,性能接近原模型,适合极致压缩和加速场景,但开发周期较长。下表总结了这四种方法的特点:方法 | 向量表征更紧凑? | 需要训练? | 模型被压缩? | 推理速度更快? |
---|
PTQ | ✓ | ❌ | ❌ | ❌ | Output QAT | ✓ | ✓ | ❌ | ❌ | Full QAT | ✓ | ✓ | ✓ | ✓ | 蒸馏 | ✓ | ✓ | ✓ | ✓ | 简单总结一下:四种方法都能实现向量压缩,但除了压缩向量外,还想同时获得更小、更快的模型,则需选择全量化感知训练(Full QAT) 或蒸馏,并承担更高的训练成本。考虑到应用门槛和性价比,本文将聚焦于训练后量化(PTQ)和输出量化感知训练(Output QAT)这两种无需更改模型结构、也不影响推理速度的量化方案。它们能够大幅减小向量体积,在实际场景中应用门槛低,易于落地。实验设置与流程本次实验选择 jina-embeddings-v4
作为基准模型,配备了检索任务专用的 LoRA 适配器。默认状态下,它会生成 2048 维的 FP32(32 位浮点)向量,每个向量占用 8KB 存储空间。我们在 NanoBEIR 基准上,系统性地评估了多种量化级别(8bit、4bit、三元、二元),并分别采用训练后量化(PTQ)和输出向量量化感知训练(Output QAT)两种策略。部分实验还对比了不同的缩放方法(最大最小值与滚动平均缩放)。基线 (Baseline):未经量化的 jina-embeddings-v4
的原始性能。训练后量化,PTQ:仅将模型输出的向量量化为二元向量,而不改动模型本身。输出量化感知训练,Output QAT:在量化输出向量的基础上,进一步微调 LoRA 适配器,以提升量化条件下的检索性能。(注:本次实验均使用该模型的内部测试版,其公开发布版的性能会更高。)量化等级我们测试了以下四种不同粒度的量化等级,它们的压缩效果层层递进:8 位整数 (8-bit integers):将向量值映射到 [-128, 127] 区间,体积压缩 4 倍 (降至 2048 字节)。4 位整数 (4-bit integers):映射到 [-8, 7] 区间,体积压缩 8 倍 (降至 1024 字节)。三元量化 (Trinary Quantization):只保留-1, 0, 1 三个值,体积压缩约 40 倍 (降至约 230 字节)。二元量化 (Binary Quantization):只保留-1 和 1 两个值(代表正负),体积压缩 64 倍 (降至 128 字节)。
不同量化等级带来的向量体积压缩效果缩放 (Scaling)在二元量化中,操作极为直接:每个数值只需判断正负,正数映射为 1,零和负数映射为 -1。
二元量化。所有负值变为-1,其他值变为1。其他量化方式则需要先将原始向量的数据范围(理论上是无穷大)映射到一个有限区间 [min, max],然后再进行取整。我们主要采用了两种区间确定方法:一是直接取每批数据的最大/最小值,二是通过滚动平均动态调整区间。三元量化的规则:大于等于 max 的数值设为 1;小于等于 min 的数值设为 -1;介于 min 和 max 之间的数值归为 0。
三元量化示意图:设定阈值区间,区间内所有数值归零,区间外分别映射为 -1 和 14 位整数量化的规则::大于等于 max 的数值设为 7;小于等于 min 的数值设为 -8;其他数值先用 16 * (v - min) / (max - min) - 8
归一化到 [-8, 7] 区间,再四舍五入到最近的整数。
4位量化示意图:所有数值根据区间归一化并离散到 [-8, 7],边界外分别截断为 -8 和 78 位整数量化的规则:大于等于 max 的数值设为 127;小于等于 min 的数值设为 -128;其他数值使用 256 * (v - min) / (max - min) - 128
归一化到 [-128, 127] 区间,并四舍五入到最近的整数。
8位量化示意图:所有数值映射并离散到 [-128, 127] 区间为了确定缩放边界 max 和 min,我们探索了两种策略:最大最小值缩放 (Min/Max) :我们分批处理数据,并直接采用当前数据批次内的最大和最小向量值作为边界,这种方法容易受到极端离群值的影响。滚动平均缩放 (Rolling averaging over batches) :一种更稳健的方法。它会持续计算多个数据批次的均值和标准差,并基于这些统计值动态设定一个更具代表性的边界(如 max = avg + std, min = avg - std)。这能有效避免单批次内的异常值对整体量化效果造成干扰。QAT 微调 (QAT Fine-Tuning)两种量化策略的实验方法有所不同。对于训练后量化(PTQ),我们冻结原模型,仅对它的输出向量应用前述的量化方法。对于输出量化感知训练(Output QAT),为了能够有效微调,我们采用了直通估计器 (Straight-Through Estimation, STE) 技术。它的核心机制是,在前向传播时对输出进行量化,但在反向传播计算损失时,将量化结果还原为全精度数值,从而用全精度的损失信号来优化模型参数。我们将每种配置都微调了 10000 步,并每隔 500 步保存一个模型检查点(checkpoint)。训练结束后,我们从所有检查点中,选出在 NanoBEIR 基准测试上得分最高的那一个作为最终模型。非对称量化 (Asymmetric Quantization)值得注意的是,PTQ 和 Output QAT 这两种方法,其优化的重点在于减小向量的尺寸,从而节省存储空间并提升检索速度。它们并不会压缩模型本身的体积,也不会加快模型的推理(即向量生成)过程。考虑到在检索场景中,需要长期大量存储的是文档向量,而用户的查询向量则是临时生成的。基于这一点,我们设计并测试了一种非对称量化 (Asymmetric Quantization) 方案:只量化需要海量存储的『文档向量』,而用于即时检索的『查询向量』则保持完整的原始精度。结果我们总计测试了九种实验条件,所有实验配置与最终在 NanoBEIR 基准上的平均得分汇总如下实验条件一览条件名称 | 微调 | 量化等级 | 缩放策略 | 是否量化查询 |
---|
基线 (Baseline) | ❌ | 不适用 | 不适用 | 不适用 | PTQ (查询与文档均量化) | ❌ | 二元 | 不适用 | ✓ | PTQ (仅量化文档) | ❌ | 二元 | 不适用 | ❌ | QAT 二元 | ✓ | 二元 | 不适用 | ✓ | QAT 二元 (仅量化文档) | ✓ | 二元 | 不适用 | ❌ | QAT 三元 | ✓ | 三元 | 滚动平均 | ✓ | QAT 4 位 | ✓ | 4 位 | 滚动平均 | ✓ | QAT 8 位 | ✓ | 8 位 | 滚动平均 | ✓ | QAT 8 位 (Min/Max) | ✓ | 8 位 | Min/Max | ✓ | 在 12 个 NanoBEIR 基准测试中,各条件的平均得分(正确率%)条件名称 | 平均分 | 与基线差异 |
---|
基线 (Baseline) | 60.10 | 不适用 | PTQ 二元 | 58.33 | -1.78 | PTQ 二元 (仅量化文档) | 59.08 | -1.02 | QAT 二元 | 59.22 | -0.89 | QAT 二元 (仅量化文档) | 60.81 | +0.70 | QAT 三元 | 59.49 | -0.62 | QAT 4 位 | 61.73 | +1.62 | QAT 8 位 | 61.67 | +1.56 | QAT 8 位 (Min/Max) | 61.29 | +1.19 | 从实验数据中,我们可以解读出几个清晰的趋势。首先,微调的价值无可替代。 训练后量化(PTQ)与 量化感知训练(Output QAT) 在二元量化条件下,唯一差异是是否微调,但 QAT 得分明显更高;即便只量化文档,QAT 依然带来近 2% 的提升,充分说明量化感知训练的实际价值。其次,量化精度与表现成正比。 精度越低,压缩越激进,性能损失越大。4 位优于三元,三元优于二元。但值得注意的是,8 位与 4 位之间几乎没有差别,或许说明量化存在性能阈值。再次,非对称量化能有效提升性能。 在二元量化中,仅量化文档的 QAT 方案性能达到了 60.81 分,成功超越了基线。这证明了在查询侧保留完整信息的有效性。最后,动态缩放优于静态缩放。滚动平均法在信息保留上优于简单 min/max,带来了更优的整体表现。结论量化技术大幅压缩了向量体积,加快检索速度,为实际应用带来直接的运营优势。我们的实验显示,简单的训练后量化(PTQ) 操作简单但有精度损失;输出量化感知训练(Output QAT)在训练阶段让模型主动适应量化,能有效缓解性能损失,表现更优。整体来看,量化程度直接影响着模型性能,毕竟这项技术的基础就是降低数值精度。所以量化越温和,性能越好,比如 4 位优于二元量化;但令人意外的是,在 Jina Embeddings v4 上,8 位量化和 4 位量化之间的性能没有显著差异。这或许意味着,精度存在一个阈值:在跨过某个临界点之前,进一步放宽或收紧量化程度,对模型性能的影响可能微乎其微。此外,缩放策略同样关键。实验表明,滚动平均缩放法明显优于固定的最大最小值缩放法。 更能适应数据分布,值得深入探索。总之,量化能帮您用更低成本,发掘向量模型的更大价值。本文虽然未能覆盖所有量化选项,但深入探讨的这两种方法都容易实现,且收益实在。我们对量化技术的探索不会止步,jina-embeddings-v4
的二元量化支持也即将推出,敬请期待。






阅读原文
跳转微信打开