一、OpenCompass介绍:
评测相关:
评测意义:
研究评测对于我们全面了解大型语言模型的优势和限制至关重要;研究评测有助于指导和改进人类与大型语言模型之间的协同交互;研究评测可以帮助我们更好地规划大型语言模型未来的发展;评测能了解不同语言模型之间的性能、舒适性和安全性,能够帮助人们更好地选择适合的模型。
如何通过评测促进模型发展:
评测中的面临挑战:
如何评测:
按模型类别不同划分评测:基座模型、公开权重的开源模型、对话模型、API模型
按评测方式:客观评测与主观评测
提示词工程将题目变得更加丰富,然后再进行推理或者评测
长文本评测(大海捞针)。
OpenCompass提供了什么:
CompassRank:中立全面的性能榜单
CompassKit:大模型评测全栈工具链
OpenCompass评测流水线:
CompassHub:高质量评测基准社区
二、项目实践:
书生浦语在 C-Eval
基准任务上的评估(它们的配置文件可以在 configs/eval_demo.py
中找到)
环境配置
配置conda环境:
studio-conda -o internlm-base -t opencompass
激活环境,克隆opencompass代码仓库的0.2.4分支,进入opencompass文件夹,从源码进行安装
source activate opencompass
git clone -b 0.2.4 https://github.com/open-compass/opencompass
cd opencompass
pip install -e .
数据准备:
解压评测数据集到 data/ 处:
cp /share/temp/datasets/OpenCompassData-core-20231110.zip /root/opencompass/
unzip OpenCompassData-core-20231110.zip
将会在 OpenCompass 下看到data文件夹
查看支持的数据集和模型
列出所有跟 InternLM 及 C-Eval 相关的配置:
python tools/list_configs.py internlm ceval
运行命令后,先后缺少依赖包“tabulate”“mmengine”
使用pip install 命令安装后,重新执行命令,获得结果:
启动评测:
输入命令:
python run.py --datasets ceval_gen --hf-path /share/new_models/Shanghai_AI_Laboratory/internlm2-chat-1_8b --tokenizer-path /share/new_models/Shanghai_AI_Laboratory/internlm2-chat-1_8b --tokenizer-kwargs padding_side='left' truncation='left' trust_remote_code=True --model-kwargs trust_remote_code=True device_map='auto' --max-seq-len 1024 --max-out-len 16 --batch-size 2 --num-gpus 1 --debug
官方命令解析:
python run.py
--datasets ceval_gen \
--hf-path /share/new_models/Shanghai_AI_Laboratory/internlm2-chat-1_8b \ # HuggingFace 模型路径
--tokenizer-path /share/new_models/Shanghai_AI_Laboratory/internlm2-chat-1_8b \ # HuggingFace tokenizer 路径(如果与模型路径相同,可以省略)
--tokenizer-kwargs padding_side='left' truncation='left' trust_remote_code=True \ # 构建 tokenizer 的参数
--model-kwargs device_map='auto' trust_remote_code=True \ # 构建模型的参数
--max-seq-len 1024 \ # 模型可以接受的最大序列长度
--max-out-len 16 \ # 生成的最大 token 数
--batch-size 2 \ # 批量大小
--num-gpus 1 # 运行模型所需的 GPU 数量
--debug
运行命令:
报错。
安装缺失依赖包后,运行
报错。
。。。。。。后续不清楚缺了多少包,运行以下命令
pip install -r requirements.txt
重新安一遍项目所需依赖包
重新运行评测命令,
报错:
官方给出解决错误方案:加入环境变量:
export MKL_SERVICE_FORCE_INTEL=1
重新运行评测命令,继续报错:
根据官方解决方案,并观察运行日志,缺少模块protobuf,运行以下命令:
pip install protobuf
重新执行评测命令,顺利运行,得到结果:
至此评测实践跑通。
标签:opencompass,评测,tokenizer,测评,--,模型,笔记,命令,OpenCompass From: https://blog.csdn.net/Moo_n_earth/article/details/139511713