关于GPT2模型的使用

最近实验课进行了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文库)

(所用源码来自网络,侵权删除~)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
GPT-2模型是深度学习和自然语言处理领域的最新技术之一。它是一个从海量文本数据中训练出来的智能算法,可以用来自动化生成文本内容,具有很高的可读性和流畅性。 GPT-2模型文本生成实践的开展主要依赖于大量的数据集和强大的计算资源。首先,应该选择一个适当的数据集,它应该是在相似的话题、领域、语种下尽可能广泛和详尽的。数据集可以来源于一些公开的数据集,也可以从网络上自己收集和提取。 将这个数据集放进去训练的过程可以用transformer技术,包括一系列编码层和解码层,以便更好地掌握模型的各种特征和规律。训练过程的时间和速度取决于模型的规模和复杂性,因此应该选择适合自己的计算资源。 还应该注意,模型的生成结果可能不一定完全符合人们的语言习惯和文化背景。在使用GPT-2模型生成文本内容时,要先确定自己的目标和需求,然后尽可能减少模型的错误率。 在实践当中应该尽可能利用一些先进的文本分析、语言处理、自然语言生成、自然语言理解、机器学习等技术,以便更好地掌握和利用GPT-2模型背后的原理和方法,生成更加精确、高效、可靠的文本内容。 总之,GPT-2模型的文本生成实践需要深入理解和应用自然语言处理等相关技术,并且需要持续不断地改进和完善,以便更好地满足各种文本生成需求。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小杨能学会

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值