训练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所示。
ChatGLMv3-6B
在训练开始前,针对ChatGLMv3-6B模型中的tokenizer文件,需要修改代码。修改文件chatglm3-6b/tokenization_chatglm.py 。
文件最后几处代码中需要修改,具体位置可根据上下文代码信息进行查找,修改后如图2所示。
GLMv4-9B
在训练开始前,针对ChatGLMv4-9B模型中的tokenizer文件,需要修改代码。修改文件chatglm4-9b/tokenization_chatglm.py 。
文件最后几处代码中需要修改,具体位置可根据上下文代码信息进行查找,修改后如图4所示。
Qwen系列
在进行HuggingFace权重转换Megatron前,针对Qwen系列模型(qwen-7b、qwen-14b、qwen-72b)中的tokenizer 文件,需要修改代码。
修改tokenizer目录下面modeling_qwen.py文件,具体位置可根据上下文代码信息进行查找,修改后如图6所示。