Finetune时更改tokenizer词表

由于模型训练的需要,当前词表对分词操作不理想,因此选择修改tokenizer词表~

在special_tokens中添加不想被拆分开的单词或者文字

special_tokens = []
with open("待添加词所在文件", "r") as f_vocab:
    for line in f_vocab:
        special_tokens.append(line.strip())

tokenizer = AutoTokenizer.from_pretrained(
    model_args.model_name_or_path, additional_special_tokens=special_tokens)

如果只做到这一步那么会在运行时出现以下错误(当然以下错误还可能是由于其他原因

RuntimeError: CUDA error: CUBLAS_STATUS_NOT_INITIALIZED when calling `cublasCreate(handle)`

 所以一定!!!要在加载模型之后修改词表大小

model.resize_token_embeddings(len(tokenizer.vocab))

之后就可以顺利进行啦~

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