现状
目前在 crossing 中支持两大类型的评测,一类是基于 lm-evaluation-harness prefill-like task,比如 MMLU 等测试;第二类是基于 bigcode-evaluation-harness decode-like task,比如 humaneval 等测试。
目前的测试需求主要是两种,一种是对齐 crossing 在 fp16 下和 huggingface transformers 的精度,确保框架推理的正确性;第二种需求是评估各种量化方法对模型的影响。对于第一种需求,采用目前的测试方案已经可以满足要求,但是对于第二种需求,目前存在的问题是 MMLU 在大多情况都不能准确反映量化模型的掉点情况,而 humaneval 的评估维度是代码,对于非 code 模型评估不准确,而且对于模型的其他能力评估是缺失的。
除了评测指标之外,对于量化模型还需要评测更多的信息,比如 lm_head
的量化对模型精度的损失,各种 size 的模型对低 bit 量化的容忍度等等。最后还希望整个评估流程能够像 llm-inference-benchmark 一样实现自动化,减轻人工 cost。
评估指标选择
目前市面上的 eval framework 非常多,而且不断有新的 eval task 出现,我们的需求不是去覆盖市面上的所有 eval tasks,这个本身也不现实,而且没有意义。
我们的目标是希望找到一个最小 eval task 集合,使得他能够覆盖 llm 能力的各个维度,同时尽可能小可以帮助我们更快地跑出 eval 的结果。
从大的方面来总结,llm 的能力可以分为下面几个方面:
- 模型学到的知识;
- 模型的推理能力;
- 模型的代码能力;
- 模型的数学能力;
需要对每种能力都找到 1-2 个 eval task,这样能比较全面的判断模型在量化前后的能力水平。
通过调研发现 openai 最近 release simple-evals,其中包含了下面 6 个 task:
- MMLU: Measuring Massive Multitask Language Understanding, reference: https://arxiv.org/abs/2009.03300, https://github.com/hendrycks/test, MIT License
- MATH: Measuring Mathematical Problem Solving With the MATH Dataset, reference: https://arxiv.org/abs/2103.03874, https://github.com/hendrycks/math, MIT License
- GPQA: A Graduate-Level Google-Proof Q&A Benchmark, reference: https://arxiv.org/abs/2311.12022, https://github.com/idavidrein/gpqa/, MIT License
- DROP: A Reading Comprehension Benchmark Requiring Discrete Reasoning Over Paragraphs, reference: https://arxiv.org/abs/1903.00161, https://allenai.org/data/drop, Apache License 2.0
- MGSM: Multilingual Grade School Math Benchmark (MGSM), Language Models are Multilingual Chain-of-Thought Reasoners, reference: https://arxiv.org/abs/2210.03057, https://github.com/google-research/url-nlp, Creative Commons Attribution 4.0 International Public License (CC-BY)
- HumanEval: Evaluating Large Language Models Trained on Code, reference https://arxiv.org/abs/2107.03374, https://github.com/openai/human-eval, MIT License
这 6 个 task 能比较好的测试到上面提到的模型的能力,MMLU 能测试模型的知识,DROP 测试模型的 reasoning,HumanEval 测试模型的代码能力,剩下 MATH,GPQA 和 MGSM 测试模型的数学以及本科水平的解决问题能力。
后续评估 TODO
后续的评估主要分成三个 stage:
- 第一个 stage 是完成 simple-eval 在 crossing 中的集成和自动化流程;
- 第二个 stage 是完成社区各种量化模型的评测,目前 crossing 只支持 GPTQ 格式的模型 load,还需要支持 AWQ 的格式 load,以及测试 70B 规模往上的模型在各种量化方案的性能情况;
- 第三个 stage 是测试社区不支持的量化模型的评测,比如 FP8 和 W8A8 等方案;