THUNLP-MT / THUMT

An open-source neural machine translation toolkit developed by Tsinghua Natural Language Processing Group
BSD 3-Clause "New" or "Revised" License
703 stars 197 forks source link

关于bleu 在wmt2017 de-en #65

Closed zl1300012994 closed 5 years ago

zl1300012994 commented 5 years ago

您好: 我使用了您的THUMT框架,我完全按照UserManual上的参数指令,但我训练了100000step只达到了0.2024bleu,我看您的手册里log显示,5000个step就达到了0.2157,请问是哪些参数我设置的不对吗?希望您能回复

Glaceon31 commented 5 years ago

我貌似没在手册里找到0.2157?手册里在WMT14上5000个step到0.2601,不是在WMT2017上的结果。可以先跑一个完整的训练,再看看在测试集上的BLEU值

zl1300012994 commented 5 years ago

谢谢您的回复,是我口误了,是在wmt14的测试集的bleu,大概我用的是早年的一个手册,上面的数据是0.2157,那我先完整的训练完,再看看评测结果,请问您,是否有印象大概用wmt2017,de-en训练集,训练到模型稳定,需要跑多少个epoch,或者,多少个step(给定batch_size的时候)?最终的loss大概降到多少了,我是第一次做这个,不太清楚,期待您的回复~

Glaceon31 commented 5 years ago

印象中训200000个step的话,100000steps已经离最高点差不多了。最好按照新版本的手册跑,老版本的手册里batch_size设置的太低了,会导致最后的效果差上不少。

minicheshire commented 5 years ago

您好!这里对您的一些疑问进行回复。

以下是一些训练时可以用到的小技巧:

希望能够帮到您!

zl1300012994 commented 5 years ago

感谢你们的回复,还有一项疑问想请教,计算bleu指标时,可能是我没有设置正确,在这份代码中好像是无法正常运行的,全是0,经调试发现在utils/hooks.py中,传入bleu.bleu的reference和candidate格式不一致,我将reference每个词都.decode(utf-8)后,可以正常运行,但是指标不高,我训练了6W个step,同样的reference和candidate,我用opennmt的bleu脚本直接测是27,在这里只有17,请问是我哪里设置不对么? 感谢你们的帮助~祝好

GrittyChen commented 5 years ago

么?

感谢你们的回复,还有一项疑问想请教,计算bleu指标时,可能是我没有设置正确,在这份代码中好像是无法正常运行的,全是0,经调试发现在utils/hooks.py中,传入bleu.bleu的reference和candidate格式不一致,我将reference每个词都.decode(utf-8)后,可以正常运行,但是指标不高,我训练了6W个step,同样的reference和candidate,我用opennmt的bleu脚本直接测是27,在这里只有17,请问是我哪里设置不对么? 感谢你们的帮助~祝好

您好,感谢您对THUMT的支持,关于您对BLEU计算的疑问,我本人测试过,如果使用python3运行THUMT就会出现BLEU值全为0的问题,目前这份代码是不支持python3,我们会在后续增加对python3的支持,建议您目前使用python2.7+版本进行训练和测试,谢谢,祝好!

zl1300012994 commented 5 years ago

感谢您的回复~那我改成 python2.7试试~ 谢谢~祝好~

Felixgithub2017 commented 5 years ago

么?

感谢你们的回复,还有一项疑问想请教,计算bleu指标时,可能是我没有设置正确,在这份代码中好像是无法正常运行的,全是0,经调试发现在utils/hooks.py中,传入bleu.bleu的reference和candidate格式不一致,我将reference每个词都.decode(utf-8)后,可以正常运行,但是指标不高,我训练了6W个step,同样的reference和candidate,我用opennmt的bleu脚本直接测是27,在这里只有17,请问是我哪里设置不对么? 感谢你们的帮助~祝好

您好,感谢您对THUMT的支持,关于您对BLEU计算的疑问,我本人测试过,如果使用python3运行THUMT就会出现BLEU值全为0的问题,目前这份代码是不支持python3,我们会在后续增加对python3的支持,建议您目前使用python2.7+版本进行训练和测试,谢谢,祝好!

我在训练时正好也遇到这个问题,

环境为Ubuntu 16.04, python 3.7

先报以下错误:

Traceback (most recent call last): File "trainer.py", line 508, in main(parse_args()) File "trainer.py", line 342, in main override_parameters(params, args) File "trainer.py", line 200, in override_parameters control_symbols File "/home/felix/Hui_Zeng_Computer_Learning/Natural-Language-Processing/THUNLP-MT/THUMT/thumt/data/vocab.py", line 33, in get_control_mapping if symbol.decode("utf-8") == token.decode("utf-8"): AttributeError: 'str' object has no attribute 'decode'

我去掉两边的.decode("utf-8"),然后可以正常训练。 但是validation的BLEU分数全部是0。

zl1300012994 commented 5 years ago

改成python2的环境就没有问题啦