Я читаю модельную статью BERT. В задаче «Маскированная языковая модель» во время предварительного обучения модели BERT в документе говорится, что модель будет выбирать 15% токенов в случайном порядке. В выбранном токене (Ti) 80% будет заменено токеном [MASK], 10% Ti останется без изменений и 10% Ti будет заменено другим словом. Думаю, модель просто нужно заменить на [МАСКА] или достаточно другого слова. Почему модель должна выбирать слово случайным образом и оставлять его неизменным? Предсказывает ли процесс предварительного обучения только токен [MASK] или 15% всего случайного токена?
Почему модель BERT должна сохранять 10% токена MASK неизменным?
Ответы (1)
Это сделано потому, что они хотят предварительно обучить двунаправленную модель. В большинстве случаев сеть будет видеть предложение с токеном [MASK] и обучена предсказывать слово, которое должно быть там. Но при тонкой настройке, которая выполняется после предварительного обучения (тонкая настройка - это обучение, которое проводят все, кто хочет использовать BERT для своей задачи), токенов [MASK] нет! (если вы специально не делаете LM в маске).
Это несоответствие предтренинга и обучения (внезапное исчезновение токена [MASK]) ими смягчается, с вероятностью 15% слово не заменяется на [MASK]. Задача все еще существует, сеть должна предсказать токен, но на самом деле она уже получает ответ в качестве входных данных. Это может показаться нелогичным, но имеет смысл в сочетании с тренировкой [MASK].