Я пытаюсь внедрить символ RNN с целью исправления заклинаний и токенизации. Модель основана на практической реализации Pytorch GRU-RNN модели seq2seq - функция потерь маскируется кросс-энтропией, как они используют здесь, и я использую двухслойную GRU для моего кодера / декодера. Я также использую плановую выборку с коэффициентом принуждения учителей 0,5.
Проблема, с которой я столкнулся, заключается в том, что система пытается выдать конечные токены. Предложения, такие как «do3s t4is w0rk», корректно изменяются на «делает эту работу», но затем выводятся случайные токены до тех пор, пока система не достигнет своей максимальной выходной длины или, казалось бы, случайно не опускает токен EOS, делая вывод, похожий на «делает это workkkkkk orwk EOS '.
У кого-нибудь есть понимание этой проблемы? Я попытался разоблачить свою функцию потери, но теперь это привело к тому, что система выводила токены PAD. Система способна переоборудовать очень простые сеты, поэтому я не думаю, что в обучении есть ошибка. Любой вклад будет оценен!