- BrainTools - https://www.braintools.ru -
Современный Google переводчик это 249 языков, 100 миллиардов переведенных слов в день и 200 миллионов уникальных пользователей в день.

Понадобилось более 70 лет эволюции, чтобы прийти к таким результатам. Давайте вместе посмотрим как это работает.

Компьютерный перевод прошел три разных этапа.
Интуитивный (правила + словарь). Всё началось с того, что лингвисты и программисты, владеющие двумя языками, загрузили в машину словарь и прописали набор правил: как именно нужно переводить. Алгоритм двигался по тексту слева направо и подставлял перевод для каждого слова. Главная беда — крошечное «поле зрения [1]». Система видела лишь несколько слов слева и справа от текущего. Она не знала, о чём шла речь в предыдущем предложении. Более того, она даже не помнила, какие слова стояли в начале того же самого предложения, которое прямо сейчас переводила.
Статистический (с 1990-х). В девяностых начался качественно новый этап: компьютер научился переводить сам. Ключевое отличие в том, что людям больше не нужно понимать ни русский, ни английский, ни любой другой язык. Не нужен стал и словарь. Для программы все слова превращались в бессмысленные иероглифы, как для человека, который никогда их не изучал. При этом «поле зрения» заметно выросло: система переводила уже целое предложение. Но что было в предыдущих предложениях, по-прежнему, оставалось за кадром.
Нейросетевой (архитектура «трансформер»). Вишенка на торте — современные переводчики на нейросетях. Строго говоря, они даже не переводят. Они умеют читать и понимать смысл текстов сразу на всех языках, а перевод это лишь одно из их универсальных умений. Когда мы просим такой переводчик перевести текст, он сначала читает его целиком и запоминает смысл. А потом просто пересказывает этот смысл на другом языке, стараясь по возможности сохранить и порядок информации, и стилистику оригинала.
А теперь давайте по порядку, как же это работает «на пальцах».
Первая публичная демонстрация машинного перевода произошла 7 января 1954 года. Это был эксперимент университета Georgetown и компании IBM.
Джорджтаунский университет — любопытное учебное заведение. Это частный католический (иезуитский) университет в столице США. Уставной фонд, если верить википедии, более 3 миллиардов долларов.
Демонстрация переводчика проведена на компьютере IBM 701. Это первый серийный научном компьютер IBM. Несколько фото для создания атмосферы. Компьютер занимает целую комнату.

Шкафы слева — это процессоры.
Процессоры работали на вот таких логических элементах.
Оператор вводил предложения на русском языке на перфокартах (картонках с дырочками). Экрана (монитора) не было, но было что‑то похожее на пульт управления.

На демонстрации было переведено более 60 предложений. Вот примеры реальных переводов:
Русских букв не было, вводили английскими буквами (транслитерация). Например, предложение «Дороги строятся из бетона» вводили как «Dorogi stroyatsya yiz byetona». Cлово «из» нормальный русскоязычный человек на транслитерации писал бы как iz, а не yiz. Не сразу прочитаешь, что американцы пытались написать. Но не будем придираться, главное, что это работало и получился нормальный перевод «Roads are constructed from concrete». Вот еще примеры реальных переводов из той демонстрации, попробуйте прочитать русские фразы.
Поясню на примере. Компьютер должен был перевести на английский предложение «Величина угла определяется отношением длины дуги к радиусу».
🇷🇺 Vyelyichyina ugla opredelyayetsya otnoshyenyiyem dlyini dugi k radyiusu.
🇺🇸 Magnitude of angle is determined by the relation of length of arc to radius.
Алгоритм работал на основе 6 простых правил и словаря из 250 слов. На самом деле не слов, а начал слов (корней) и окончаний. Например, начало ugl‑ (угл‑) в нашем примере в зависимости от окончания ‑а или ‑я (‑ya) означало угля или угла.
В словаре каждое русское «слов» могло иметь до двух вариантов перевода в зависимости от того, какое слово следовало дальше. Вот словарь из 13 слов, которые понадобятся для нашего предложения.
Кроме двух вариантов перевода для каждого слова дополнительно были фиксированные («захардкоджены» как говорят программисты, жестко зафиксированы) еще три кода. Эти коды подсказывали две вещи: какой из двух вариантов перевода использовать и когда нужно в переводе менять слова местами. Не буду сильно пояснять. Если вы посмотрите выше на правильный вариант перевода на английском и пройдетесь по строчкам, то поймёте как это работало.
Поняли трюк? Вариант перевода выбирается не по смыслу слова, а по «коду» следующего слова. Правило «бери для предшествующего слово вариант 2» или «поменяй местами с предшествующим» — это программа, подогнанная вручную так, чтобы работать на конкретных демонстрационных примерах.
В 60 примерах специально
❌ не было отрицаний
❌ не было вопросов
❌ не было сложных предложений (придаточных, союзов)
❌ никаких идиом (кроме одной, «подшитой» вручную)
✅ только декларативные предложения
✅ почти все глаголы в 3-м лице
✅ артикли подобраны под конкретные слова.
Если заходите подробнее узнать как работал этот переводчик, добро пожаловать в этот сорока страничный текст https://open.unive.it/hitrade/books/HutchinsFirst.pdf [2].
Главный вывод, за пределами демонстрации такой подход не работал. И за следующие 30 лет при помощи самых лучших лингвистов и программистов ни IBM ни другим компаниям так и не удалось заставить качественно работать компьютерный перевод основанный на знаниях из мира человеческого языка (https://mt‑archive.net/ [3]). И этому я вижу как минимум два простых объяснения.
Проблема не в количестве слов в словаре и даже не в сложных словах. Она видна даже в самых простых словах.
Одно слово — множество переводов
Человеческий язык — это не словарь. Значение слов сильно зависит от контекста, то есть от того в каком окружении эти слова используются. Например слово get может переводиться 400 разными смыслами!
Кроме словаря еще есть и грамматика. Издание 1985 года содержит 1800 страниц для английского языка.
В России была компания ABBYY, которая делала продукт для распознавания и перевода текстов, нанимала лучших лингвистов, потратила под сотню миллионов долларов и тоже пришла к выводу, что правилами великий и могучий русский язык описать невозможно. Подробнее в статье: «Горький урок ABBYY: как лингвисты проиграли последнюю битву за NLP [4]».
В США проходят ежегодные соревнования по машинному переводу. С 2000 года их проводит американский институт стандартов (NIST). Методика автоматической оценки качества переводов (метрика BLUE) и способ выбора победителя придуман IBM. Так вот, в августе 2005 года на соревнования впервые приходит компания Google и побеждает во всех четырёх номинациях.
Соревнования были по двум языковым парам:
арабский → английский
китайский → английский.
В каждой паре два «трека данных» (большой и без ограничений). Итог — у Google 4 победы из 4.
Сколько лингвистов в команде Google знали хоть слово на арабском или английском? Ни одного. Ноль!
За счет чего тогда победила Google?
Google победила за счет масштаба данных (доступа к текстам).
Самое главное, что статистический переводчик вообще не использует «смысл» слов, не использует созданный людьми словарь или какую‑либо грамматику.
Всё происходит автоматически. Задайте себе вопрос, можно ли автоматически построить словарь, например, синонимов? Посмотрите на предложения:
«…опытный врач назначил приём…»;
«…опытный доктор назначил приём…».
«Врач» и «доктор» встречаются в почти одинаковом окружении, взаимозаменяемы. С большой вероятностью — синонимы. Лингвисту это понятно по смыслу. А алгоритму — по частоте встречаемости слова в одинаковом окружении. Догадаетесь, как можно автоматически создать словарь антонимов?
Этап 1: Выбор параллельных (переведенных) текстовых корпусов
«Словарь» строится автоматически, но для этого нужны большие наборы хорошо переведенных текстов. В качестве таких переводов Google взял тексты заседаний и решения ООН, европейского союза, а также Библию. Они тщательно переведены на несколько языков.
Этап 2: Статистическое выравнивание слов
Из пар предложений алгоритм (классический — GIZA++, разработанный на базе IBM Models) автоматически решает, какое слово в исходном языке соответствует какому слову в целевом. Например:
Шаг 3. Извлечение фраз: словарь из кусочков
Словарь только по отдельным словам — может быть слишком мелко, а предложение целиком — слишком редко повторяется, поэтому в словарь попадают целые фразы. Фраза — это непрерывная последовательность слов, которая совпадает с последовательностью в другом языке.
Для пары «I get up early every morning / Я встаю рано каждое утро» алгоритм перебирает все непрерывные куски длины от 1 до 5 слов в исходном языке:
|
Длина |
Английский |
Русский |
|---|---|---|
|
1 слово |
I / get / up / early / every / morning |
Я / встаю / рано / каждое / утро |
|
2 слова |
get up / every morning |
встаю / каждое утро |
|
3 слова |
I get up / get up early / early every morning |
Я встаю / встаю рано / рано каждое утро |
|
4 слова |
I get up early / get up early every |
Я встаю рано / встаю рано каждое |
|
5 слов |
I get up early every morning |
встаю рано каждое утро |
Из всего такого «шума» система сохраняет только то, что фактически повторяется в корпусе какое‑то количество раз. В итоге — автоматически собранный словарь фраз с вероятностями. Пример, того как такой словарь может выглядеть:
Видно, что какая‑то фраза может иметь много переводов, даже сохранена статистика как часто в реальных текстах выбирается конкретный перевод.
То что вы увидели выше, это только один из трех кусочков паззла, по сути словарь фраз и их переводов. Его называют Translation Model. Два оставшихся кусочка это Reordering Model и Language Model. Сейчас поясню.

Выше, когда я говорил про создание словаря — я немного обманул и выбрал простое предложение. Слова на русском и в английском переводе шли в одном и том же порядке. В жизни как правило это вообще не так.
На этапе выравнивания слов при построении словаря, алгоритм не требует одинакового порядка фраз на обоих языках. Алгоритм смотрит тысячи разных предложений со словами «мама», «мыть», «рама». И находит соответствующие фразы для перевода не потому, что они идут в одном и том же порядке, а потому, что одинаковые слова встречаются в разных переводимых предложениях.
На пальцах не знаю как это просто пояснить, но главное это то, что кроме словаря, автоматически собирается статистика перестановок: как часто фраза, стоявшая здесь, при переводе встаёт туда.
Параллельные корпуса переводов (ООН, библия) позволяют составить словарь переводимых фраз. Словарь фраз даёт «правильный» перевод по смыслу. Но нужен ещё фильтр: чтобы получилось естественно звучащее предложение, а не набор слов, которые просто переведены.
Для этого Google собрала гигантские моноязычные корпуса — просто огромные наборы текстов на целевом языке перевода. Т.е. если переводим с английского на русский, то надо собрать много текстов на русском. Собрать и посчитала n‑граммы — вероятность, что за одним словом идёт другое.
Например, испанское «Casa Blanca» можно перевести как «House White» или «White House». Словарь фраз скажет — «белый дом». А n‑граммы добавят: в реальных английских текстах «White House» встречается в миллионы раз чаще, чем «House White». Значит, второе — естественнее.
А масштаб у этой статистики был примерно такой:
Один триллион токенов. Девяносто пять миллиардов предложений. Почти миллиард триграмм…
Чтобы прочувствовать статистику вы можете перейти по ссылке https://books.google.com/ngrams/ [7]

Введите здесь фразы через запятую, и получите как часто они встречались в книгах в разные годы.
Все три ингредиента подготовлены. Запускаем статистический перевод текста. Чтобы перевести одно предложение, алгоритм:
Шаг 1. Генерация гипотез (Beam search).
На основании словаря фраз строим много вариантов перевода. Дополнительно строим разные варианты перестановок фраз местами.

Получаем тысячи вариантов (гипотез) перевода одного предложения!
Шаг 2. Оцениваем каждую версию перевода по трем критериям:
вероятность перевода отдельных фраз,
насколько такая смена порядка слов вероятна,
насколько n‑граммы итогового текста совпадают с огромной статистикой целевого языка.
Шаг 3. Выбираем гипотезу с лучшей совокупной оценкой.
Перевод предложения готов! Переходим к следующему предложению из текста.
Десять лет Google Translate работала через Статистический перевод. Перевод производился отдельно для каждого предложения. Никакого смысла между предложениями не передавалось.
Я покажу в чем проблема на примере современно Яндекс переводчика.

Посмотрите на верхний пример. Два абсолютно одинаковых по смыслу текста, только с запятой и с точкой. Как их переводят на английский? В переводе разные местоимения: it и she. Почему? Ведь «собака» и «она» в обоих случаях — одно и то же существо, но переводчик этого не понимает, если «она» и «собака» оказались в разных предложениях. Фундаментальный недостаток Статистического перевода: поле зрения [8] системы — одно предложение. Смысл (контекст) между предложениями может не передаться.
Во втором и третьем примере такой ошибки [9] не происходит.
В 2017 году в самой важной статье современного искусственного интеллекта [10] («Attention Is All You Need», Google) появляется архитектура, которую сейчас все знают под именем Transformer — именно на ней построены все чаты GPT (большие языковые модели). Статья между прочим рассказывает именно про то, как создать переводчик нового типа, а не про эти вот наши чаты.
И главное отличие от Статистического перевода — механизм внимания [11] (attention). При переводе большая языковая модель «видит» весь исходный текст целиком, а не отдельные предложения. Каждое слово переводится с учётом всех остальных слов в абзаце, в документе, в истории диалога.
Обещаю написать статью, где понятными словами расскажу, как же работает механизм внимания. И кто из белорусов о нем рассказал компании Google. Когда сделаю, маякну в моем телеграмм канале «Магия понимания» (@APIMAGIC) [12].
Еще один удивительный факт это то, насколько много информации помещается в нейронную сеть такой архитектуры. Офлайн‑модуль перевода на один язык занимает всего около 40 МБ на телефоне. Статистический словарь фраз на пару языков занимал гигабайты.
И вот что важно: с этого момента переводчик по‑настоящему переводит между двумя редкими языками напрямую, а не «через английский».
В 2019 Google показала M4 (massively multilingual neural machine translation) — одну модель, обученную на 103 языках сразу. Перевод между любыми двумя произвольными языками идёт напрямую, без английского посредника: модель поняла общее для всех языков «пространство смыслов». Начиная с 2023 года после «момента чата GPT» это не кажется удивительным, но тогда это было очень революционным.
В 1972 году Терри Виноград придумал классический тест на понимание. Благодаря переводу мы можем проверить понимает ли нейронная сеть смысл того, что переводит.

Попросим перевести на английский «Мальчик не помещается в чемодан, потому что он слишком маленький.» Как видите современный Google переводчик понимает, что если мальчик не помещается в чемодан, то это потому что именно чемодан слишком маленький, а не мальчик.
Веб версия Яндекс переводчика видимо для экономии ресурсов работает не через большую языковую модель и ошибается. Если мы попросим https://alice.yandex.ru/ [13] перевести этот текст, то этот сервис Яндекса справится без труда.
Спасибо за вашу любознательность.
Автор: Dmitry_Barovik
Источник [14]
Сайт-источник BrainTools: https://www.braintools.ru
Путь до страницы источника: https://www.braintools.ru/article/38165
URLs in this post:
[1] поле зрения: http://www.braintools.ru/article/9711
[2] https://open.unive.it/hitrade/books/HutchinsFirst.pdf: https://open.unive.it/hitrade/books/HutchinsFirst.pdf
[3] https://mt‑archive.net/: https://mt%E2%80%91archive.net/
[4] Горький урок ABBYY: как лингвисты проиграли последнюю битву за NLP: https://sysblok.ru/blog/gorkij%E2%80%91urok%E2%80%91abbyy%E2%80%91kak%E2%80%91lingvisty%E2%80%91proigrali%E2%80%91poslednjuju%E2%80%91bitvu%E2%80%91za%E2%80%91nlp/
[5] Эволюция: http://www.braintools.ru/article/7702
[6] https://catalog.ldc.upenn.edu/LDC2006T13: https://catalog.ldc.upenn.edu/LDC2006T13
[7] https://books.google.com/ngrams/: https://books.google.com/ngrams/
[8] зрения: http://www.braintools.ru/article/6238
[9] ошибки: http://www.braintools.ru/article/4192
[10] интеллекта: http://www.braintools.ru/article/7605
[11] внимания: http://www.braintools.ru/article/7595
[12] «Магия понимания» (@APIMAGIC): https://t.me/APImagic
[13] https://alice.yandex.ru/: https://alice.yandex.ru/
[14] Источник: https://habr.com/ru/articles/1102370/?utm_campaign=1102370&utm_source=habrahabr&utm_medium=rss
Нажмите здесь для печати.