Skip to content

longbench_zh

iMountTai edited this page Dec 25, 2023 · 7 revisions

LongBench推理脚本

LongBench是一个多任务、中英双语、针对大语言模型长文本理解能力的评测基准,覆盖了多个长文本应用场景。本项目在LongBench上测试了相关模型效果。

接下来将介绍LongBench数据集的预测方法。也可参考Colab notebook:Open In Colab

环境与数据准备

环境配置

按照官方的requirements.txt配置环境。相关文件已被复制到本项目的scripts/longbench目录下:

pip install -r scripts/longbench/requirements.txt

数据准备

无需单独下载数据。预测脚本会自动从 🤗 Datasets下载所需数据。

运行预测脚本

运行以下脚本进行推理:

model_path=path/to/chinese_llama2_or_alpaca2
output_path=path/to/output_dir
data_class=zh
with_inst="true" # or "false" or "auto"
max_length=3584

cd scripts/longbench
python pred_llama2.py \
    --model_path ${model_path} \
    --predict_on ${data_class} \
    --output_dir ${output_dir} \
    --with_inst ${with_inst} \
    --max_length ${max_length}

参数说明

  • --model_path ${model_path}:待评测模型所在目录(完整的Chinese-LLaMA-2或Chinese-Alpaca-2模型,非LoRA)
  • --predict_on {data_class}: 指定待预测的任务,可以为enzhcode,或它们的组合,以逗号分隔,如en,zh,code
  • --output_dir ${output_dir}:评测结果的输出目录
  • --max_length ${max_length}:指令的最大长度。注意此长度不包括system prompt以及任务相关prompt在内。
  • --with_inst ${with_inst}:在构建模型的输入指令时是否使用Chinese-Alpaca-2的prompt及模版:
    • true:所有任务上都使用prompt及模版
    • false:所有任务上都使用prompt及模版
    • auto:只在部分任务上使用prompt及模版(LongBench官方的策略) 建议在使用Alpaca模型时,设置为auto;使用LLaMA模型时,设置为false
  • --gpus ${gpus}:如需指定特定的GPU,请使用此参数,如0,1
  • --alpha ${alpha}: NTK上下文扩展方法系数。一般设为待处理文本长度 / 模型上下文长度 * 2 - 1。或更方便地设为auto即可。
  • --e:在LongBench-E数据集上进行预测。参考LongBench官方文档以了解LongBench-E的详细说明。
  • --use_flash_attention_2: 适用flash_attention_2进行推理加速
  • --use_ntk: 适用dynamic_ntk方法扩展上下文窗口。不适用于64K版长上下文模型。

待模型运行结束后,在${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-Alpaca-2-7B,结果为:

{
    "lsht": 20.5,
    "multifieldqa_zh": 32.74,
    "passage_retrieval_zh": 4.5,
    "vcsum": 11.52,
    "dureader": 16.59
}
Clone this wiki locally