Cohere最新论文:量化如何影响大模型精度?
Cohere最新论文:量化如何影响大模型精度?
量化是一种广泛采用的技术,用于降低成本并提高LLMs的推理速度,但现有的量化研究主要只评估了英语的表现。目前还没有研究量化对现代LLMs预期的多语言生成能力的影响。本文将探讨量化如何影响多语言大模型的精度。
论文出发点
量化是一种广泛采用的技术,用于降低成本并提高LLMs的推理速度,但现有的量化研究主要只评估了英语的表现。目前还没有研究量化对现代LLMs预期的多语言生成能力的影响。论文的关注点是量化和稀疏性等压缩技术可能会放大对长尾特征的不同处理,这可能对多语言LLMs中的代表性不足的语言产生影响。
量化方法
量化是一种压缩技术,它将神经网络的权重和可能的激活函数降低到较低位宽的表示形式,以减少模型的内存占用和加速推理过程。
量化可以通过两种方式进行:
- 量化感知训练(Quantization Aware Training, QAT):在低精度下训练模型。
- 后训练量化(Post Training Quantization, PTQ):在最终模型权重上进行量化,不需要梯度更新,训练在更高精度下完成,然后权重/激活被量化。
由于在16位浮点以下精度训练LLMs存在困难,PTQ因其简单性和可扩展性而非常受欢迎。PTQ可以进一步分类为:
- 权重量化(Weight-Only Quantization):权重矩阵在离线时被量化,并且在推理时从内存中加载压缩后的矩阵。量化的权重矩阵比FP16有更小的内存占用,可以减少计算量,并在内存受限的情况下实现更快的推理。
- 权重和激活量化(Weight-and-Activation Quantization):除了权重外,模型的激活也被量化。与权重量化不同,激活的量化在运行时进行。可以使用一小部分训练或验证数据来计算各种激活的量化尺度(静态缩放),但这种方法通常会导致较大的性能下降。为了最小化性能下降,通常更倾向于动态地(动态缩放)为每个输入实时计算量化尺度因子。
在量化过程中,使用更高级的权重量化方法(如GPTQ或AWQ)可以在4位或更低位宽时获得更好的下游性能。同时,量化激活可以利用现代GPU中的专用低精度矩阵乘法硬件,从而实现高达2倍的吞吐量提升。
实验过程
论文评估了Command R+1、Command R2 和 Aya 23模型,它们代表了最新的多语言大型语言模型(LLMs)。Command 模型的参数量分别为1030 亿和 35 亿,而 Aya 23 模型的参数量分别为 35 亿和 8 亿。
量化工具:
- 我们使用了 bitsandbytes 库,这是一个用于量化和优化 PyTorch 模型的工具,可以从 GitHub 上获取。
评估方法
评估涉及10种主要语言:阿拉伯语、法语、德语、英语、西班牙语、意大利语、葡萄牙语、韩语、日语和中文。
评估方法:
对量化模型与原始的FP16版本进行比较,主要报告相对于FP16基线的相对退化百分比:
评估任务:
- 多语言MMLU (mMMLU) :这是一个多领域的多项选择题问答任务,包含超过14,000个问题。使用Google Translate将MMLU翻译成9种语言,并称这个版本为mMMLU。在5次尝试的设置中测量准确性。
- MGSM (Shi et al., 2023) :这是一个从GSM8K手动翻译而来的生成性数学评估集。对于目标语言,它适用于德语、西班牙语、法语、日语和中文。针对每种语言的250个测试项目报告准确性。
- FLORES-200 (Costa-jussà et al., 2022b) :这是一个知名的多路平行测试集,用于评估翻译能力。将文本翻译成英语,并从英语翻译出来,报告SacreBLEU分数。
- 语言混淆测试 (Language Confusion) (Marchisio et al., 2024) :这些测试集评估模型以用户期望的语言作出响应的能力。在单语设置中,提示是用语言l,模型必须用语言l响应。例如,用户用阿拉伯语提示,暗示需要阿拉伯语响应。在跨语言变体中,提示用英语提供,但用户请求用不同的语言l'输出。
- fastText (Joulin et al., 2016) :使用fastText进行语言识别,报告行级通过率(LPR),即所有行在响应中都是用户期望的语言的响应的百分比。
实验结果
按量化水平
不同量化水平如何影响下游性能?
Command R和R+模型的结果显示,更大的量化级别导致更大的性能退化:W8为-0.2%,W8A8为-0.8%,103B模型整体为-0.9%。但35B模型的W8A8在翻译和语言混淆评估上表现更好,总体略有提升。
按任务
量化是否对不同任务有不同的影响?
- 数学推理(MGSM)受量化影响显著。35B W4-g模型平均性能下降13.1%,中文更是下降17.3%。
- mMMLU和Belebele在Aya 23模型上受W4量化的影响最大。
按语言
量化是否对不同语言有不同的影响?
W4-g在35B Command模型上对所有语言都造成显著退化,尤其是非拉丁/非印欧语言(¬Ltn/IE)如中文、日文和韩文。
按模型大小
模型大小和量化水平如何相互作用?
在极端量化(W4/W4-g)下,较小模型更敏感。103B和35B Command模型的W4-g变体相对于FP16的平均性能分别下降了-0.9%和-2.8%。
按量化策略
技术如SmoothQuant和组内缩放如何影响下游性能?
使用SmoothQuant和组内缩放策略的103B Command模型变体显示,组内缩放显著优于列内W4量化,尤其在MGSM上为Ltn/IE语言恢复了超过6个百分点的性能损失。
人类评估
人类评估结果显示,随着量化级别的增加,评估语言在内部测试集上的平均性能稳步下降,其中法语在W4-g上下降最严重,为-16.6%。有趣的是,W8对日文的初始性能提升了7.4%,但在更严重的量化下下降到-16.0%。
实验结果
本研究检验了量化技术对不同语言的影响,通过在20多种语言中对多达1030亿参数的最新多语言大型语言模型(LLMs)进行深入研究,使用了自动度量、LLM作为评判、RM作为评判和人类评估。
研究发现:
- 量化造成的损害比信息丢失比例显示的要严重得多:即使自动度量没有观察到,人类评估者也能注意到。
- 量化对不同语言的影响程度不同,非拉丁字母语言在自动基准测试中受到的影响更大。
- 具有挑战性的任务性能下降迅速且严重:数学性能显著降低,人类评估的真实挑战性提示的响应也是如此。