当前位置:   article > 正文

Llama3小白自学路(六、OpenCompass评测Llama3)_llama3所需环境

llama3所需环境

写在前面

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

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

机智流Llama3超级课堂

1、环境配置

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

  1. # 创建镜像并下载依赖
  2. conda create -n llama3 python=3.10
  3. conda activate llama3
  4. conda install pytorch==2.1.2 torchvision==0.16.2 torchaudio==2.1.2 pytorch-cuda=12.1 -c pytorch -c nvidia
  5. # 安装git
  6. mkdir -p ~/model
  7. cd ~/model
  8. apt install git git-lfs -y
  9. # 获取权重模型
  10. git clone https://code.openxlab.org.cn/MrCat/Llama-3-8B-Instruct.git Meta-Llama-3-8B-Instruct

2、安装OpenCompass

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

如果遇到错误,就执行:

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

3、准备数据

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

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

4、命令行快速评测

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

以ceval_gen数据集为例:

  1. python run.py \
  2. --datasets ceval_gen \
  3. --hf-path /root/model/Meta-Llama-3-8B-Instruct \ # HuggingFace 模型路径
  4. --tokenizer-path /root/model/Meta-Llama-3-8B-Instruct \ # HuggingFace tokenizer 路径(如果与模型路径相同,可以省略)
  5. --tokenizer-kwargs padding_side='left' truncation='left' trust_remote_code=True \ # 构建 tokenizer 的参数
  6. --model-kwargs device_map='auto' trust_remote_code=True \ # 构建模型的参数
  7. --max-seq-len 2048 \ # 模型可以接受的最大序列长度
  8. --max-out-len 16 \ # 生成的最大 token 数
  9. --batch-size 4 \ # 批量大小
  10. --num-gpus 1 \ # 运行模型所需的 GPU 数量
  11. --debug

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

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

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

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

那么就执行命令:

  1. git clone https://github.com/Isaac-JL-Chen/rouge_chinese.git
  2. cd rouge_chinese
  3. 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/下面查看想要使用的数据集:

  1. from mmengine.config import read_base
  2. with read_base():
  3. from .datasets.mmlu.mmlu_gen_4d595a import mmlu_datasets
  4. datasets = [*mmlu_datasets]
  5. from opencompass.models import HuggingFaceCausalLM
  6. models = [
  7. dict(
  8. type=HuggingFaceCausalLM,
  9. abbr='Llama3_8b', # 运行完结果展示的名称
  10. path='/root/model/Meta-Llama-3-8B-Instruct', # 模型路径
  11. tokenizer_path='/root/model/Meta-Llama-3-8B-Instruct', # 分词器路径
  12. model_kwargs=dict(
  13. device_map='auto',
  14. trust_remote_code=True
  15. ),
  16. tokenizer_kwargs=dict(
  17. padding_side='left',
  18. truncation_side='left',
  19. trust_remote_code=True,
  20. use_fast=False
  21. ),
  22. generation_kwargs={"eos_token_id": [128001, 128009]},
  23. batch_padding=True,
  24. max_out_len=16,
  25. max_seq_len=2048,
  26. batch_size=4,
  27. run_cfg=dict(num_gpus=1),
  28. )
  29. ]

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

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

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

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

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

  1. export MKL_SERVICE_FORCE_INTEL=1
  2. export MKL_THREADING_LAYER=GNU

小结

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

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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Cpp五条/article/detail/703797
推荐阅读
  

闽ICP备14008679号