-
Notifications
You must be signed in to change notification settings - Fork 43
longbench_zh
LongBench是一个多任务、中英双语、针对大语言模型长文本理解能力的评测基准,覆盖了多个长文本应用场景。本项目在LongBench上测试了相关模型效果。
按照官方的requirements.txt
配置环境,相关依赖复制如下:
datasets
tqdm
rouge
jieba
fuzzywuzzy
einops
torch>=2.0.1
transformers==4.37.2
无需单独下载数据。预测脚本会自动从 🤗 Datasets下载所需数据。
运行以下脚本进行推理:
model_path=path/to/chinese_mixtral
output_path=path/to/output_dir
data_class=zh
with_inst="false"
max_length=32256
cd scripts/longbench
python pred_mixtral.py \
--model_path ${model_path} \
--predict_on ${data_class} \
--output_dir ${output_dir} \
--with_inst ${with_inst} \
--max_length ${max_length} \
--load_in_4bit \
--use_flash_attention_2 \
-
--model_path ${model_path}
:待评测模型所在目录(完整的Chinese-Mixtral或Chinese-Mixtral-Instruct模型,非LoRA) -
--predict_on {data_class}
: 指定待预测的任务,可以为en
,zh
,code
,或它们的组合,以逗号分隔,如en,zh,code
-
--output_dir ${output_dir}
:评测结果的输出目录 -
--max_length ${max_length}
:指令的最大长度。注意此长度不包括system prompt以及任务相关prompt在内 -
--with_inst ${with_inst}
:在构建模型的输入指令时是否使用Chinese-Mixtral-Instruct的prompt及模版:-
true
:所有任务上都使用prompt及模版 -
false
:所有任务上都不使用prompt及模版 -
auto
:只在部分任务上使用prompt及模版(LongBench官方的策略)
建议设置为
false
-
-
--gpus ${gpus}
:如需指定特定的GPU,请使用此参数,如0,1
-
--e
:在LongBench-E数据集上进行预测。参考LongBench官方文档以了解LongBench-E的详细说明。 -
--load_in_4bit
:以4bit量化形式加载模型 -
--use_flash_attention_2
:使用flash-attn2加速推理,否则使用SDPA加速
待模型运行结束后,在${output_dir}/pred/
或${output_dir}/pred_e/
下(取决于是否在LongBench-E上测试,即是否使用了-e
)将生成各对应任务的预测文件(jsonl格式)。执行以下命令计算效果指标:
python eval.py --output_dir ${output_dir}
如果在上一步预测时使用了-e
,在eval时也需提供-e
参数:
python eval.py --output_dir ${output_dir} -e
计算结果存放在${output_dir}/pred/result.json
或${output_dir}/pred_e/result.json
下。例如在LongBench中文任务上测试(--predict_on zh
) Chinese-Mixtral-Instruct,结果为:
{
"lsht": 42.0,
"multifieldqa_zh": 50.28,
"passage_retrieval_zh": 89.5,
"vcsum": 16.41,
"dureader": 34.15
}
- Model Reconstruction
- Model Quantization, Inference and Deployment
- System Performance
- Training Scripts
- FAQ