THUMT是清华大学自然语言处理与社会人文计算实验室开发的神经机器翻译工具包。目前THUMT有三种实现:THUMT-PyTorch、THUMT-TensorFlow以及THUMT-Theano。其中,THUMT-PyTorch实现了主流的Transformer[3]模型;THUMT-TensorFlow实现了Seq2Seq[1]、RNNSearch[2]和Transformer[3]模型;THUMT-Theano实现了RNNSearch[2]模型。
THUMT的PyTorch以及TensorFlow版本支持多机多卡并行训练,并且提供混合精度训练,能够充分利用现有GPU的硬件性能,并且在训练过程中支持自动模型验证。THUMT同时支持梯度累积,可以在低计算资源的情况下对大规模硬件条件下的实验设置进行模拟。THUMT还可以利用TensorBoard进行可视化,方便对训练中的各种数据进行可视化以及分析。
THUMT提供简洁的命令行接口,提供完善的训练以及解码支持。THUMT代码具备简洁及轻量性的特点,方便用户进行更改以及扩展。
实现细节(PyTorch版):
数据处理模块(thumt/data):支持并行读入数据。
神经网络模块(thumt/modules):包含多种主流模块,方便快速搭建神经网络模型。
神经机器翻译架构模块(thumt/models):支持Transformer模型。
优化模块(thumt/optimizers):支持多种优化器以及学习率设置方式。
安装与使用
THUMT可以通过直接使用`pip install thumt`安装PyTorch版。具体使用方式可以阅读我们在GitHub代码(http://github.com/THUNLP-MT/THUMT)中的文档。
Demo网站
为了方便更多人了解和使用机器翻译,THUMT团队还搭建了一个可供使用(轻量级)的DEMO网站(http://translate.thumt.cn/)。该网站提供了英语和中文的相互翻译以及其他8种语言到英语的翻译,此外还提供古文和现代文的相互翻译。用户可以通过直接输入待翻译内容或者上传文件两种方式进行翻译。同时,网站也提供了语音翻译小程序的入口,可以使用微信扫描对应的二维码开启SpeechMT小程序,进行语音翻译。
结语
THUMT项目将会长期维护以及持续更细。我们欢迎大家使用THUMT作为机器翻译领域学术研究和应用开发的工具,也期盼大家宝贵的意见和建议,或加入我们的队伍,共同开发,完善工具包。
指导老师
开发团队
谭知行:清华大学计算机系博士后
陈刚:清华大学计算机系硕士生
黄轩成:清华大学计算机系博士生
王硕:清华大学计算机系博士生
张嘉成:清华大学计算机系博士
丁延卓:清华大学计算机系硕士
沈世奇:清华大学计算机系博士
程勇:清华大学交叉信息研究院博士
相关文献
[1] Sutskever, I., Vinyals, O., & Le, Q. V. (2014). Sequence to sequence learning with neural networks. In Advances in neural information processing systems (pp. 3104-3112).
[2] Bahdanau, D., Cho, K., & Bengio, Y. (2015). Neural machine translation by jointly learning to align and translate. In Proceedings of the 3rd International Conference on Learning Representations.
[3] Vaswani, A., Shazeer, N., Parmar, N., Uszkoreit, J., Jones, L., Gomez, A. N., ... & Polosukhin, I. (2017). Attention is all you need. In Advances in neural information processing systems (pp. 5998-6008).
[4] Shen, S., Cheng, Y., He, Z., He, W., Wu, H., Sun, M., & Liu, Y. (2016). Minimum Risk Training for Neural Machine Translation. In Proceedings of the 54th Annual Meeting of the Association for Computational Linguistics (pp. 1683-1692).
[5] Cheng, Y., Xu, W., He, Z., He, W., Wu, H., Sun, M., & Liu, Y. (2016). Semi-Supervised Learning for Neural Machine Translation. In Proceedings of the 54th Annual Meeting of the Association for Computational Linguistics (pp. 1965-1974).
[6] Ding, Y., Liu, Y., Luan, H., & Sun, M. (2017). Visualizing and understanding neural machine translation. In Proceedings of the 55th Annual Meeting of the Association for Computational Linguistics (pp. 1150-1159).
[7] Shaw, P., Uszkoreit, J., & Vaswani, A. (2018). Self-Attention with Relative Position Representations. In Proceedings of the 2018 Conference of the North American Chapter of the Association for Computational Linguistics: Human Language Technologies (pp. 464-468).
[8] Kingma, D. P., & Ba, J. (2015). Adam: A method for stochastic optimization. In Proceedings of the 3rd International Conference on Learning Representations.