Послідовно-послідовне моделювання з попередніми та TorchText - Підручники з PyTorch 1
Це навчальний посібник з підготовки моделі послідовності до послідовності, яка використовує модуль nn.Transformer.
Випуск PyTorch 1.2 включає стандартний трансформаторний модуль на основі паперу Увага - все, що вам потрібно. Доведено, що модель трансформатора перевершує якість для багатьох проблем послідовності до послідовності, хоча є більш паралельною. Модуль nn.Transformer повністю покладається на механізм уваги (ще один модуль, нещодавно реалізований як nn.MultiheadAttention) для отримання глобальних залежностей між входом і виходом. Модуль nn.Transformer тепер високомодульований, так що один компонент (як nn.TransformerEncoder у цьому посібнику) може бути легко адаптований/складений.

Визначте модель¶
У цьому навчальному посібнику ми навчаємо модель nn.TransformerEncoder щодо завдання моделювання мови. Завдання моделювання мови полягає у призначенні ймовірності того, що дане слово (або послідовність слів) слідує за послідовністю слів. Послідовність лексем передається спочатку шару вбудовування, а потім позиційному шару кодування для обліку порядку слова (докладніше див. У наступному абзаці). Nn.TransformerEncoder складається з декількох шарів nn.TransformerEncoderLayer. Поряд із вхідною послідовністю потрібна квадратна маска уваги, оскільки шари самоорієнтації в nn.TransformerEncoder мають право відвідувати лише попередні позиції в послідовності. Для завдання моделювання мови будь-які маркери на майбутніх позиціях повинні маскуватися. Щоб мати фактичні слова, вихідні дані моделі nn.TransformerEncoder надсилаються на кінцевий лінійний рівень, за яким слідує функція log-Softmax.