原文:
https://zhuanlan.zhihu.com/p/697297550
前面在读各个量化文章时,一直有一个困惑,就是所有的量化方法都只使用一个 ppl,也就是困惑度来评价量化方法的性能损耗,我一直在想这全面吗?
而正好看到这篇论文,也是和作者交流时提到的:A Comprehensive Evaluation of Quantization Strategies for Large Language Models :http://arxiv.org/abs/2402.16775,作者主要来自
小米
和天津大学。类似的问题暂时见到的还少,所以这次就不多篇文章一起读了。
作者的出发点是这样的,当前量化研究一般都是在预训练模型上做的,但相关工作对量化对指令微调后的 LLMs 的影响,以及量化 LLMs 的困惑度(perplexity)与其他基准测试性能之间的关系尚不清楚。所以这篇文章提出了一个结构化的评估框架,包括三个关键维度:
知识与容量(Knowledge & Capacity)、一致性(Alignment)和效率(Efficiency)
,并进行了广泛的实验,涵盖了十个不同的基准测试。测试模型主要是 Qwen7B、14B、72B 等一个系列的模型。主要关注后训练量化(PTQ),选择了三种典型的量化方法,包括 LLM.int8()、GPTQ 和 SpQR。
结论是,
4 位量化(4-bit quantization)的 LLMs 能够保持与非量化模型相当的性能,量化的 LLMs 在参数规模较大时,性能优于参数规模较小的非量化LLMs
,
困惑度可以作为量化 LLMs 在大多数基准测试中的代理指标
。
这篇文章的逻辑很简洁。对比的内容也算是有广度和深度,不过在大模型技术和开源项目井喷的大背景下,会给读者一种“
只有这么几个模型只有这么几个方法太不过瘾了
”的感觉,但是我们要看到,本文对于评价指标体系的深入,尤其是在量化这个分支任务上的评价体系的探讨,确实是领先的,在前面读到很多量化的论文,都还是相对忽略了这个问题。
之前我在 如何通过能力评测促进大模型发展?(https://www.zhihu.com/question/652499210/answer/3464025339) 中写过一个关于评测标准的介绍。本文中也会区分到测试集、测试标准。
本文中使用测试集的列表有:
-
MMLU (Massive Multitask Language Understanding)
: 用于评估模型在
多种学科领域
的零样本和少样本学习能力。
-
C-EVAL
: 专为中文语境设计的评估套件,涵盖从
人文学科到科学与工程
的多个领域。
-
FLORES-200
: 用于
机器翻译
的高质量基准,涵盖204种语言。
-
CNN/DailyMail
: 用于评估抽象
多句摘要生成
的资源。
-
XSum
: 用于评估
单文档摘要生成
的基准。
-
GSM8K (Grade School Math)
: 包含8500个小学数学问题,用于评估模型的多步数学推理能力。
-
SNLI (Stanford Natural Language Inference)
: 用于训练和评估机器学习模型在自然语言推理任务上的性能。
-
FollowBench
: 专注于评估LLMs遵循各种细粒度约束的
指令遵循能力
。
-
TruthfulQA
: 用于
评估LLMs的真相性,包含多个类别的问题
。
-
BBQ (Bias Benchmark for Question Answering)
: 用于评估LLMs在问答任务中的社会偏见。
评价标准则有,其实除了 memory 和 speed 之外也就是上面几个测试集上独立的评测标准:
-
Average Accuracy
,代表了LLMs在MMLU 、C-EVAL 、GSM8K 、SNLI 和 TruthfulQA 基准测试中的平均准确率。
-
Average BLEU
,表示在 FLORES-200 基准测试上中文到英文和英文到中文翻译的
平均BLEU
得分。
-
Average ROUGE-1/ROUGE-2/ROUGE-3
,显示了在 XSum 和 CNN/DailyMail 基准测试上的
平均 ROUGE-1、ROUGE-2和ROUGE-L得分
。
-
Average HSR/SSR/CSL
,代表了在 FollowBench 基准测试上五个难度级别上的
平均硬满足率(HSR)、平均软满足率(SSR)以及五个约束条件下的平均一致性满足水平(CSL)
。
-
Average Bias Score
,显示为x/y,其中x和y分别代表在BBQ基准测试中模糊和明确情境下跨多个类别的
平均偏见得分
。
-
Average Perplexity
,表示在WikiText2 、C4 和 PTB 上的
平均困惑度
。
-
Memory
,指的是在推理过程中,当输入包含 256 个token且输出包含 512 个token时消耗的内存(以GB为单位)。