Обучение трансформера
Модель трансформера (transformer) была впервые предложена для решения задачи машинного перевода (machine translation), на которой она показала существенный прирост точности по сравнению с существовавшими на тот момент альтернативными моделями перевода, построенными на базе рекуррентных сетей.
Поскольку в трансформере полностью отказались от рекуррентных вычислений, вычисления в трансформере во время обучения оказались легко параллелизуемыми, за счёт чего удалось существенно сократить и время обучения.
Для регуляризации модели в двух местах использовался DropOut:
-
в остаточных блоках отбрасывались случайные элементы преобразованного эмбеддинга перед их суммированием с исходным эмбеддингом;
-
при суммировании эмбеддингов в механизмах внимания случайная часть эмбеддингов также отбрасывалась.
Вероятность отбрасывания нейронов бралась равной .
Также для ускорения обучения и улучшения обобщающей способности сглаживались метки реальных классов (слов целевого языка), т.е. использовался частый приём label smoothing: вместо того чтобы обучать модель давать 100% вероятность правильному переводу, небольшая часть вероятности распределялась между другими словами, что улучило устойчивость и качество перевода, который по своей природе неоднозначный.