Михаил Дайчик, менеджер технических программ Google, рассказал в корпоративном блоге поисковика о том, как он исправлял баг в переводчике Google.
Недавно была обнаружена ошибка в Переводчике Google, из-за которой однотипные фразы " is to blame" переводились одним из трех случайных вариантов: " виноват", " в этом виноват" и, что самое неприятное, " не виноват".
Эту ошибку, в частности, можно было заметить при переводе следующих фраз:
"USA is to blame" - "США не виновата"
"Russia is to blame" - "Россия виновата"
"Google is to blame" - "Google не виноват"
"Italy is to blame" - "Италия виновата"
Для того чтобы объяснить, откуда могла появиться эта ошибка, следует коротко рассказать о том, как работает Переводчик Google и в чем его принципиальное отличие от других средств.
Обычные переводчики, как правило, преобразуют грамматические конструкции из одного языка в другой исходя из жестко прописанных правил.
Примером такого правила может быть "если в оригинале использовалась временная форма present perfect, то в русском переводе нужно использовать соответствующую форму для этого глагола".
Эти правила могут быть сложнее или проще. Могут использоваться правила, распознающие сложные конструкции и меняющие порядок слов в конечном тексте. Но в любом случае в традиционных переводчиках их пишут вручную. У этого подхода есть свои преимущества и недостатки, к которым, в частности, можно отнести нечеловеческую сложность работы, требующейся для того, чтобы покрыть такими правилами все разнообразие языка.
Переводчик Google устроен принципиально иначе. У нас есть набор статистических эвристик, например, "эта последовательность слов обычно переводится так", который дополнен рядом вспомогательных правил, обобщающих группы слов. Этих правил больше, чем можно найти в традиционных словарях, поэтому они не проходят ручную обработку, а генерируются автоматически.
Изначально для обучения Переводчика Google мы взяли набор текстов, переведенных максимально близко к оригиналу. В дальнейшем для усовершенствования правил мы дали пользователям возможность присылать нам переводы тех фраз, которые Переводчик перевел некорректно.
Откуда появились правила, по которым осуществлялся перевод "США не виновата", пока еще до конца не ясно, но мы предполагаем, что из предложений пользователей.
В любом случае, ошибка была устранена в кратчайшие сроки и, надеюсь, не повторится.
Хронология событий:
16:28 Я (Михаил Дайчик) получил сообщение о баге.
16:57 Баг передан команде поддержки. Так как команда поддержки находится в другом часовом поясе, у них была глубокая ночь.
17:32 Баг эскалирован, для чего разбудили инженера из команды технической поддержки Переводчика.
19:18 Фикс готов, тестирование началось.
19:39 Патч начали выкатывать на датацентры.
~ 20:10 Изменения вступили в силу во всем мире.