aI_Challenger 机器翻译

AI_Challenger 机器翻译

官方提供的脚本有不少错误,python脚本从2迁移到了3。 训练脚本中去掉了batch_size项,改用 --worker_gpu_memory_fraction 可以免去内存溢出风险。经尝试,在base、big模式下训练的模型效果很差,只有hparams_set=transformer_base_single_gpu 时,训练的模型效果好。最近在客户提供的单个服务器上用4块v100 32g transformer_big_single_gpu训练6万次时已经比提交结果时用公司的k40结果强多了。自然语言处理,好设备代表好结果。本次比赛,官方的脚本中有错误、许多地方描述不清、定义新问题根本就没有提。初学者shell命令基础比较差时,很难训练出好的模型,也很难生成可以提交的结果。本项目把整个过程脚本化,可以帮助初学者训练出还算不错的模型。才知道,所谓big模式就是生成的模型比较大,需要5个多G。需要注意的是t2t训练的模型最后很难收敛,遇到比较好的模型要及时备份,t2t只留下最新的10个模型。有使用本项目训练出好的汉译英模型的,希望能上传到网盘,给本人一个链接。

git clone https://github.com/dreamnotover/english_chinese_machine_translation_baseline.git 

数据  https://pan.baidu.com/s/1teDqwd3Tbc7cbacpzPpa7A

Neural Machine Translation (English-to-Chinese) baseline for AI_Challenger dataset.

Requirenments

  • python 3.6
  • TensorFlow 1.12.0
  • tensor2tensor
  • jieba 0.39

 1 $mkdir t2t_tmp t2t_data raw_data  、下载数据 解压后放入raw_data,所有官方数据都放入一个文件夹以方便处理

     $unzip raw_data.zip -C raw_data

2 定义新问题 参考 https://blog.csdn.net/hpulfc/article/details/81172498 新问题在./ai_data目录

3、语料预处理与向量化 sh ./prepare.sh sh ./data_gen.sh

4、 训练模型 big模式在4台v100机器上训练,效果比base好多了 big 模式 sh train_big.sh base 模式 sh train_base.sh

5、翻译 将t2t_data里面的字典文件拷贝到 ./dict_path (一定要用自己的),然后预测。(因为翻译时只用到字典,也可指定t2t_data目录) big 模式 sh decode_big.sh base 模式 sh decode_base.sh

6、 提交结果 wrap_xml.pl后面跟三个参数,'<' 代表输入流, '>" 代表输出流

./tools/wrap_xml.pl zh t2t_tmp/ai_challenger_MTEnglishtoChinese_testA_20180827_en.sgm Wenhua < translation_testB_no_space.txt >submit.sgm

7、评估 sh   evaluate.sh

result文件夹放入了本人训练模型得出的结果。有点遗憾,最佳模型未能保留下来,t2t训练过程中会删除旧模型,有好的结果应该及时终止(或用另外一窗口拷贝)并保存好模型。

References

Attention Is All You Need

Ashish Vaswani, Noam Shazeer, Niki Parmar, Jakob Uszkoreit, Llion Jones, Aidan N. Gomez, Lukasz Kaiser, Illia Polosukhin

Full text available at: https://arxiv.org/abs/1706.03762

Code availabel at: https://github.com/tensorflow/tensor2tensor

parameter https://github.com/tensorflow/tensor2tensor/blob/master/tensor2tensor/utils/flags.py

https://github.com/tensorflow/tensor2tensor/tree/master/tensor2tensor/notebooks