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

训练tokenizer文件说明

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

LLama2模型

在当前的软件版本中,由于transformers的版本过高(transformers==4.45.0),导致llama2系列模型与transformers不兼容导致报错,报错如图所示。

解决:在训练开始前,针对llama2模型中的tokenizer,需要修在generation_config.json中加入"do_sample": true,具体如图所示。

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 。

文件最后几处代码中需要修改,具体位置可根据上下文代码信息进行查找,修改后如图2所示。

图2 修改ChatGLMv3-6B tokenizer文件

图3 修改ChatGLMv3-6B tokenizer文件

GLMv4-9B

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

文件最后几处代码中需要修改,具体位置可根据上下文代码信息进行查找,修改后如图4所示。

图4 修改ChatGLMv4-9B tokenizer文件
图5 修改ChatGLMv4-9B tokenizer文件

Qwen系列

在进行HuggingFace权重转换Megatron前,针对Qwen系列模型(qwen-7b、qwen-14b、qwen-72b)中的tokenizer 文件,需要修改代码。

修改tokenizer目录下面modeling_qwen.py文件,具体位置可根据上下文代码信息进行查找,修改后如图6所示。

图6 修改Qwen tokenizer文件

相关文档