赞
踩
最近实验课进行了chatbot的训练,挺有意思分享一下。
1,查看dialogbot文件夹中的内容
将闲聊数据命名为train.txt,并放在data文件夹,并检查文本样式
将gpt2-distil-chinese-cluecorpussmall模型放在model文件夹
2,检查gpt文件夹中的程序(preprocess.py的外参数表)
外部参数有3个:
--train_path:训练数据集的路径,默认为data/train.txt。
--save_path:处理后的训练数据集保存路径,默认为data/train.pkl。
--pretrained_model:预训练模型的路径,默认为../model/gpt2-dialogbot-base-chinese。
3.train.py的外参表
-- device: 设置使用哪些显卡。
-- no_cuda: 如果设置为True,则不使用GPU进行训练。
-- model_config: 模型参数的配置文件路径。
-- train_path: 训练集的路径。
-- max_len: 训练时输入数据的最大长度。
-- log_path: 训练日志存放位置。
-- log: 是否记录日志。
-- ignore_index: 对于ignore_index的label token不计算梯度。
-- epochs: 训练的最大轮次。
-- batch_size: 训练的批次大小。
-- gpu0_bsz: 0号卡的批次大小。
-- lr: 学习率。
-- eps: 衰减率。
-- log_step: 每隔多少步汇报一次loss。
-- gradient_accumulation_steps: 梯度积累的步数。
-- max_grad_norm: 梯度裁剪的最大范数。
-- save_model_path: 模型输出路径。
-- pretrained_model: 预训练模型的路径。
-- num_workers: DataLoader加载数据时使用的线程数量。
-- patience: 用于early stopping的耐心值,设为0时不进行early stopping。
-- warmup_steps_rate: warm-up步数的比例。
-- val_rate: 验证集所占训练集的比例。
4, interact.py的外参表
-- device: 设置使用的设备。
-- temperature: 生成文本时的temperature参数。
-- topk: 生成文本时选择最高概率的前k个token。
-- topp: 生成文本时选择累积概率超过topp的token。
-- log_path: 交互日志存放位置。
-- model_dir: 对话模型文件夹路径。
-- repetition_penalty: 重复惩罚参数,用于控制生成对话中重复性的程度。
-- max_len: 每个utterance的最大长度,超过指定长度将进行截断。
-- max_history_len: dialogue history的最大长度。
-- no_cuda: 如果设置为True,则不使用GPU进行预测。
5, 进入Terminal模式或cmd中,使用相应的环境并开始token
利用命令python preprocess.py --train_path ## --save_path ## --pretrained_model ##,其中##为相应路径
例如命令.txt中的第一行
python gpt\preprocess.py --train_path data\train.txt --save_path data\train.pkl --pretrained_model model\gpt2-distil-chinese-cluecorpussmall
6,使用python train.py,训练,例如命令.txt的第二行,选择合适的epoch和bicthsize
python gpt\train.py --epochs 1 --batch_size 8 --device 0,1 --train_path data/train.pkl --pretrained_model model\gpt2-distil-chinese-cluecorpussmall
7,使用gpt2-distil-chinese-cluecorpussmall模型进行20个epoch的训练,并观察output
python gpt\train.py --epochs 20 --batch_size 8 --device 0,1 --train_path data/train.pkl --pretrained_model model\gpt2-distil-chinese-cluecorpussmall
8,使用python gpt\interact.py进行对话,例如命令.txt的第三行
python gpt\interact.py --no_cuda --model_dir outputs\min_ppl_model
实验旨在学习和训练一个GPT模型,感兴趣的小伙伴可以试一试!(源码在资源里,需要自取聊天机器人(dialogbot)资源-CSDN文库)
(所用源码来自网络,侵权删除~)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。