赞
踩
这里是 【C-Eval 大语言模型评测基准- 用 LM Evaluation Harness + vLLM 跑起来】 的笔记哈。
以下是中国关于{科目}考试的单项选择题,请选出其中的正确答案。 {题目1} A. {选项A} B. {选项B} C. {选项C} D. {选项D} 答案:A [k-shot demo, note that k is 0 in the zero-shot case] {测试题目} A. {选项A} B. {选项B} C. {选项C} D. {选项D} 答案:
以下是中国关于{科目}考试的单项选择题,请选出其中的正确答案。 {题目1} A. {选项A} B. {选项B} C. {选项C} D. {选项D} 答案:让我们一步一步思考, 1. {解析过程步骤1} 2. {解析过程步骤2} 3. {解析过程步骤3} 所以答案是A。 [k-shot demo, note that k is 0 in the zero-shot case] {测试题目} A. {选项A} B. {选项B} C. {选项C} D. {选项D} 答案:让我们一步一步思考, 1.
下面我将介绍如何使用 lm evaluation harness 跑 C-Eval 的基准测试。有关 vllm 的安装、模型的准备这里就不再赘述了,可以参考之前的文章 只需 24G 显存,用 vllm 跑起来 Yi-34B 中英双语大模型 。
安装 lm evaluation harness
git clone https://github.com/EleutherAI/lm-evaluation-harness
cd lm-evaluation-harness
pip install -e .
查看支持的所有的任务
lm-eval --tasks list
lm evaluation harness 会自动从 huggingface 下载数据,但考虑到国内的网络环境,可以先手动下载数据
pip install huggingface_hub
huggingface-cli download ceval/ceval-exam --repo-type dataset
然后我们执行以下命令用 vllm 的方式去加载模型并执行相应的测评
model_args
就是 vllm 执行所需要的参数,原来 vllm 需要什么参数这里就要填写什么参数tasks
使用 ceval-valid
数据集batch_size
如果使用的是 24G 显存的话,设置为 1,如果是更大的显存,可以设置为 autooutput_path
就是输出结果的路径log_samples
就把执行的过程都记录下来,包括全部的提示词和答案lm_eval --model vllm \
--model_args pretrained=/root/autodl-tmp/01ai/Yi-34B-Chat-4bits,dtype=float16,max_model_len=2048,quantization=awq \
--tasks ceval-valid \
--batch_size 1 \
--output_path c-eval-result \
--log_samples
lm_eval --model vllm \
--model_args pretrained=/root/autodl-tmp/01ai/Yi-34B-Chat-4bits,dtype=float16,max_model_len=2048,quantization=awq \
--tasks ceval-valid \
--batch_size auto \
--output_path c-eval-result \
--log_samples
注意 C-Eval 的评测考虑上下文比较小的场景,2048 的上下文对于 answer only 是够用的,但是对于 chain of thought 的情况就比较难说了,论文里有做更多解释,这里我们先不展开了。
这里评测是是 valid 数据集 1300 多道题目,我这里 A40 大概跑了 20 分钟的样子,作为一个参考。
Yi-34B-Chat-Int4 在 C-Eval 的 valid 数据集获得了一个 78% 的准确率。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。