Machine Translation
Машинный перевод (MT) преобразует текст или речь с одного языка на другой. Разбираем машинный перевод на основе правил, статистических методов и нейросетей, метрики BLEU и COMET, а также LLM.
Машинный перевод (МП) — это автоматический перевод текста или речи с одного языка на другой. Это одна из старейших задач обработки естественного языка (NLP) и одна из самых востребованных: Google Translate, DeepL и Microsoft Translator переводят веб-страницы, документы, сообщения в чатах, описания товаров и устные разговоры в масштабах, недоступных ни одной команде переводчиков. Современные системы используют нейронные сети, а большие языковые модели (LLMs) умеют переводить как одну из общих задач.
От правил к статистике и нейронным сетям#
В ходе Джорджтаунско-IBM-эксперимента 1954 года более шестидесяти русских предложений перевели на английский язык с помощью словаря из 250 слов и шести грамматических правил, а организаторы предсказали, что машинный перевод будет решён за несколько лет. В 1966 году в отчёте ALPAC машинный перевод признали более медленным и менее точным, чем человеческий, а финансирование исследований машинного перевода в США резко сократили. Системы на основе правил, такие как SYSTRAN, основанная в 1968 году, вручную кодировали словари и грамматические правила для каждой языковой пары.
Статистический машинный перевод обучался переводу на данных. В 1993 году исследователи IBM под руководством Питера Брауна опубликовали модели выравнивания слов, которые определяли соответствия между французскими и английскими словами на основе двуязычных протоколов канадского парламента; машинный перевод на основе фраз (2003) переводил многословные фрагменты — именно этот подход использовал Google Translate после запуска в 2006 году. Нейронный машинный перевод заменил статистический конвейер одной сетью, обучаемой сквозным методом: модель «последовательность в последовательность» Ильи Суцкевера и его коллег (2014) использовала сети долгой краткосрочной памяти (LSTM), чтобы закодировать предложение в один вектор, а затем декодировать его на другом языке; Дзмитрий Бахданау, Кюнхён Чо и Йошуа Бенжи добавили механизм внимания, позволяющий декодеру обращаться ко всем словам исходного текста. В оценке 2016 года, где люди сравнивали варианты перевода простых предложений, нейросетевая система Google в среднем на 60% сократила число ошибок относительно действовавшей системы на основе фраз, а трансформер, представленный в следующем году для перевода, достиг показателей BLEU 28,4 для перевода с английского на немецкий и 41,8 для перевода с английского на французский на тестах WMT 2014.
Как работает нейронный машинный перевод#
Исходный текст разбивается на субсловные токены с помощью методов токенизации, например кодирования пар байтов, поэтому редкие слова и имена раскладываются на известные фрагменты. Энкодер преобразует всё исходное предложение в контекстные векторы, а декодер записывает перевод по одному токену за раз, учитывая как уже записанные токены, так и векторы энкодера посредством перекрёстного внимания:
Поскольку энкодер считывает всё предложение до того, как декодер начинает запись, перевод каждого слова зависит от контекста:
from transformers import AutoModelForSeq2SeqLM, AutoTokenizer
# T5 is an encoder-decoder transformer; a text prefix selects the translation task
tokenizer = AutoTokenizer.from_pretrained("google-t5/t5-small")
model = AutoModelForSeq2SeqLM.from_pretrained("google-t5/t5-small")
sentences = ["She went to the bank to open an account.", "They had a picnic on the bank of the river."]
inputs = tokenizer([f"translate English to German: {s}" for s in sentences], return_tensors="pt", padding=True)
# The decoder writes each German sentence one token at a time with beam search
outputs = model.generate(**inputs, num_beams=4, max_new_tokens=40)
for source, translation in zip(sentences, tokenizer.batch_decode(outputs, skip_special_tokens=True)):
print(f"{source} -> {translation}")T5-small Google с 60 миллионами параметров, обученная в том числе на переводе с английского на немецкий, переводит слово «bank» как «Bank» (финансовое учреждение) в предложении «Sie ging an die Bank, um ein Konto zu eröffnen.» и как «Ufer» (берег реки) в предложении «Sie hatten ein Picknick am Ufer des Flusses.» Кроме того, модель переносит «eröffnen» (открыть) в конец придаточной части, как того требует порядок слов в немецком языке.
Оценка качества перевода#
Метрика BLEU, представленная Кишором Папинени и его коллегами из IBM в 2002 году, оценивает перевод по совпадениям последовательностей слов с одним или несколькими человеческими эталонными переводами, штрафуя за слишком короткий результат. Она дешева и воспроизводима, но даёт низкие оценки корректным переводам, в которых иначе сформулированы мысли по сравнению с эталонами. Обучаемые метрики, такие как COMET (2020), оценивают перевод с помощью нейросети, обученной на человеческих оценках качества; в совместном задании WMT 2022 по метрикам под названием «Stop Using BLEU» выяснилось, что нейронные метрики лучше, чем BLEU, согласуются с оценками экспертов.
Современные системы и проблемы#
Модель NLLB-200 компании Meta (2022) переводит между 200 языками, многие из которых представлены в цифровом виде лишь ограниченным объёмом текста, и повысила BLEU на 44% относительно прежнего лучшего результата на тесте Flores-200. Для языков с ограниченными ресурсами не хватает параллельных обучающих данных, поэтому системы создают синтетические пары с помощью обратного перевода — метода аугментации данных, при котором одноязычный текст на целевом языке переводится на исходный. Нейронные системы также могут галлюцинировать, выдавая беглый текст, не связанный с оригиналом, особенно при зашумлённых входных данных или при работе с языками с ограниченными ресурсами. Известный источник предвзятости — род: турецкое местоимение без указания рода может переводиться как «он» для врача и «она» для медсестры. Поэтому в 2018 году Google Translate стал показывать для некоторых запросов варианты перевода в женском и мужском роде. Машинный перевод сочетается и с другими модальностями: мобильные приложения камеры распознают надписи и меню с помощью оптического распознавания символов (OCR), а системы перевода речи связывают распознавание речи, машинный перевод и синтез речи либо выполняют все три задачи в одной модели. Интерфейс Ultralytics для LLM принимает аргумент image вместе с запросом, поэтому конвейер на Python может одним вызовом передать визуально-языковой модели фотографию вывески и попросить перевести её текст на английский.
Машинный перевод и смежные понятия#
- NLP: Область вычислительной обработки человеческого языка, одна из задач которой — машинный перевод.
- Перевод с помощью LLM: Универсальные модели, например GPT и Gemini, переводят по запросу и могут использовать целый документ или глоссарий в качестве контекста. Специализированные модели машинного перевода обучаются только переводу; NLLB-200 выпускается в дистиллированных вариантах с 600 миллионами и 1,3 миллиарда параметров, охватывающих все 200 языков модели.
- Локализация: Адаптация продукта для рынка, включая форматы дат, валюты, изображения и культурные отсылки. Машинный перевод переводит текст, а команды локализации проверяют и адаптируют его.










