16
Система распределенного тестирования машинного перевода

Распределенная система тестирования машинного перевода

Embed Size (px)

Citation preview

Page 1: Распределенная система тестирования машинного перевода

Система распределенного

тестирования машинного

перевода

Page 2: Распределенная система тестирования машинного перевода

Система распределенного тестирования машинного перевода

История возникновения системы

•В проекте машинного перевода заняты несколько десятков

человек.

•И программисты, и лингвисты постоянно вносят изменения.

•Для надежного тестирования изменений необходимо перевести

более 10 тысяч предложений.

•На одном компьютере эта задача невыполнима.

Page 3: Распределенная система тестирования машинного перевода

Система распределенного тестирования машинного перевода

Требования к системе

•Производительность.

Необходимо было обеспечить время получения результата при

пиковой нагрузке около10 мин.

•Масштабируемость.

Система должна переносить увеличение числа переводящих ядер в 2

раза.

•Надежность и отказоустойчивость.

Про систему, состоящую из нескольких сотен элементов, с

уверенностью можно сказать: “Если в системе есть ошибка, она

обязательно проявится.”

Т.к. цена простоя системы очень велика, особое внимание при

проектировании уделялось надежности.

Page 4: Распределенная система тестирования машинного перевода

Система распределенного тестирования машинного перевода

Типичные проблемы,

возникающие при построении

больших распределенных систем

•Конфликты при одновременном доступе к ресурсам

Очень многим элементам системы может понадобиться один и тот же

ресурс, например, файл. Способы решения: очереди к ресурсам,

создание копий ресурсов.

•Проблема тестирования

При тестировании тяжело воспроизвести ситуацию экстремальной

нагрузки. Т.е. часть проблем выясняется при пробном пуске. Система

должна иметь очень развитую диагностику, чтобы за минимальное

время выявить проблему. При пуске в эксплуатацию новой версии

нужно предусматривать быстрый откат к предыдущей версии.

Page 5: Распределенная система тестирования машинного перевода

Система распределенного тестирования машинного перевода

Вариант архитектуры 1

База данных переводов

Клиентские машины

Переводящие станции

Page 6: Распределенная система тестирования машинного перевода

Система распределенного тестирования машинного перевода

Вариант архитектуры 2

Сервер управления распределенной

системой.

Клиентские машины

Переводящие станции

База данных

переводов

Page 7: Распределенная система тестирования машинного перевода

Система распределенного тестирования машинного перевода

Вариант архитектуры 3

Центральный серевер, содержащий

базу данных переводов и управление

распределенной системой.

Клиентские машины

Переводящие станции

Page 8: Распределенная система тестирования машинного перевода

Система распределенного тестирования машинного перевода

Архитектура

•В реальности был выбран 3-й вариант, содержащий в одной базе

данных и переводы, и систему управления.

•В такой системе клиенты ничего не знают о станциях перевода,

знают только о базе данных переводов.

•Если клиент что-то хочет перевести, он создает задание в базе.

•Станции перевода ничего не знают о клиентах, знают только о

базе данных переводов.

•Основной цикл работы станции перевода:

Запросить из базы задание и, если есть, – выполнить.

Page 9: Распределенная система тестирования машинного перевода

Система распределенного тестирования машинного перевода

Внутреннее устройство

•Единица работы для клиента – задание. Задание состоит из

множества примеров и бинарных компонентов, осуществляющих

перевод.

•Создание задания полностью лежит на клиенте. Т.к. кроме

множества примеров задание содержит еще и бинарные

компоненты, клиент отправляет бинарные компоненты на

случайную станцию перевода.

•В процессе создания задание режется на пакеты.

•Пакет – единица работы для станции перевода.

Page 10: Распределенная система тестирования машинного перевода

Система распределенного тестирования машинного перевода

Очередь заданий и пул пакетов

•Для того чтобы не работать одновременно с большим

количеством заданий, задания ставятся в очередь. Активны, т.е.

переводятся, только несколько первых в очереди.

•Пул пакетов формируется из пакетов активных заданий. Станции

перевода берут пакеты только из пула.

Пул пакетов

Активные задания

Page 11: Распределенная система тестирования машинного перевода

Система распределенного тестирования машинного перевода

Обеспечение надежности и борьба

с отказами

•Транзакционность

Не должно существовать действий, про которые какой-нибудь

элемент системы может подумать, что он завершен, а он на самом

деле не завершен. Транзакционным должно быть, в том числе, и

копирование файлов.

•Повторение неудавшихся действий

Например, если компьютер, на котором лежит нужный файл, вышел

из строя, нужно просигнализировать, что такого файла в нужном

месте нет, и запросить его еще раз. Конечно, таких попыток не должно

быть слишком много.

Page 12: Распределенная система тестирования машинного перевода

Система распределенного тестирования машинного перевода

Обеспечение надежности и борьба

с отказами

•Восстановление инвариантов

Пакет в нашей системе может находиться в трех состояниях:

•Не поступил в обработку.

•Отдан на обработку на станцию Х, и эта станция единственна.

•Обработан.

Если пакет отдан на обработку на станцию X, а станция

не подает признаков жизни, пакет нужно вернуть в

состояние “не поступил в обработку”.

Page 13: Распределенная система тестирования машинного перевода

Система распределенного тестирования машинного перевода

Обеспечение надежности и борьба

с отказами

•Формальное доказательство правильности важных алгоритмов.

•Мы, например, доказывали следующее утверждение:

Каждое задание, поступившее в систему, будет переведено. Это

значит, что:

•Каждое задание, поставленное в очередь, поступит в обработку.

•Каждый пакет активного задания поступит в обработку.

•Каждый пакет, поступивший в обработку, будет переведен.

Page 14: Распределенная система тестирования машинного перевода

Система распределенного тестирования машинного перевода

Оптимизация

•Специфика нашей системы в том, что с одним заданием связан

большой объем бинарных данных. Чтобы уменьшить количество

копирований, мы стараемся минимизировать количество

компьютеров, участвующих в одном задании.

•Для устранения узких мест мы регистрируем все копии файлов,

находящихся в системе. Станция, которой необходим файл,

случайно выбирает одно из мест, где лежит этот файл.

•Для борьбы с эффектом последнего пакета мы делаем пакеты

двух размеров: большие и маленькие. Первыми в обработку

поступают большие пакеты.

Пакеты одного размера

Пакеты двух разных размеров

Page 15: Распределенная система тестирования машинного перевода

Система распределенного тестирования машинного перевода

Администрирование

•Для уменьшения затрат времени на администрирование, все

основные операции автоматизированы.

•Переустановка бинарных компонентов на переводящих станциях

после выхода нового билда происходит полностью автоматически.

•Включение в систему новой станции делается нажатием одной

кнопки.

Page 16: Распределенная система тестирования машинного перевода

Система распределенного тестирования машинного перевода

Спасибо за внимание!