ymcui/Chinese-LLaMA-Alpaca-2

词汇表扩充后出现错误?

Shajiu opened this issue · 1 comments

提交前必须检查以下项目

  • 请确保使用的是仓库最新代码(git pull),一些问题已被解决和修复。
  • 我已阅读项目文档FAQ章节并且已在Issue中对问题进行了搜索,没有找到相似问题和解决方案。
  • 第三方插件问题:例如llama.cppLangChaintext-generation-webui等,同时建议到对应的项目中查找解决方案。

问题类型

模型训练与精调

基础模型

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

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

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

运行日志或截图

# 请在此处粘贴运行日志(请粘贴在本代码块里)

Duplicate #543