!231 update best practice doc for opencompass

Merge pull request !231 from 金勇旭/opencompass
This commit is contained in:
金勇旭
2025-06-05 03:20:54 +00:00
committed by i-robot
parent b8e6e3e450
commit 31d811107f

View File

@ -0,0 +1,87 @@
# 在NPU上使用OpenCompass进行模型评测
OpenCompass是一个LLM评估平台它提供全面的大模型评测功能包括广泛的模型支持、高效的评测速度、主观的评测能力、数据污染检查和丰富的长文本评测能力。本教程介绍如何使用OpenCompass第三方套件在npu上对本地模型完成评测。
## 环境准备
```bash
git clone https://github.com/open-compass/opencompass.git
cd opencompass
git checkout -b v0.4.2 tags/0.4.2
pip install -e .
```
接下来将基于qwen-2.5-7b-instruct模型和gsm8k数据集进行演示。
## 模型准备
可通过带lfs的git 从魔乐社区进行模型下载
```bash
git clone https://modelers.cn/AI-Research/Qwen2.5-7B-Instruct.git
```
由于模型路径后续会使用到,这里假设下载后模型的位置在 `/model/Qwen2.5-7B-Instruct/`
## 数据集准备
大部分数据集会随着评测的启动自动下载,部分数据集需要手动下载。可通过`opencompass/utils/datasets_info.py`文件查看数据集下载链接,下载后将文件存在`/root/.cache/opencompass/`。本示例使用的gsm8k数据集会由OpenCompass自动下载。
## 启动评测
可通过以下命令查看或过滤当前可用的模型和数据集配置
```bash
python tools/list_configs.py llama mmlu
```
可通过以下命令启动评测
```bash
cd opencompass
python run.py \
--datasets gsm8k_gen \
--hf-type chat \
--hf-path /model/Qwen2.5-7B-Instruct/ \
--tokenizer-kwargs padding_side="left" truncation="left" trust_remote_code="True" \
--model-kwargs device_map="auto" \
--max-seq-len 2048 \
--max-out-len 4096 \
--min-out-len 16 \
--batch-size 32 \
--max-num-workers 4
```
- datasets中可以传入多个数据集从而一次评估多个数据集。
若有需要,可通过添加`generation-kwargs`参数,使得模型输出具有一定的随机性。
```bash
--generation-kwargs do_sample="True" temperature=0.7 top_k=50 top_p=0.8
```
## 可视化评估结果
评估完成后,评估结果表格将打印如下:
```text
dataset version metric mode _hf
-------- -------- -------- ------ -----
gsm8k 1d7fe4 accuracy gen 80.52
```
所有运行输出将定向到`outputs/default/`目录,结构如下:
```text
outputs/default/
├── 20230220_183030 # 每个实验一个文件夹
│ ├── configs # 用于记录的已转储的配置文件。如果在同一个实验文件夹中重新运行了不同的实验,可能会保留多个配置
│ ├── logs # 推理和评估阶段的日志文件
│ │ ├── eval
│ │ └── infer
│ ├── predictions # 每个任务的推理结果
│ ├── results # 每个任务的评估结果
│ └── summary # 单个实验的汇总评估结果
├── ...
```