Нейронный машинный перевод

Нейронный машинный перевод (англ. Neural Machine Translation, NMT) — это подход к машинному переводу, при котором используется искусственная нейронная сеть для прогнозирования вероятности последовательности слов, обычно моделируя целые предложения в единой интегрированной модели.

Обзор

В настоящее время этот подход является доминирующим[1][2] и обеспечивает качество перевода, сопоставимое с человеческим при переводе между языками с достаточными ресурсами при определённых условиях[3]. Тем не менее, сохраняются серьёзные вызовы, особенно при работе с языками с недостаточным количеством высококачественных данных[4][5][1], а также при изменении предметной области между обучающими данными и реальными переводимыми текстами[1]. Кроме того, системы нейронного машинного перевода, как правило, склонны к передаче довольно буквальных переводов[5].

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

Модели нейронного машинного перевода вычисляют вероятность [2][6] разных вариантов перевода и выбирают наиболее вероятный из множества возможных. Большинство моделей NMT являются автрорегрессионными: они вычисляют вероятность каждого следующего токена на целевом языке как функцию исходного предложения и ранее предсказанных токенов целевого языка. Итоговая вероятность перевода равна произведению вероятностей отдельных токенов:[2][6]

Различия между моделями NMT прежде всего касаются реализации функции , однако большинство моделей придерживаются архитектуры «кодировщик—декодировщик»[6][7]. Сначала сеть-кодировщик обрабатывает и преобразует исходное предложение в вектор (или матрицу) признаков. Затем декодер пошагово генерирует перевод, учитывая это представление и уже предсказанные токены до момента генерации специального токена конца предложения. Поскольку декодер опирается на собственные предыдущие выходы, такой процесс называется автрорегрессионным.

История

Ранние подходы

В 1987 году Роберт Б. Аллен продемонстрировал применение прямой нейронной сети для перевода автоматически сгенерированных английских предложений с ограниченным словарём из 31 слова на испанский язык. Архитектура сети подбиралась таким образом, чтобы входной и выходной слой соответствовали длине максимальных предложений на исходном и целевом языке, поскольку не существовало универсальных механизмов для кодирования последовательностей произвольной длины в фиксированное представление. Аллен также выдвинул концепцию использования автоассоциативных моделей — одной для кодирования источника и другой для декодирования[8].

В 1991 году Лонни Крисман развил эту идею, обучая раздельные рекурсивные автоассоциативные памяти (RAAM), разработанные Джорданом Б. Поллаком[9] для исходного и целевого языков. Каждая из сетей училась преобразовывать предложение произвольной длины в скрытое представление фиксированной длины и восстанавливать исходное предложение из этого представления. Дополнительно обе сети обучались совместному использованию скрытого слоя, что позволяло энкодеру источника создавать представление, расшифруемое декодером целевого языка[10]. Форкада и Ньеко упростили эту модель в 1997 году, предложив прямое обучение энкодера и декодера (под названием «рекурсивная гетероассоциативная память»)[11].

В том же 1997 году Кастаньо и Касакуберта применили рекуррентную сеть Элмана для перевода с очень ограниченным словарём ичислами предложений и низкой сложностью[12][13].

Несмотря на концептуальное сходство указанных подходов с современным NMT, вычислительные ресурсы конца 1980-х — 1990-х годов не позволяли обрабатывать достаточно большие корпуса данных для практического машинного перевода[1][14]. Доминирующими оставались статистические методы машинного перевода.

Гибридные подходы

Во времена преобладания статистического машинного перевода отдельные элементы системы заменялись нейронными модулями при сохранении логлинейной интеграции[1][2]. Например, Хольгер Швенк с коллегами заменил традиционную n-граммная языковая модель на нейронную[15][16], а вероятности перевода фраз — предсказывались с помощью прямых нейронных сетей[17].

seq2seq

Прорыв в сквозном нейронном машинном переводе произошёл в 2013—2014 годах: Кальхбреннер и Блунсом использовали сверточную нейронную сеть для кодирования исходного предложения[18], в то время как Чо с соавторами и Сутскевер с коллегами опирались на рекуррентные сети[19][20]. Все три исследования строили декодер на основе RNN, использующего фиксированное векторное представление исходного текста. Однако на длинных предложениях такие модели показывали низкую эффективность[21][1][2]. Проблема частично решилась с появлением внимания (attention): Бахданау с соавторами добавили модуль attention к архитектуре энкодер—декодер: на каждом шаге декодирования состояния декодера вычисляют взвешенное представление исходного предложения, позволяющее сосредотачиваться на разных его частях[22]. На базе подобных архитектур Baidu запустила первую крупномасштабную систему NMT[23] в 2015 году, а Google Neural Machine Translation — в 2016[24]. С тех пор нейронные модели стали основными на ведущих конференциях по машинному переводу[25].

В 2017 году Геэринг с коллегами объединили сверточный энкодер с attention, улучшив обработку дальних зависимостей в тексте и ускорив перевод за счёт параллелизации[26]. В том же году «Microsoft Translator» запустил онлайновый нейросетевой перевод[27]. Тогда же вышел DeepL Translator, построенный на сверточном энкодере, и по мнению ряда СМИ на тот момент превосходил конкурентов[28][29][30]. Также было показано, что GPT-3 от OpenAI, выпущенная в 2020 году, способна функционировать как система нейронного машинного перевода. Подобные нейросетевые модули используют Microsoft Translator и SYSTRAN.

Трансформер

Реализация трансформера (англ. transformer) — ещё одна сетевая архитектура, хорошо параллелизуемая и предложенная Васвани с соавторами в 2017 году[31]. Как и прежние модели, трансформер задействует механизм внимания для вычисления весов выходов кодировщика при декодировании. Однако сами кодировщик и декодер основаны не на рекуррентности или свёртках, а на механизме внимания (self-attention): каждая новая слой применяет механизм самовнимания к предыдущему. Поскольку внимание само по себе не учитывает порядок токенов, используется явное позиционное кодирование признаков[2][6]. Благодаря отсутствию рекуррентности энкодеры и декодеры этой архитектуры можно обучать параллельно, но оригинальный декодер трансформера остаётся автрорегрессионным, то есть на этапе вывода он по-прежнему генерирует текст по одному токену.

Модель трансформера быстро стала стандартом для промышленных систем NMT[2] и сохраняет преобладание на ведущих конференциях по машинному переводу по состоянию на 2022–2023 годы[32][33].

Весовые коэффициенты NMT-моделей обычно инициализируются случайно и обучаются на параллельных корпусах. Однако большой успех в области обработки естественного языка (NLP) показали большие языковые модели (LLM) (например, BERT), заранее обученные на массивных монолингвальных данных и далее дообучаемые на задачах перевода. Такая стратегия особенно эффективна для языков с малым количеством параллельных корпусов[4]. Пример — модель mBART: сначала трансформер обучается по многоязычному корпусу на задаче восстановления замаскированных токенов, затем дообучается как автоэнкодер на задаче перевода[34].

Генеративные большие языковые модели

Вместо дообучения предобученных языковых моделей для перевода достаточно мощные генеративные модели могут быть напрямую промптированы на перевод произвольных предложений. Такой подход впервые был всесторонне исследован для GPT-3.5 в 2023 году Хенди с соавторами, которые показали, что «системы GPT способны создавать очень беглые и конкурентоспособные переводы даже в нулевом режиме обучения (zero-shot), особенно для пар ресурсово насыщенных языков»[35].

На Конференции по машинному переводу 2023 года были протестированы десятки LLM, большинство из которых показали качество, сравнимое с ручным переводом[33].

Сравнение с статистическим машинным переводом

Нейронный машинный перевод решает ряд проблем статистического подхода:

  • Использование непрерывных представлений токенов устранило проблему разрежённости для редких слов и фраз — модели стали лучше обобщать[18][36].
  • Ограничение по длине n-граммовых моделей, характерное для статистического подхода, приводило к потере контекста. В NMT нет произвольной жёсткой границы контекста, кроме того, attention-модули позволяют явно выбирать важные токены для генерации следующего слова[36].
  • Сквозное обучение одной модели (end-to-end) повысило качество перевода и упростило сам процесс.
  • Для SMT требовались огромные n-граммные модели (вплоть до 7-грамм), занимавшие большие объёмы памяти[37], что для NMT не требуется.

Обучение

Кросс-энтропийный риск

Модели NMT обычно обучаются максимизации правдоподобия обучающих данных. Пусть имеется набор исходных предложений и соответствующих целевых переводов . Необходимо найти параметры модели , максимизирующие сумму правдоподобий всех переводов (для каждого исходного):

На уровне токенов это эквивалентно:

Поскольку интересует максимум, на практике максимизируют логарифм выражения (что предотвращает потери точности из-за перемножения низких вероятностей):

Используя тождество между логарифмом произведения и суммой логарифмов, задача сводится к минимизации кросс-энтропийного риска:

На практике оптимизация производится по мини-батчам методом стохастического градиента.

Teacher forcing

При инференсе автрорегрессионные декодеры на каждом шаге используют предыдущий сгенерированный токен как входной. Однако из-за размера целевого словаря на ранних этапах обучения модель почти всегда ошибается, и следующие шаги обучаются уже на неправильном входе, что сильно замедляет процесс. Поэтому в фазе обучения применяется приём teacher forcing: на каждом шаге модель получает правильный токен из эталонного перевода, игнорируя свои предсказания на предыдущем шаге.

Перевод с помощью запроса большим языковым моделям

Как показано в разделе «История», вместо специальной NMT-системы, обученной на параллельных корпусах, можно просто промптировать генеративную LLM на перевод текста[35]:

  • Генеративные языковые модели не обучаются конкретно на задаче перевода, а лишь на задачи языкового моделирования (предсказания следующего слова) на огромных корпусах разных языков (но доминирующим является английский текст)[38]. После этого организуется дообучение на задачах исполнения инструкций[39].
  • Эти модели не используют архитектуру кодировщик—декодировщик, а состоят только из декодера трансформера.
  • Для сформирования конкурентного качества перевода LLM должны быть намного больше обычных систем NMT. Например, у GPT-3 — 175 млрд параметров[40], у mBART — 680 млн[34], у изначального transformer-big — «лишь» 213 млн[31]. Это увеличивает вычислительные затраты на обучение и использование.

Обобщённо, генеративную LLM можно использовать для перевода в «zero-shot» режиме — просто задав в качестве промпта перевод без примеров. Или предоставить примеры переводов («one-shot» или «few-shot learning»). Например, для таких экспериментов использовались промпты[35]:

### Переведи это предложение с [язык источника] на [целевой язык], Source:
[предложение]
### Target:
Переведите это на 1. [целевой язык]:
[пример 1 — оригинал]
1. [пример 1 — перевод]
Переведите это на 1. [целевой язык]:
[входное предложение]
1.

Примечания

Литература