Ми перевірили кожен машинний переклад. Саме перевірки були тим, що працювало неправильно.

Мови

Перед випуском нашого набору для перекладу ми запустили його на невеликому прикладі застосунку: 70 рядків у шести форматах (JSON, Flutter ARB, Android, Apple .strings, gettext і Markdown) німецькою, російською, японською, арабською та іспанською, з відкритою моделлю на 27 мільярдів параметрів на нашій власній машині. Кожен перекладений рядок проходить перевірки перед записом. Чотири з 350 були відхилені. Усі чотири відхилення були помилковими.

Що шукають перевірки

Переклад, який ламає застосунок, гірший за відсутність перекладу, тому кожен рядок має зберігати свої заповнювачі (%1$s, {name}, {{count}}), теги, розриви рядків і URL-адреси; він має бути написаний графікою цільової мови; він не має бути порожнім, надмірно довгим або залишатися англійською; а форми множини мають покривати рівно ті категорії, які є в мові. Рядок, який не пройшов перевірку, запитують повторно з зазначенням проблеми, а той, що не пройде вдруге, пропускають, тож застосунок покаже англійський варіант для цього одного рядка.

Чотири відхилення

Після виправлення перевірок другий запуск попросив модель лише для тих чотирьох рядків, оскільки решта вже була в пам’яті перекладів, і записав усі 350 за 45 секунд.

Частина, яка, як ми очікували, мала провалитися, але не провалилася

Множинні форми — саме тут наївний переклад дає збій: в англійській є одна й інші, у російській — одна, кілька, багато й інші, в арабській — шість категорій, в японській — єдина форма. Ми запитали саме про категорії цільової мови й перевірили заповнювачі в кожній формі. Модель написала «1 день, 2 дня, 5 дней» для російської та всі шість арабських форм. Кожна Android-множина пройшла з першої спроби в усіх п’яти мовах, як і кожне повідомлення з множиною, окрім японського, яке наша перевірка неправильно прочитала.

Те, що не вловить жодна перевірка

Потім ми переклали 22 веб-рядки з прикладу всіма 42 мовами, які знає Polyglot: 924 з 924 рядків пройшли. Під час читання виділився один. Кхмерською «You are offline» повернувся реченням, що означає «ви в мережі». Це граматично правильна кхмерська в потрібному письмі, без пропусків, тож усі перевірки її пропустили. Перевірки ловлять те, що ламає застосунок; неправильне значення потребує людини, яка читає цією мовою.

Головний висновок

Автоматичні перевірки машинного виводу потребують реального виводу, проти якого їх можна перевірити. Модульні тести з вигаданими перекладами проходили; реальна модель, що пише справжню японську, знайшла прогалини за хвилини. Polyglot постачається з цими виправленими перевірками та тестами для кожного з чотирьох випадків.

Оновлено: