Нейронный машинный перевод
Нейронный машинный перевод (англ. 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].
Прорыв в сквозном нейронном машинном переводе произошёл в 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: на каждом шаге модель получает правильный токен из эталонного перевода, игнорируя свои предсказания на предыдущем шаге.
Перевод с помощью запроса большим языковым моделям
Как показано в разделе «История», вместо специальной 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.
Примечания
Литература
- Кённ, Филипп (2020). Neural Machine Translation. Cambridge University Press.
- Штальберг, Феликс (2020). Neural Machine Translation: A Review and Survey.


