Точность предварительной подготовки BERT не увеличивается

#machine-learning #deep-learning #nlp #bert-language-model #pre-trained-model

#машинное обучение #глубокое обучение #nlp #bert-language-model #предварительно обученная модель

Вопрос:

Я пытаюсь предварительно обучить BERT набору данных (wiki103), который содержит 150 тыс. предложений. После 12 эпох задача nsp (предсказание следующего предложения) дает точность около 0,76 (переобучается, если я продолжу с большим количеством эпох), а задача mlm (моделирование маскированного языка) начинается с 0,01 acc и продолжается до 0,2 при макс. Что здесь не так? Могу ли я остановить nsp в какой-то момент и продолжать заниматься mlm в течение более длительного периода времени? Длина моего загрузчика поездов составляет 2486 (2486 обучающих шагов за эпохи), что означает 40 * 2486 = 99440 обучающих шагов.

Вот конфигурация модели и конфигурация обучения

 class Train_Config():
""" Hyperparameters for training """
seed: int = 391275 # random seed
batch_size: int = 64
lr: int = 1e-5 # learning rate
n_epochs: int = 40 # the number of epoch
# `warm up` period = warmup(0.1)*total_steps
# linearly increasing learning rate from zero to the specified value(5e-5)
warmup: float = 0.1
is_dibert: bool = False


class Model_Config():
vocab_size: int = 30522  # Size of Vocabulary
hidden_size: int = 768  # Dimension of Hidden Layer in Transformer Encoder
num_hidden_layers: int = 8  # Numher of Hidden Layers
num_attention_heads: int = 8  # Numher of Heads in Multi-Headed Attention Layers
intermediate_size: int = 768 * 4  # Dimension of Intermediate Layers in Positionwise Feedforward Net
# activ_fn: str = "gelu" # Non-linear Activation Function Type in Hidden Layers
max_len: int = 312  # Maximum Length for Positional Embeddings
n_segments: int = 2  # Number of Sentence Segments
attention_probs_dropout_prob: int = 0.1
 

Комментарии:

1. Что такое nsm в этом случае?

2. @Ashwingeetd’S виноват. Это предсказание следующего предложения. Изменено, о котором идет речь. Спасибо.