Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

中文的GPT2模型训练代码,基于Pytorch-Transformers

License

Notifications You must be signed in to change notification settings

goingcoder/GPT2-Chinese

Repository files navigation

GPT2-Chinese

UPDATE Jul 27

  • 为了保持项目的干净整洁,我做了一次更新清理。27日之前的内容以及训练斗破苍穹的脚本可以查看old_jul_27的Branch。

项目状态

  • 目前项目处于积极开发状态,如发现任何bug或是有功能意见与改进欢迎提交Issue,PR或是联系作者。

使用方法

  • 在项目根目录建立data文件夹。将训练语料以train.txt为名放入data目录中。train.txt里是一个json,json是一个列表,列表的每个元素都分别是一篇要训练的文章。
  • 运行train.py文件,会自动预处理数据。
  • 预处理完成之后,将train.py文件内的raw改成False,然后运行,即可开始训练。

文件结构

  • generate.py 与 train.py 分别是生成与训练的脚本,使用pytorch-transformers库。
  • cache/vocab_small.txt 与 config/model_config_small.json 是我目前试验性缩小Bert tokenizer词表大小从而缩小模型大小的产物,两者组合可以在四张2080ti上实现12的batch size。

注意

  • pytorch-pretrained-bert现在已经改名为pytorch-transformers了,我已经将train.py更新,适应新的版本,旧版本的train.py更名为train_old.py,不再更新。
  • 该训练代码可以运行,近期我会进行模型运算。
  • train.txt如果太大的话内存会不足。所以我写了一个拆分若干份的代码来做预处理。
  • 如果你的内存非常大或者语料较小的话,可以改掉train.py内build files内的对应代码,不做拆分直接预处理语料。
  • 各位如果完成了预训练的话欢迎进行交流。

语料

FP16与Gradient Accumulation支持

  • 我在train.py文件中加入了fp16支持,如果你安装了apex的话并且知道fp16是什么的话,可以修改变量fp61=True来启用。
  • 我在train_with_ga.py文件中加入了gradient accumulation支持,如果你需要更大的batch size的话可以调整gradient_accumulation的值。实际batch size会是文件中batch size与gradient accumulation值的乘积。

联系作者

生成样例

  • 下为斗破苍穹的生成样例,使用约50M参数的GPT2以32Batch Size在16MB斗破苍穹小说内容上训练得到。此处[SEP]表示换行。

avatar

About

中文的GPT2模型训练代码,基于Pytorch-Transformers

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 100.0%

AltStyle によって変換されたページ (->オリジナル) /