Skip to content

sorrystopper/MyGPT

Repository files navigation

train_tokenizer

train_tokenizer代码在train_tokenizer.py中,用bash step_01.sh运行,这里使用的是char-based的方法,后面看时间情况改成使用bpe的方法(看来是没时间弄了)。

pretrain

pretrain代码在pretrain.py中,用bash step_02.sh运行。 注意:

  1. --train_type pretrain来指定模型进行预训练。

Evaluation

python pretrain.py运行。 注意:

  1. pretrain.py代码中自己修改想要评测模型的位置。
  2. 修改eval_type变量来选择是对pretrain测试还是对sft测试

sft

bash step_02.sh运行。 注意:

  1. --train_type sft来指定模型进行supervised finetune

ceval

执行

cd ceval
bash ceval.sh

注意:

  1. ceval.sh中修改自己的模型路径和参数。
  2. 修改了generate.py,没懂为什么老师是用logits=logits[0][0],不应该是根据最近生成的token获得的词典大小的logits来预测ABCD吗?

总结

  1. 以上代码都能在我服务器上运行,且看起来效果还不错,如果有问题,可以Q我 or Email [email protected]

更新!!!

  1. 本次实验更新了DPOApplication
  2. DPO分别对自己的sft模型和Qwen系列模型进行了DPO更新;
  3. Application选择的是文本分类,直接使用Qwen系列的模型,分别实现使用zero-shotprompt进行对话生成的文本分类,和直接使用Qwen Model代码中的AutoModelForSequenceClassification进行直接分类训练。

DPO

  1. 分别在DPO_MyGPTDPO_Qwen文件夹中(训练数据自己准备)
cd DPO_MyGPT 或者 cd DPO_Qwen
训练:
python train.py
测试
python inference.py
  1. 自己的sft模型dpo后好像训崩了(应该是代码写的依托,但是懒得改了),但是Qwen模型dpo后效果very good;

Application

  1. Text_classification文件夹中,因为我对数据集也做了一些处理,所以直接传上去了,在toutiao_cat_data文件夹中;
  2. zero-shot的对话生成进行分类:
cd Text_classification
训练:
python train.py
测试
python inference.py
  1. 直接使用Qwen定制的AutoModelForSequenceClassification进行文本分类:
cd Text_classification
训练:
python train_v2.py
测试
python inference_v2.py

About

NLP experiment

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published