大模型字典中加入特殊字符
在微调大模型的时候会遇到添加特殊字符,例如在微调多轮的数据的时候需要加入人和机器等特殊标识字符,如用这个特殊字符表示人,用这个特殊字符表示机器,从而实现了人机对话。一般在大模型中base字典中不包含这些特殊字符,然后在关于大模型的chat模型中字典会有这几个特殊字符的,只不过每一个大模型的特殊字符表示不一样。接下来我会介绍LLama2-7b模型添加特殊字符。
from transformers import LlamaConfig
from transformers import LlamaForCausalLM
from transformers import LlamaTokenizer
pretrain_model_path = "./pretrained_models/chinese-gsllama-2-7B-round-float16"
config = LlamaConfig.from_pretrained(pretrain_model_path)
tokenizer = LlamaTokenizer.from_pretrained(pretrain_model_path)
model = LlamaForCausalLM.from_pretrained(pretrain_model_path, torch_dtype=torch.float16)
print("llama-7b 字典大小为: ".format(len(tokenizer)))
# 添加特殊字符
tokenizer.add_tokens('<human>')
tokenizer.add_tokens('<assistant>')
print("llama-7b 添加tokens后字典的大小为:",len(tokenizer)