|
|
# LLM_Evaluator
|
|
|
|
|
|
A simple program to evaluate large language model.
|
|
|
|
|
|
## Recommend Requirements
|
|
|
|
|
|
- Python 3.10
|
|
|
- torch 1.13.1+cu117
|
|
|
- transformers 4.33.2
|
|
|
- accelerate 0.26.1
|
|
|
- tqdm 4.66.1
|
|
|
- openai 0.28
|
|
|
- peft 0.10.0
|
|
|
- google-generativeai
|
|
|
- pandas
|
|
|
- sentencepiece 0.2.0
|
|
|
- rouge_chinese 1.0.3
|
|
|
- jieba 0.42.1
|
|
|
|
|
|
## 需求其余文件
|
|
|
|
|
|
- 请下载[GLM模型](https://hf-mirror.com/THUDM/chatglm-6b)并放置于到`./THUDM/chatglm-6b`文件夹下
|
|
|
- 请下载[GLM2模型](https://hf-mirror.com/THUDM/chatglm2-6b)并放置于到`./THUDM/chatglm2-6b`文件夹下
|
|
|
- 请下载[GLM3模型](https://hf-mirror.com/THUDM/chatglm3-6b)并放置于到`./THUDM/chatglm3-6b`文件夹下
|
|
|
- 模型也可以通过建立软链接的形式放置于代码文件夹下。
|
|
|
- 微调后的lora模型可放置于`./lora`文件夹下,可应用于ChatGLM2,例:要应用于glm2则放置于`./lora/glm2`文件夹下
|
|
|
- 微调后的ptuning模型可放置于`./ptuning`文件夹下,可应用于ChatGLM/ChatGLM2,例:要应用于glm则放置于`./ptuning/glm1`文件夹下
|
|
|
- 微调后的qlora/dora模型可放置于`./qlora`文件夹下,可应用于ChatGLM3,例:要应用于glm3则放置于`./qlora/glm3`文件夹下
|
|
|
- 微调文件夹名即为参数中微调模型的名称
|
|
|
- 训练数据按照C-Eval格式,放置于`./data`文件夹下,文件命名和`eval.py`中的`subject_name`相关
|
|
|
- 相较于C-Eval的数据集,代码添加了'qa'的数据集,放置于`./data/qa`文件夹下,为非选择题的问答数据集。
|
|
|
|
|
|
## Create Environment
|
|
|
|
|
|
```bash
|
|
|
conda create -n llm python=3.10
|
|
|
conda activate llm
|
|
|
conda install pytorch==1.13.1 torchvision==0.14.1 torchaudio==0.13.1 pytorch-cuda=11.7 -c pytorch -c nvidia
|
|
|
pip install transformers==4.33.2 accelerate==0.26.1 tqdm==4.66.1 openai==0.28 peft==0.10.0 google-generativeai pandas sentencepiece==0.2.0 rouge_chinese==1.0.3 jieba==0.42.1
|
|
|
```
|
|
|
|
|
|
## Run
|
|
|
|
|
|
运行模型评估程序:
|
|
|
```bash
|
|
|
python eval.py --model_name chatglm3 --finetune qlora1 --finetune_method qlora --few_shot --ntrain 5 --cuda_device 0
|
|
|
```
|
|
|
|
|
|
对结果文件使用大模型和ROUGE进行评估,请自行修改文件内的路径:
|
|
|
```bash
|
|
|
python test.py --openai_key [your-api-key]
|
|
|
```
|
|
|
|
|
|
## Arguments(eval.py)
|
|
|
|
|
|
- `--model_name`: 模型名称,可选`chatglm`、`chatglm2`、`chatglm3`、`gpt-3.5-turbo`
|
|
|
- `--cuda_device`: GPU编号
|
|
|
- `--finetune`: 微调模型名称,为放置于`lora/ptuning`文件夹下的文件夹名
|
|
|
- `--few_shot`: 使用少量数据进行微调(可选)
|
|
|
- `--ntrain`: 少量数据的数量(可选)
|
|
|
- `--cot`: 使用思维链(可选)
|
|
|
- `--finetune_method`: 微调方法,可选`lora`、`ptuning`、`qlora`、`dora`
|
|
|
- `--finetune`: 微调文件夹名称,会自动寻找对应位置
|
|
|
- `--openai_key`: OpenAI API Key, 调用OpenAI API进行评估或评估gpt模型需要使用
|