Понимание алгоритма обучения архитектуры Трансформера

Вопрос или проблема

Я долго думал о маскировании в механизме самовнимания декодера в контексте обучения, и это действительно не имеет для меня смысла. Я просмотрел много источников, и они не помогли.

Дано предложение-источник и целевое предложение для перевода (с английского на немецкий):

source: [I, am, home]
target: [Ich, bin, daheim]  

Затем предложение-источник подается в декодер, где мы применяем самовнимание, и выходная матрица будет нашей матрицей значений $V$ и нашей матрицей ключей $K$ в блоке кросс-внимания нашего декодера.

Для ввода декодера мы смещаем всё целевое предложение вправо и добавляем $<eos>$ в начало: [$<eos>$, Ich, bin]

Теперь переходим к части, с которой у меня проблемы: Когда мы обучаемся, мы делаем один прямой проход этого обучающего примера. Согласно моему пониманию, маскирование позволяет нам обучаться со всеми последующими последовательностями нашего обучающего примера: [$<eos>$, Ich], [$<eos>$]

Выход декодера с замаскированным самовниманием будет матрицей $X$, где каждая строка представляет собой последнее слово в нашей последовательности, обращая внимание на все предыдущие слова. Итак, используем ли мы только эту одну конкретную строку, чтобы сделать наше следующее предсказание, или используем строку и каждую строку выше? Чтобы прояснить:

пример: $x_{2}$ представляет собой результат процесса внимания, где “Ich” обращает внимание на себя и $<eos>$ для подпоследовательности [$<eos>$, Ich]. Так что нам также нужен $x_1$, чтобы предсказать следующее слово “bin”, или как это работает. Я просто очень запутался в точной процедуре обучения и был бы очень рад получить четкое описание.

.

Ответ или решение

Трансформерная архитектура привлекла значительное внимание благодаря своим возможностям в задачах обработки естественного языка. Один из ключевых компонентов трансформера — это механизм самовнимания, особенно в декодере, где используется маскирование. Давайте подробно рассмотрим, как это работает в контексте обучения.

Теория

Основная цель маскирования в самовнимании заключается в том, чтобы модель не заглядывала вперед при генерации последовательностей. В задаче машинного перевода, когда модель обучается переводу с английского на немецкий (например, "I am home" на "Ich bin daheim"), маскирование используется для определения, какие токены могут "видеть" друг друга в процессе генерации.

В каждом шаге декодера модель должна предсказать следующий токен, основываясь только на ранее предсказанных токенах. Таким образом, маскирование скрывает все токены, идущие после текущей позиции, чтобы модель не учитывала информацию, которую она еще не сгенерировала.

Пример

Рассмотрим ваш пример:

  • Источник: [I, am, home]
  • Цель: [Ich, bin, daheim]

При обучение для последовательности [, Ich, bin] выполняется предсказание следующего токена "daheim". Сначала вход в декодер, сдвинутой целевой последовательности ([, Ich, bin]), подается в механизм самовнимания. Маскирование позволяет каждому токену уделять внимание только самому себе и всем предшествующим токенам.

Это приводит к матрице результатов внимания, где каждая строка соответствует одному токену, обращающему внимание на себя и предыдущие токены. Например, символ "Ich" будет только с учетом "" и "Ich", а не "bin" или "daheim".

Применение

В результате, чтобы предсказать следующий токен в декодере, используется только текущее состояние внимания. Если рассматривать пример выше, то для генерации "bin" используются только "" и "Ich", а для предсказания "daheim" — "", "Ich" и "bin".

Это реализация стандартного процесса автокоррекции, где результат для каждого следующего токена формируется на основе всех предыдущих. Таким образом, модель обучается в режиме обучения с учителем, где для каждого шага использованы результаты маскированного самовнимания, чтобы последовательно генерировать следующее слово.

Эта способность генерировать тексты с учетом только предшествующих символов позволяет модели трансформера эффективно обрабатывать задачи перевода и генерации текстов, избегая утечки информации вперед.

Оцените материал
Добавить комментарий

Капча загружается...