一、目录
- 环境配置
 - 环境测试
 - 本地模型测评
 
二、实现
- 环境配置
>>创建环境 
conda create --name opencompass python=3.10 pytorch torchvision pytorch-cuda -c nvidia -c pytorch -y
 source activate opencompass
git clone https://github.com/open-compass/opencompass opencompass       #下载模型
cd opencompass
pip install -e .
 
下载数据集,解压并放于opencompass 文件夹下
# 下载数据集到 data/ 处
wget https://github.com/open-compass/opencompass/releases/download/0.1.8.rc1/OpenCompassData-core-20231110.zip
unzip OpenCompassData-core-20231110.zip
 
在opencompass 文件夹下执行 测试命令, 如 >>python run.py --models hf_llama_7b --datasets mmlu_ppl ceval_ppl
- 测试 (在线)`
 
python run.py --models hf_llama_7b --datasets mmlu_ppl ceval_ppl
 
- 本地模型测评,配置文件 eval_demo.py (离线)
参考:https://blog.csdn.net/qq_36803941/article/details/135938692
3.1 修改 模型加载文件 
>>cd /home/opencompass/configs/models/hf_llama
本人采用llama3 模型测试,但并没有llama3 相关文件,因此创建模型加载文件
>>vim hf_llama3_8b.py
#参考其他文件,书写模型配置,进行加载模型。
from opencompass.models import HuggingFaceCausalLM
models = [
    # LLaMA 7B
    dict(
        type=HuggingFaceCausalLM,
        abbr='llama3-8b-hf',
        path="/home/Meta-Llama-3-8B-Instruct", # 你的模型存放的实际路径,建议使用完整绝对路径
        tokenizer_path='/home/Meta-Llama-3-8B-Instruct', # 你的模型存放的实际路径,建议使用完整绝对路径
        tokenizer_kwargs=dict(padding_side='left',
                              truncation_side='left',
                              use_fast=False,
                              ),
        max_out_len=1000,
        max_seq_len=2048,
        batch_size=8,
        model_kwargs=dict(device_map='auto'),
        batch_padding=False, # if false, inference with for-loop without batch padding
        run_cfg=dict(num_gpus=1, num_procs=1),
    )
]
 
3.2. 查看模型配置文件是否成功
 
 3.3. 修改评估配置
>>cd configs
vim eval_demo.py
#配置
from mmengine.config import read_base
with read_base():
    from .datasets.collections.base_medium_llama import piqa_datasets, siqa_datasets   #加载的数据集
    from .datasets.ceval.ceval_ppl import ceval_datasets
    from .models.hf_llama.hf_llama3_8b import models        #加载的模型
datasets = [*piqa_datasets, *siqa_datasets,*ceval_datasets]
 
#执行:>>python run.py configs/eval_demo.py
 
 
 方式二、 配置文件中加载模型、加载数据集(配置文件必须放在configs 文件夹下,不然找不到路径),eval_demo.py, 无需单独去配置模型。
from mmengine.config import read_base
from opencompass.models import HuggingFaceCausalLM
batch_size = 20
# 指定评测模型
model_name_or_paths = [                              #可以多个模型
    '/home/Meta-Llama-3-8B-Instruct'
]
models = []   #模型以及配置放于列表中
for model_name_or_path in model_name_or_paths:
    abbr = model_name_or_path.split('/')[-1]
    model = dict(
        type=HuggingFaceCausalLM,
        abbr=abbr,
        path=model_name_or_path,
        tokenizer_path=model_name_or_path,
        tokenizer_kwargs=dict(padding_side='left',
                              truncation_side='left',
                              use_fast=False,
                              trust_remote_code=True
                              ),
        max_out_len=1000,
        max_seq_len=2048,
        batch_size=batch_size,
        model_kwargs=dict(device_map='auto', trust_remote_code=True),
        batch_padding=False,  # if false, inference with for-loop without batch padding
        run_cfg=dict(num_gpus=2, num_procs=2),
    )
    models.append(model)
# 指定评测集
with read_base():
    from .datasets.ceval.ceval_ppl import ceval_datasets    #数据集路径。
    
datasets = [*ceval_datasets]     #数据集,放于列表中
# python run.py configs/eval_demo.py -w outputs/firefly
                

![npm install [Error]](https://img-blog.csdnimg.cn/direct/73ad93f3dd36417b838f58363576b8a1.png)
















