更新时间:2024-08-17 GMT+08:00
分享

训练tokenizer文件说明

在训练开始前,需要针对模型的tokenizer文件进行修改,不同模型的tokenizer文件修改内容如下,您可在创建的Notebook中对tokenizer文件进行编辑。

Yi模型

在使用Yi模型的chat版本时,由于transformer 4.38版本的bug,导致在读取tokenizer文件时,加载的vocab_size出现类似如下尺寸不匹配的问题。

 RuntimeError: Error(s) in loading state_dict for VocabParallelEmbedding:
 size mismatch for weight: copying a param with shape torch.Size([64000, 4096]) from checkpoint, the shape in current model is torch.Size([63992, 4096]).
需要在训练开始前,修改llm_train/AscendSpeed/yi/3_training.sh文件,并添加--tokenizer-not-use-fast参数。修改后如图1所示。
图1 修改Yi 模型3_training.sh文件

ChatGLMv3-6B

在训练开始前,针对ChatGLMv3-6B模型中的tokenizer文件,需要修改代码。修改文件chatglm3-6b/tokenization_chatglm.py 。

271行要添加注释,修改后如图2所示。

图2 修改ChatGLMv3-6B tokenizer文件

291至300行要修改,修改后如图3所示。

图3 修改ChatGLMv3-6B tokenizer文件

GLMv4-9B

在训练开始前,针对ChatGLMv4-9B模型中的tokenizer文件,需要修改代码。修改文件chatglm4-9b/tokenization_chatglm.py 。

294行要添加注释,修改后如图4所示。

图4 修改ChatGLMv4-9B tokenizer文件

314至323行要修改,修改后如图5所示。

图5 修改ChatGLMv4-9B tokenizer文件

Qwen系列

在进行HuggingFace权重转换Megatron前,针对Qwen系列模型中的tokenizer文件,需要修改代码。

修改tokenizer目录下面modeling_qwen.py文件的第38和39行,修改后如图6所示。

图6 修改Qwen tokenizer文件

相关文档