#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 виноват. Это предсказание следующего предложения. Изменено, о котором идет речь. Спасибо.