站长工具seo推广,网站备案需要多少钱,建设银行网站模板,资讯门户网站前言
这是我的github上的一个介绍#xff0c;关于如何训练中文版本的gpt2的。链接为: https://github.com/yuanzhoulvpi2017/zero_nlp
介绍
本文#xff0c;将介绍如何使用中文语料#xff0c;训练一个gpt2可以使用你自己的数据训练#xff0c;用来#xff1a;写新闻、…前言
这是我的github上的一个介绍关于如何训练中文版本的gpt2的。链接为: https://github.com/yuanzhoulvpi2017/zero_nlp
介绍
本文将介绍如何使用中文语料训练一个gpt2可以使用你自己的数据训练用来写新闻、写古诗、写对联等我这里也训练了一个中文gpt2模型使用了612万个样本每个样本有512个tokens总共相当于大约31亿个tokens
⚠️安装包
需要准备好环境也就是安装需要的包
pip install -r requirements.txt像是pytorch这种基础的包肯定也是要安装的就不提了。
数据
数据来源
获得数据:数据链接关注公众号【统计学人】然后回复【gpt2】即可获得。获得我训练好的模型(使用了15GB的数据(31亿个tokens)在一张3090上训练了60多小时)
数据格式
数据其实就是一系列文件夹然后每一个文件夹里面有大量的文件每一个文件都是.csv格式的文件。其中有一列数据是content每一行的content就代表一句话,截图如下 虽然数据有15GB那么大但是处理起来一点也不复杂使用 datasets 包可以很轻松的处理大数据而我只需要传递所有的文件路径即可这个使用 glob 包就能完成。
代码
⚙️训练代码train_chinese_gpt2.ipynb
⚠️注意
现在训练一个gpt2代码其实很简单的。抛开处理数据问题技术上就三点:tokenizer、gpt2_model、Trainertokenizer使用的是bert-base-chinese 然后再添加一下bos_token、eos_token、pad_token。gpt2_model使用的是gpt2这里的gpt2我是从0开始训练的。而不是使用别人的预训练的gpt2模型。Trainer训练器使用的就是transformers的Trainer模块。支撑多卡并行tensorboard等都写好的直接调用就行了非常好用
推理代码infer.ipynb
⚠️注意
这个是chinese-gpt2的推理代码
将代码中的model_name_or_path checkpoint-36000里面的checkpoint-36000,修改为模型所在的路径。然后运行下面一个代码块即可输出文本生成结果可以参考这个代码制作一个api或者打包成一个函数或者类。
交互机器人界面chatbot.py
⚠️注意
修改代码里面的第4行这一行值为模型所在的位置修改为我分享的模型文件路径。
model_name_or_path checkpoint-36000运行
python chatbot.py点击链接即可在浏览器中打开机器人对话界面
更多
这个完整的项目下来其实我都是全靠huggingface文档、教程度过来的.我做的东西也就是把Tokenizer改成中文的了然后也整理了数据别的大部分东西都不是我做的了.原文链接为https://huggingface.co/course/zh-CN/chapter7/6?fwpt.
一起学习
其实我更喜欢做应用但是也要理解相关的背后原理目前还在研究相关的gpt2原理还有相关的推理细节这是我整理的链接希望可以共同进步
https://huggingface.co/blog/how-to-generatehttps://huggingface.co/gpt2https://huggingface.co/gpt2-large