A simple program to evaluate large language model.
You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
PeterAlbus 5a182efd6c 完善readme,修复gpt3保留历史的Bug 7 months ago
evaluators 完善readme,修复gpt3保留历史的Bug 7 months ago
scoring bug修复。 7 months ago
.gitignore 优化代码结构,减少重复代码,增加复用模块。 7 months ago
README.md 完善readme,修复gpt3保留历史的Bug 7 months ago
compare.py 优化评分部分文件结构,增加对比式gpt评分 8 months ago
eval.py bug修复。 7 months ago
generate_eval_text.py Init commit. Add Evaluators and support ChatGLM/ChatGLM2. 10 months ago
merge.py bug修复。 7 months ago
re_extract.py 优化代码结构,减少重复代码,增加复用模块。 7 months ago
test.py bug修复。 7 months ago

README.md

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模型并放置于到./THUDM/chatglm-6b文件夹下
  • 请下载GLM2模型并放置于到./THUDM/chatglm2-6b文件夹下
  • 请下载GLM3模型并放置于到./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

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

运行模型评估程序:

python eval.py --model_name chatglm3 --finetune qlora1 --finetune_method qlora --few_shot --ntrain 5 --cuda_device 0

对结果文件使用大模型和ROUGE进行评估请自行修改文件内的路径

python test.py --openai_key [your-api-key]

Arguments(eval.py)

  • --model_name: 模型名称,可选chatglmchatglm2chatglm3gpt-3.5-turbo
  • --cuda_device: GPU编号
  • --finetune: 微调模型名称,为放置于lora/ptuning文件夹下的文件夹名
  • --few_shot: 使用少量数据进行微调(可选)
  • --ntrain: 少量数据的数量(可选)
  • --cot: 使用思维链(可选)
  • --finetune_method: 微调方法,可选loraptuningqloradora
  • --finetune: 微调文件夹名称,会自动寻找对应位置
  • --openai_key: OpenAI API Key, 调用OpenAI API进行评估或评估gpt模型需要使用