ymcui / Chinese-LLaMA-Alpaca-2

中文LLaMA-2 & Alpaca-2大模型二期项目 + 64K超长上下文模型 (Chinese LLaMA-2 & Alpaca-2 LLMs with 64K long context models)
Apache License 2.0
7k stars 570 forks source link

词汇表扩充后出现错误? #542

Closed Shajiu closed 3 months ago

Shajiu commented 3 months ago

提交前必须检查以下项目

问题类型

模型训练与精调

基础模型

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.这是怎么回事呢? 我不想做两阶段,先训练词嵌入再增量训练,而是直接想词汇表扩充后增量训练。感谢

依赖情况(代码类问题务必提供)

# 请在此处粘贴依赖情况(请粘贴在本代码块里)

运行日志或截图

# 请在此处粘贴运行日志(请粘贴在本代码块里)
ymcui commented 3 months ago

Duplicate #543