Я разрабатываю языковую модель, например https://pytorch.org/tutorials/beginner/transformer_tutorial.html.
Мне непонятно - нужна ли здесь позиционная кодировка? Насколько я понимаю, это необходимо для задачи языкового перевода, потому что декодер должен уметь позиционировать слово из предыдущего вывода в последовательности из кодировщика. Но нужно ли это в языковом моделировании без декодера?
Возможно ли, что слова на выходе кодировщика перемешиваются?
Изменить:
в исходной статье нет пояснений. И я не нашел объяснений в руководствах (например, здесь https://kazemnejad.com/blog/transformer_architecture_positional_encoding/ < / а>).
Я этого не понимаю:
«Поскольку каждое слово в предложении одновременно проходит через стек кодировщика / декодера Transformer, сама модель не имеет никакого смысла позиции / порядка для каждого слова».
С моей точки зрения, кодировщик трансформатора имеет информацию о порядке, потому что его вход - это упорядоченная последовательность (похожая на RNN).
Пытался убрать из модели позиционную кодировку. Работает, но с худшей производительностью.
Полезно ли добавлять такую позиционную кодировку в RNN? Может ли это улучшить его производительность?