我先用sentencepiece训练了一个中文的分词器,并且hf形式保存了special_tokens_map.json tokenizer_config.json tokenizer.model三个模型,随后我把这个词汇表跟llama7b词汇表进行合并,
for p in chinese_spm.pieces:
piece = p.piece
if piece not in llama_spm_tokens_set:
new_p = sp_pb2_model.ModelProto().SentencePiece()
new_p.piece = piece
new_p.score = 0
llama_spm.pieces.append(new_p) # 将训练的分词模型追加新的token到之前的模型
此时最新的词汇表长度为90894,然后我把合并后的三个文件复制到llama中替换原llama中的三个文件,随后又在config.json中把vocab_size:32000 修改为vocab_size:90894,然后加载数据进行训练时出现如下错误:
alueError: Trying to set a tensor of shape torch.Size([32000, 4096]) in "weight" (which has shape torch.Size([90894, 4096])), this look incorrect.这是怎么回事呢?
我不想做两阶段,先训练词嵌入再增量训练,而是直接想词汇表扩充后增量训练。感谢
提交前必须检查以下项目
问题类型
模型训练与精调
基础模型
Chinese-LLaMA-2 (7B/13B)
操作系统
Linux
详细描述问题
我先用sentencepiece训练了一个中文的分词器,并且hf形式保存了special_tokens_map.json tokenizer_config.json tokenizer.model三个模型,随后我把这个词汇表跟llama7b词汇表进行合并, for p in chinese_spm.pieces: piece = p.piece if piece not in llama_spm_tokens_set: new_p = sp_pb2_model.ModelProto().SentencePiece() new_p.piece = piece new_p.score = 0 llama_spm.pieces.append(new_p) # 将训练的分词模型追加新的token到之前的模型 此时最新的词汇表长度为90894,然后我把合并后的三个文件复制到llama中替换原llama中的三个文件,随后又在config.json中把vocab_size:32000 修改为vocab_size:90894,然后加载数据进行训练时出现如下错误: alueError: Trying to set a tensor of shape torch.Size([32000, 4096]) in "weight" (which has shape torch.Size([90894, 4096])), this look incorrect.这是怎么回事呢? 我不想做两阶段,先训练词嵌入再增量训练,而是直接想词汇表扩充后增量训练。感谢
依赖情况(代码类问题务必提供)
运行日志或截图