GPT/BERT训练:Creating MTGP constants failed

这个bug有两种原因。
一是在pytorch早期版本中,使用了超过512的序列长度,见:训练bert中的一些坑。
二是config文件和model不相符,有可能是你添加了special token,但是没有添加到model的embedding_size里。
在huggingface系预训练model中,使用这一的句子添加special token是安全的。

def add_special_tokens_(model, tokenizer):
    """ Add special tokens to the tokenizer and the model if they have not already been added. """
    orig_num_tokens = len(tokenizer.encoder)
    num_added_tokens = tokenizer.add_special_tokens(ATTR_TO_SPECIAL_TOKEN) # doesn't add if they are already there
    if num_added_tokens > 0:
         model.resize_token_embeddings(new_num_tokens=orig_num_tokens + num_added_tokens)

你可能感兴趣的:(NLP,pytorch)