Skip to content

YUHANYU/Reproduce_Transformer

Repository files navigation

通过阅读论文Attention is all you need,复现Transformer模型。

已完成

  • 输入数据处理部分
  • transformer模型的训练部分
  • transformer模型的验证部分
  • transformer模型的推理部分
  • 增加Visdom可视化工具
  • 增加模型日志功能
  • 将当前代码拆分为各个模块
  • 优化模型代码,添加更多注释
  • 添加命令行参数模式
  • 添加参考论文和代码的链接
  • 添加对模型训练部分,测试部分困惑度PPL和准确率ACC的图
  • 构造输入参数约束函数

待完成

  • 增加模型多GPU运行代码
  • 数据修改word形式为sub-word形式
  • 增加tensorboard可视化(pytorch 1.1.0)
  • 增加tensorboardX可视化
  • 增加label smooth

运行环境

  • pytorch 1.1.0(可使用tensorboard)
  • python 3.7.0
  • visdom 0.1.8.8
  • GTX 1080Ti & GTX TITAN X

使用方法

直接运行方式

  • config.py文件中修改模型的各个参数;

  • 运行all.py文件

    命令行方式

  • 运行模型的训练&验证程序train_val.py,需要在train_val.py文件中修改各类参数;

  • 模型训练完成后,自动保存最佳模型检查点,之后运行infer.py,修改其中的各类参数,就可得到最后的输入结果。

    注意:以上两种方式程序运行时间较久,需保持机器正常运行和耐心等待!

参考

可视化

base model(d_model=512, d_ff=2048,h=8, P_dropout=0.1, batch_size=128, epoch time≈00:01:40)

12 34

big model(d_model=1024, d_ff=4096,h=16,P_dropout=0.3, batch_size=32, epoch time≈00:03:24)

结果测评

  • Transformer  | BLEU         | METEOR

  • base model  | 38.7/32.46  | 35.4

  • big model    | 23.98/25.96  | 27.7

  • 说明:每个模型都有两个BLEU值,是因为前者采用在线网站进行测评BLEU值(默认参数未知),后者采用NLTK包测评,采用默认参数。

附件

base model的模型最佳保存点

https://pan.baidu.com/s/1dM1Ukcva5t3Eb6VRV5ZOCQ hv0a

About

Reproduce the transformer model by reading the paper Attention is all you need. 阅读论文,复现transformer模型。

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages