Сходимость по BERT - PullRequest
       36

Сходимость по BERT

0 голосов
/ 27 января 2020

Я тренирую свою собственную реализацию BERT с некоторыми модификациями ALBERT на корпусе 80-метровых пар твитов, и сеть не сходится, если она очень глубокая.

Первый эксперимент, который я провел, был с 6 слоев, 6 головок внимания, dim_qkv = 64, один слой памяти ключа продукта с гиперпараметрами, рекомендованными в статье, маскирование динамических значений c, совместное использование параметров между слоями (все общие), факторизованные вложения с E = 128 и H = 768, накопление градиента для партии размером 1024 и LAMB в качестве оптимизатора (также я провел несколько экспериментов с затуханием скорости обучения Adam + Noam с похожими результатами). Все слои Transformer используют функции активации GELU и LayerNormalization; память ключа продукта использует BatchNormalization, и Dropout не использовался в экспериментах по рекомендации ALBERT.

Эта модель начинает улучшаться после обучения ~ 30 минут (~ 90000 образцов), но, когда я изменил количество слоев и внимание обращено к 8, он не смог начать улучшаться (застрял в какой-то момент обучения на тех же значениях потерь и точности, ~ 3% точности на модели языка маскирования).

После этой неудачи я изменил инициализацию веса с glorot_uniform на truncated_normal с stddev = 0.02, следуя реализации BERT, и модели с 8 слоями и 8 головами внимания теперь сходятся. Проблема в том, что когда я пытаюсь увеличить количество слоев и головок до значения выше 8.

Я пробовал с 10, 12 и 16 слоями, но ни один из них не начинает улучшаться даже после тренировки в течение 12 часов ( ~ 10м образцов). Потери и точность улучшаются очень-очень медленно (~ при той же потере и точности).

Я полностью потерялся в следующих шагах, которые я должен сделать, чтобы сделать обучение более стабильным для этих глубоких сетей. Кто-нибудь испытывал нечто подобное с этими типами моделей или может дать мне некоторые идеи?

РЕДАКТИРОВАТЬ:

Замена оптимизатора LAMB с помощью Adam + Noam с 6000 шагов разогрева, запускается модель с 10 слоями улучшение после 2 часов тренировки.

...