Llama3小白自学路(六、OpenCompass评测Llama3)

写在前面

OpenCompass是上海人工智能实验室研发的大模型开源评测体系。该体系是面向大语言模型、多模态大模型等各类模型的一站式评测平台。

此篇几乎是copy的机智流的教程,可移步去查看详细:

机智流Llama3超级课堂

1、环境配置

按照前面的章节,配置好相应环境和模块:

# 创建镜像并下载依赖
conda create -n llama3 python=3.10
conda activate llama3
conda install pytorch==2.1.2 torchvision==0.16.2 torchaudio==2.1.2 pytorch-cuda=12.1 -c pytorch -c nvidia

# 安装git
mkdir -p ~/model
cd ~/model
apt install git git-lfs -y

# 获取权重模型
git clone https://code.openxlab.org.cn/MrCat/Llama-3-8B-Instruct.git Meta-Llama-3-8B-Instruct

2、安装OpenCompass

cd ~
git clone https://github.com/open-compass/opencompass opencompass
cd opencompass
pip install -e .

如果遇到错误,就执行:

pip install -r requirements.txt
pip install protobuf
export MKL_SERVICE_FORCE_INTEL=1
export MKL_THREADING_LAYER=GNU

3、准备数据

# 下载数据集到 data/ 处
# 不用更换文件夹路径,解压后自带data文件夹,无需把压缩包放置在新建的data文件夹下
wget https://github.com/open-compass/opencompass/releases/download/0.2.2.rc1/OpenCompassData-core-20240207.zip
unzip OpenCompassData-core-20240207.zip

需要注意说明的是,一定要注意data的路径,这个会在调用评测时候的/root/opencompass/opencompass/datasets/下的py文件中加载,如果路径不对,对应的数据集将会加载不到,如下所示:

4、命令行快速评测

# 列出所有配置
# python tools/list_configs.py
# 列出所有跟 llama (模型)及 ceval(数据集) 相关的配置
python tools/list_configs.py llama ceval

以ceval_gen数据集为例:

python run.py \
--datasets ceval_gen \
--hf-path /root/model/Meta-Llama-3-8B-Instruct \  # HuggingFace 模型路径
--tokenizer-path /root/model/Meta-Llama-3-8B-Instruct \  # 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 2048 \  # 模型可以接受的最大序列长度
--max-out-len 16 \  # 生成的最大 token 数
--batch-size 4  \  # 批量大小
--num-gpus 1 \ # 运行模型所需的 GPU 数量
--debug

如果遇到ModuleNotFoundError: No module named 'rouge' 错误运行

git clone https://github.com/pltrdy/rouge
cd rouge
python setup.py install

评测完成后,执行结果页面有显示,也有保存在csv文件中:

之后尝试使用qwen数据集,也就是将上面的ceval_gen替换为qwen,结果报错ModuleNotFoundError: No module named 'rouge_chinese'。

那么就执行命令:

git clone https://github.com/Isaac-JL-Chen/rouge_chinese.git
cd rouge_chinese
python setup.py install

若还出现其他的问题,比如找不到opencompass模块,笔者认为是后面安装rouge以及rouge-chinese时更换了环境变量,那么就重新安装一遍opencompass模块并重新安装。

5、快速评测

在config下面添加模型配置文件eval_llama3_8b_demo.py文件,这里是使用ceval_gen数据集,没有使用mmlu_datasets,因为爆了内存,同时也修改了py文件中的batch_size为4,max_out_len为16,可以查看datasets/下面查看想要使用的数据集:

from mmengine.config import read_base

with read_base():
    from .datasets.mmlu.mmlu_gen_4d595a import mmlu_datasets

datasets = [*mmlu_datasets]

from opencompass.models import HuggingFaceCausalLM

models = [
dict(
type=HuggingFaceCausalLM,
abbr='Llama3_8b', # 运行完结果展示的名称
path='/root/model/Meta-Llama-3-8B-Instruct', # 模型路径
tokenizer_path='/root/model/Meta-Llama-3-8B-Instruct', # 分词器路径
model_kwargs=dict(
device_map='auto',
trust_remote_code=True
),
tokenizer_kwargs=dict(
padding_side='left',
truncation_side='left',
trust_remote_code=True,
use_fast=False
),
generation_kwargs={"eos_token_id": [128001, 128009]},
batch_padding=True,
max_out_len=16,
max_seq_len=2048,
batch_size=4,
run_cfg=dict(num_gpus=1),
)
]

运行py文件可以得到评测结果。

(注意py的工作路径以及数据的路径为.datasets.mmlu.mmlu_gen_4d595a):

若出现加载数据报错,并且进入日志查看报错信息为:

Error: mkl-service + Intel(R) MKL: MKL_THREADING_LAYER=INTEL is incompatible with libgomp.so.1 library.
	Try to import numpy first or set the threading layer accordingly. Set MKL_SERVICE_FORCE_INTEL to force it.

那么就添加环境变量控制:

export MKL_SERVICE_FORCE_INTEL=1
export MKL_THREADING_LAYER=GNU

小结

到这个章节,算是把机智流的Llama3的超级课堂大体过了一遍,但也只是简简单单模拟了一遍,里面还有很多深奥的东西没有学透。后续会不断在大章节之间穿插小章节,深入研读一下里面的执行文件,同时后续也打算按照他们提供的课程,手搓大模型,并做相应笔记。

只要卷不死,就往死里卷!!

  • 19
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值