1 理论
更换后端:HF-vLLm
自研数据集
- MathBench:数学能力
- CriticBench:反思能力
- T-Eval:细粒度工具
- CreationBench:中文创作
- F-Eval:基础能力评测
- CIBench:代码解释能力
2 实践
启动opencom
-
春命令行
-
命令行——config
-
进入compass
-
激活
-
clone代码
-
环境变量设置
-
run.py --datasets 模型的路径
- 模型拷贝
- data拷贝
- max seq len:读入的token长度,场下问大些
- max out len:模型的输出。客观小写,主观大写
- batch size:
- num gpus:
- work dir:在这个路径下执行相关的操作。默认在output/default
- reuse:最新的时间戳继续跑
- debug:终端显示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
-
config配置
逻辑
- partiitioner:分片。多数据集、多模型。任务分发到机器上。
- tasks:每片的执行
- runner:集群、local,任务提交
- openicl:推理、验证。怎么执行?
- summarizers:总结结果。
自定义数据集
-
configs——datasets,新建脚本。(跑的时候修改ceval_gen.py里面的自定义文件)
- ceal——版本——ceval_datasets列表的实现
ceval_datasets.append(dict())
format 映射
- ceal——版本——ceval_datasets列表的实现
-
opencompass——dataset。ceval 新建新的类——实现load方法(类与上面的ceval对应)
- load方法:根目录与子集的名字拼接组成csv的文件名,读取内容,返回DatasetDict的类型。[{k:v},{},{}]
-
init。import
其他功能
- 主观评测:config——subjective
- 长文本评测:needlebench
3 作业
使用 OpenCompass 评测 internlm2-chat-1_8b 模型在 C-Eval 数据集上的性能
-
新建开发机(Cuda11.7-conda,GPU 为10% )
-
新建环境,clone代码
studio-conda -o internlm-base -t opencompass conda activate opencompass git clone -b 0.2.4 https://github.com/open-compass/opencompass cd opencompass pip install -e .
-
数据集
cp /share/temp/datasets/OpenCompassData-core-20231110.zip /root/opencompass/ unzip OpenCompassData-core-20231110.zip
-
环境变量设置
export MKL_SERVICE_FORCE_INTEL=1
export MKL_THREADING_LAYER=GNU
pip install protobuf
一定要主要查看报错!!否则出的结果是空的 -
run.py --datasets 模型的路径
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
-
pip install protobuf
缺少的依赖太多了,直接pip install -r requirements.txt
视频地址:https://www.bilibili.com/video/BV1Pm41127jU/
课程文档:https://github.com/InternLM/Tutorial/blob/camp2/opencompass/readme.md
课程作业:https://github.com/InternLM/Tutorial/blob/camp2/opencompass/homework.md