华为云用户手册

  • 录制Profiling Ascend PyTorch Profiler是针对PyTorch框架开发的性能数据采集和解析工具,通过在PyTorch训练脚本中插入Ascend PyTorch Profiler接口,执行训练的同时采集性能数据,完成训练后直接输出可视化的性能数据文件,提升了性能分析效率。 Ascend PyTorch Profiler接口可全面采集PyTorch训练场景下的性能数据,主要包括PyTorch层算子信息、CANN层算子信息、底层NPU算子信息、以及算子内存占用信息等,可以全方位分析PyTorch训练时的性能状态。 录制命令如下: 在启动训练脚本基础:步骤三 启动训练脚本 新加DO_PROFILER=1和PROF_SAVE_PATH=/save_path参数,单机启动举例说明: DO_PROFILER=1 PROF_SAVE_PATH=/save_path sh demo.sh localhost 1 0 PROF_SAVE_PATH:Profiling录制结果存放路径 DO_PROFILER:是否开启Profiling录制功能 父主题: 训练脚本说明
  • BF16和FP16说明 在大模型训练中,BF16(Brain Floating Point)和FP16(Float16)都是使用的半精度浮点数格式,但它们在结构和适用性上有一些重要的区别。 BF16:具有8个指数位和7个小数位。在处理大模型时有优势,能够避免在训练过程中数值的上溢或下溢,从而提供更好的稳定性和可靠性,在大模型训练和推理以及权重存储方面更受欢迎。 FP16:用于深度学习训练和推理过程中,可以加速计算并减少内存的占用,对模型准确性的影响在大多数情况下较小。与BF16相比在处理非常大或非常小的数值时遇到困难,导致数值的精度损失。 综上所述,BF16因其与FP32相似的数值范围和稳定性,在大模型训练中提供了优势。而FP16则在计算效率和内存使用方面有其独特的优点,但可能在数值范围和稳定性方面略逊一筹。因此,选择哪种格式往往取决于具体的应用场景和训练需求。 父主题: 训练脚本说明
  • NPU_Flash_Attn融合算子约束 query、key、value都需要梯度。默认开启重计算,则前向时qkv没有梯度,如果需要关闭重计算,可以在yaml配置 `disable_gradient_checkpointing: true` 关闭,但显存占用会直线上升。 attn_mask 只支持布尔(bool)数据类型,或者为None。 query的shape仅支持 [B, N1, S1, D],其中N1≤ 2048,D≤ 512并且dim== 4。 对于GQA,key的shape是 [B, N2, S2, D],其中 N2 ≤ 2048,并且N1是N2的正整数倍。 不满足以上场景,则不能实现NPU_Flash_Attn功能。 父主题: 训练脚本说明
  • falcon-11B模型 在训练开始前,针对falcon-11B模型中的tokenizer文件,需要替换代码。替换文件{work_dir}/tokenizers/falcon-11B/config.json,具体步骤如下: 复制代码包目录下config.json至falcon-11B的tokenizer目录下,样例命令: 进入到代码目录下{work_dir}/llm_train/LLaMAFactory/ascendcloud_patch/models/falcon2/如: cd /home/ma-user/ws/llm_train/LLaMAFactory/ascendcloud_patch/models/falcon2/ 复制config.json文件至加载的权重文件/tokenizer目录下,参考路径上传代码和权重文件到工作环境中的步骤3。 cp -f config.json {work_dir}/tokenizers/falcon-11B/
  • glm4-9b模型 在训练开始前,需要修改glm4-9b模型中的tokenizer文件modeling_chatglm.py内容,具体步骤如下: 进入到tokenizer目录下{work_dir}/tokenizers/glm4-9B/,命令如下: cd /home/ma-user/ws/tokenizers/glm4-9B 修改modeling_chatglm.py文件内容: vim modeling_chatglm.py # 注释掉以下两行内容 # if attention_mask is not None # attention_mask = ~attention_mask 样例图:
  • Git下载代码时报错 在执行scripts/install.sh安装命令或使用Dockerfile构建镜像时,如遇到git下载代码出现以下类似的报错信息,关闭git验证即可。 报错信息: fatal: unable to access 'https://gitee.com/ascend/ModelLink.git/': error setting certificate verify locations: CAfile: /etc/pki/tls/certs/ca-bundle.crt CApath: none 关闭git验证命令如下: git config --global http.sslverify false 父主题: 常见错误原因和解决方法
  • 网卡名称错误 当训练开始时提示网卡名称错误。或者通信超时。可以使用ifconfig命令检查网卡名称配置是否正确。 比如,ifconfig看到当前机器IP对应的网卡名称为enp67s0f5,则可以设置环境变量指定该值。 图1 网卡名称错误 export GLOO_SOCKET_IFNAME=enp67s0f5 # 多机之间使用gloo通信时需要指定网口名称, export TP_SOCKET_IFNAME=enp67s0f5 # 多机之间使用TP通信时需要指定网口名称 export HCCL_SOCKET_IFNAME=enp67s0f5 # 多机之间使用HCCL通信时需要指定网口名称 关于环境变量的解释可以参考:Distributed communication package - torch.distributed — PyTorch 2.3 documentation 父主题: 常见错误原因和解决方法
  • 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文件
  • 网卡名称错误 当训练开始时提示网卡名称错误。或者通信超时。可以使用ifconfig命令检查网卡名称配置是否正确。 比如,ifconfig看到当前机器IP对应的网卡名称为enp67s0f5,则可以设置环境变量指定该值。 export GLOO_SOCKET_IFNAME=enp67s0f5 # 多机之间使用gloo通信时需要指定网口名称, export TP_SOCKET_IFNAME=enp67s0f5 # 多机之间使用TP通信时需要指定网口名称 export HCCL_SOCKET_IFNAME=enp67s0f5 # 多机之间使用HCCL通信时需要指定网口名称 关于环境变量的解释可以参考:Distributed communication package - torch.distributed — PyTorch 2.3 documentation 父主题: 常见错误原因和解决方法
  • ChatGLMv3-6B 在训练开始前,针对ChatGLMv3-6B模型中的tokenizer文件,需要修改代码。修改文件chatglm3-6b/tokenization_chatglm.py 。 文件最后几处代码中需要修改,具体位置可根据上下文代码信息进行查找,修改后如图所示。 图2 修改ChatGLMv3-6B tokenizer文件 图3 修改ChatGLMv3-6B 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文件
  • 查看日志和性能 单击作业详情页面,则可查看训练过程中的详细信息。 图1 查看训练作业 在作业详情页的日志页签,查看最后一个节点的日志,其包含“elapsed time per iteration (ms)”数据,可换算为tokens/s/p的性能数据。 吞吐量(tokens/s/p):global batch size*seq_length/(总卡数*elapsed time per iteration)*1000,其global batch size(GBS)、seq_len(SEQ_LEN)为训练时设置的参数 loss收敛情况:日志里存在lm loss参数 ,lm loss参数随着训练迭代周期持续性减小,并逐渐趋于稳定平缓。 图2 查看日志和性能 父主题: 主流开源大模型基于Standard+OBS+SFS适配ModelLink PyTorch NPU训练指导(6.3.909)
  • 使用基础镜像 通过E CS 获取和上传基础镜像将镜像上传至SWR服务后,可创建训练作业,在“选择镜像”中选择SWR中基础镜像。 由于基础镜像内需要安装固定版本依赖包,如果直接使用基础镜像进行训练,每次创建训练作业时,训练作业的图1中都需要执行 install.sh文件,来安装依赖以及下载完整代码。 以创建llama2-13b预训练作业为例,执行脚本0_pl_pretrain_13b.sh时,命令如下: cd /home/ma-user/work/llm_train/AscendSpeed; sh ./scripts/install.sh; sh ./scripts/llama2/0_pl_pretrain_13b.sh 创建训练作业后,会在节点机器中使用基础镜像创建docker容器,并在容器内进行分布式训练。而install.sh则会在容器内安装依赖以及下载完整的代码。当训练作业结束后,对应的容器也会同步销毁。 图1 训练作业启动命令 父主题: 准备镜像
  • 使用基础镜像 通过ECS获取和上传基础镜像将镜像上传至SWR服务后,可创建训练作业,在“选择镜像”中选择SWR中基础镜像。 由于基础镜像内需要安装固定版本依赖包,如果直接使用基础镜像进行训练,每次创建训练作业时,训练作业的图1中都需要执行 install.sh文件,来安装依赖以及下载完整代码。 以创建llama2-13b预训练作业为例,执行脚本0_pl_pretrain_13b.sh时,命令如下: cd /home/ma-user/work/llm_train/AscendSpeed; sh ./scripts/install.sh; sh ./scripts/llama2/0_pl_pretrain_13b.sh 创建训练作业后,会在节点机器中使用基础镜像创建docker容器,并在容器内进行分布式训练。而install.sh则会在容器内安装依赖以及下载完整的代码。当训练作业结束后,对应的容器也会同步销毁。 图1 训练作业启动命令 父主题: 准备镜像
  • 网卡名称错误 当训练开始时提示网卡名称错误。或者通信超时。可以使用ifconfig命令检查网卡名称配置是否正确。 比如,ifconfig看到当前机器IP对应的网卡名称为enp67s0f5,则可以设置环境变量指定该值。 export GLOO_SOCKET_IFNAME=enp67s0f5 # 多机之间使用gloo通信时需要指定网口名称, export TP_SOCKET_IFNAME=enp67s0f5 # 多机之间使用TP通信时需要指定网口名称 export HCCL_SOCKET_IFNAME=enp67s0f5 # 多机之间使用HCCL通信时需要指定网口名称 关于环境变量的解释可以参考:Distributed communication package - torch.distributed — PyTorch 2.3 documentation 父主题: 常见错误原因和解决方法
  • ChatGLMv3-6B 在训练开始前,针对ChatGLMv3-6B模型中的tokenizer文件,需要修改代码。修改文件chatglm3-6b/tokenization_chatglm.py 。 文件最后几处代码中需要修改,具体位置可根据上下文代码信息进行查找,修改后如图2所示。 图2 修改ChatGLMv3-6B tokenizer文件 图3 修改ChatGLMv3-6B 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文件
  • 查看日志和性能 单击作业详情页面,则可查看训练过程中的详细信息。 图1 查看训练作业 在作业详情页的日志页签,查看最后一个节点的日志,其包含“elapsed time per iteration (ms)”数据,可换算为tokens/s/p的性能数据。 吞吐量(tokens/s/p):global batch size×seq_length/(总卡数×elapsed time per iteration)×1000,其global batch size(GBS)、seq_len(SEQ_LEN)为训练时设置的参数。 loss收敛情况:日志里存在lm loss参数 ,lm loss参数随着训练迭代周期持续性减小,并逐渐趋于稳定平缓。 图2 查看日志和性能 父主题: 主流开源大模型基于Standard+OBS适配ModelLink PyTorch NPU训练指导(6.3.908)
  • 创建OBS桶 ModelArts使用 对象存储服务 (Object Storage Service,简称OBS)进行数据存储以及模型的备份和快照,实现安全、高可靠和低成本的存储需求。因此,在使用ModelArts之前通常先创建一个OBS桶,然后在OBS桶中创建文件夹用于存放数据。 本文档也以将运行代码以及输入输出数据存放OBS为例,请参考创建OBS桶,例如桶名:standard-llama2-13b。并在该桶下创建文件夹目录用于后续存储代码使用,例如:training_data。
  • 录制Profiling Ascend PyTorch Profiler是针对PyTorch框架开发的性能数据采集和解析工具,通过在PyTorch训练脚本中插入Ascend PyTorch Profiler接口,执行训练的同时采集性能数据,完成训练后直接输出可视化的性能数据文件,提升了性能分析效率。 Ascend PyTorch Profiler接口可全面采集PyTorch训练场景下的性能数据,主要包括PyTorch层算子信息、CANN层算子信息、底层NPU算子信息、以及算子内存占用信息等,可以全方位分析PyTorch训练时的性能状态。 录制命令如下: 在启动训练脚本基础上Step3 启动训练脚本 新加DO_PROFILER=1和PROF_SAVE_PATH=/save_path参数,单机启动举例说明: DO_PROFILER=1 PROF_SAVE_PATH=/save_path sh demo.sh localhost 1 0 PROF_SAVE_PATH:Profiling录制结果存放路径 DO_PROFILER:是否开启Profiling录制功能 父主题: 训练脚本说明
  • NPU_Flash_Attn融合算子约束 query、key、value都需要梯度。默认开启重计算,则前向时qkv没有梯度,如果需要关闭重计算,可以在yaml配置 `disable_gradient_checkpointing: true` 关闭,但显存占用会直线上升。 attn_mask 只支持布尔(bool)数据类型,或者为None。 query的shape仅支持 [B, N1, S1, D],其中N1≤ 2048,D≤ 512并且dim== 4。 对于GQA,key的shape是 [B, N2, S2, D],其中 N2 ≤ 2048,并且N1是N2的正整数倍。 不满足以上场景,则不能实现NPU_Flash_Attn功能。 父主题: 训练脚本说明
  • falcon-11B模型 在训练开始前,针对falcon-11B模型中的tokenizer文件,需要替换代码。替换文件{work_dir}/tokenizers/falcon-11B/config.json,具体步骤如下: 复制代码包目录下config.json至falcon-11B的tokenizer目录下,样例命令: 进入到代码目录下{work_dir}/llm_train/LLaMAFactory/ascendcloud_patch/models/falcon2/如: cd /home/ma-user/ws/llm_train/LLaMAFactory/ascendcloud_patch/models/falcon2/ 复制config.json文件至加载的权重文件/tokenizer目录下,参考路径上传代码和权重文件到工作环境中的步骤3。 cp -f config.json {work_dir}/tokenizers/falcon-11B/
  • 模型NPU卡数、梯度累积值取值表 不同模型推荐的训练参数和计算规格要求如表1所示。规格与节点数中的1*节点 & 4*Ascend表示单机4卡,以此类推。 表1 NPU卡数、加速框架、梯度配置取值表 模型 模型参数量 训练类型 序列长度cutoff_len 梯度累积值 优化工具(Deepspeed) 规格与节点数 llama2 7B lora/dpo 4096/8192 gradient_accumulation_steps: 8 ZeRO-1 1*节点 & 1*Ascend sft gradient_accumulation_steps: 8 ZeRO-2 1*节点 & 8*Ascend 13B lora/dpo 4096/8192 gradient_accumulation_steps: 8 ZeRO-2 1*节点 & 1*Ascend sft gradient_accumulation_steps: 8 ZeRO-3 1*节点 & 8*Ascend 70B lora/dpo 4096 gradient_accumulation_steps: 8 ZeRO-3 2*节点 & 8*Ascend 8192 gradient_accumulation_steps: 8 ZeRO-3-Offload 2*节点 & 8*Ascend sft 4096/8192 gradient_accumulation_steps: 4 ZeRO-3-Offload 4*节点 & 8*Ascend llama3 70B lora/dpo 4096/8192 gradient_accumulation_steps: 8 ZeRO-3 2*节点 & 8*Ascend sft gradient_accumulation_steps: 4 ZeRO-3-Offload 4*节点 & 8*Ascend 8B lora/dpo 4096/8192 gradient_accumulation_steps: 8 ZeRO-2 1*节点 & 1*Ascend sft gradient_accumulation_steps: 8 ZeRO-2 1*节点 & 8*Ascend llama3.1 8B lora 4096/8192 gradient_accumulation_steps: 8 ZeRO-1 1*节点 & 1*Ascend sft 4096/8192 gradient_accumulation_steps: 8 ZeRO-2 1*节点 & 8*Ascend 70B lora/dpo 4096 gradient_accumulation_steps: 8 ZeRO-3 2*节点 & 8*Ascend 8192 gradient_accumulation_steps: 8 ZeRO-3-Offload 2*节点 & 8*Ascend sft 4096/8192 gradient_accumulation_steps: 4 ZeRO-3-Offload 4*节点 & 8*Ascend Qwen2 72B lora/dpo 4096 gradient_accumulation_steps: 8 ZeRO-3 2*节点 & 8*Ascend 8192 gradient_accumulation_steps: 8 ZeRO-3-Offload 2*节点 & 8*Ascend sft 4096/8192 gradient_accumulation_steps: 4 ZeRO-3-Offload 4*节点 & 8*Ascend 7B lora/dpo 4096/8192 gradient_accumulation_steps: 8 ZeRO-0 1*节点 & 1*Ascend sft 4096/8192 gradient_accumulation_steps: 8 ZeRO-2 1*节点 & 8*Ascend 0.5/1.5B lora/sft/dpo 4096/8192 gradient_accumulation_steps: 8 ZeRO-0 1*节点 & 1*Ascend Qwen1.5 0.5/1.8B lora/sft/dpo 4096/8192 gradient_accumulation_steps: 8 ZeRO-0 1*节点 & 1*Ascend 4B lora/dpo 4096/8192 gradient_accumulation_steps: 8 ZeRO-1 1*节点 & 1*Ascend sft 4096/8192 gradient_accumulation_steps: 8 ZeRO-1 1*节点 & 4*Ascend 7B lora/dpo 4096/8192 gradient_accumulation_steps: 8 ZeRO-1 1*节点 & 1*Ascend sft 4096/8192 gradient_accumulation_steps: 8 ZeRO-2 1*节点 & 8*Ascend 14B lora/dpo 4096/8192 gradient_accumulation_steps: 8 ZeRO-3 1*节点 & 1*Ascend sft 4096/8192 gradient_accumulation_steps: 8 ZeRO-3 1*节点 & 8*Ascend 32B lora/dpo 4096/8192 gradient_accumulation_steps: 8 ZeRO-3 1*节点 & 4*Ascend sft 4096 gradient_accumulation_steps: 8 ZeRO-3 2*节点 & 8*Ascend sft 8192 gradient_accumulation_steps: 4 ZeRO-3-Offload 2*节点 & 8*Ascend 72B lora/dpo 4096 gradient_accumulation_steps: 8 ZeRO-3 2*节点 & 8*Ascend lora 8192 gradient_accumulation_steps: 8 ZeRO-3-Offload 2*节点 & 8*Ascend sft 4096/8192 gradient_accumulation_steps: 4 ZeRO-3-Offload 4*节点 & 8*Ascend falcon2 11B lora/dpo 4096/8192 gradient_accumulation_steps: 8 ZeRO-2 1*节点 & 1*Ascend sft 4096/8192 gradient_accumulation_steps: 8 ZeRO-2 1*节点 & 8*Ascend GLM4 9B lora 4096/8192 gradient_accumulation_steps: 8 ZeRO-2 1*节点 & 1*Ascend sft 4096/8192 gradient_accumulation_steps: 8 ZeRO-3 1*节点 & 8*Ascend Yi 6B lora/dpo 4096/8192 gradient_accumulation_steps: 8 ZeRO-1 1*节点 & 1*Ascend sft 4096/8192 gradient_accumulation_steps: 8 ZeRO-1 1*节点 & 4*Ascend 34B sft 4096 gradient_accumulation_steps: 8 ZeRO-3 2*节点 & 8*Ascend lora/dpo gradient_accumulation_steps: 8 ZeRO-3 1*节点 & 2*Ascend sft 8192 gradient_accumulation_steps: 8 ZeRO-3 2*节点 & 8*Ascend lora/dpo gradient_accumulation_steps: 8 ZeRO-3 1*节点 & 4*Ascend 以上参数为未开启NPU FlashAttention融合算子,上述参数值仅供参考,请根据自己实际要求合理配置其他加速框架或ZeRO (Zero Redundancy Optimizer)优化器、NPU节点数及其他配置。 具体优化工具使用说明可参考如何选择最佳性能的zero-stage和-offloads。 父主题: 训练脚本说明
  • Git下载代码时报错 在执行scripts/install.sh安装命令或使用Dockerfile构建镜像时,如遇到git下载代码出现以下类似的报错信息,关闭git验证即可。 报错信息: fatal: unable to access 'https://gitee.com/ascend/ModelLink.git/': error setting certificate verify locations: CAfile: /etc/pki/tls/certs/ca-bundle.crt CApath: none 关闭git验证命令如下: git config --global http.sslverify false 父主题: 常见错误原因和解决方法
  • 网卡名称错误 当训练开始时提示网卡名称错误。或者通信超时。可以使用ifconfig命令检查网卡名称配置是否正确。 比如,ifconfig看到当前机器IP对应的网卡名称为enp67s0f5,则可以设置环境变量指定该值。 图1 网卡名称错误 export GLOO_SOCKET_IFNAME=enp67s0f5 # 多机之间使用gloo通信时需要指定网口名称, export TP_SOCKET_IFNAME=enp67s0f5 # 多机之间使用TP通信时需要指定网口名称 export HCCL_SOCKET_IFNAME=enp67s0f5 # 多机之间使用HCCL通信时需要指定网口名称 关于环境变量的解释可以参考:Distributed communication package - torch.distributed — PyTorch 2.3 documentation 父主题: 常见错误原因和解决方法
  • 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文件
  • 网卡名称错误 当训练开始时提示网卡名称错误。或者通信超时。可以使用ifconfig命令检查网卡名称配置是否正确。 比如,ifconfig看到当前机器IP对应的网卡名称为enp67s0f5,则可以设置环境变量指定该值。 export GLOO_SOCKET_IFNAME=enp67s0f5 # 多机之间使用gloo通信时需要指定网口名称, export TP_SOCKET_IFNAME=enp67s0f5 # 多机之间使用TP通信时需要指定网口名称 export HCCL_SOCKET_IFNAME=enp67s0f5 # 多机之间使用HCCL通信时需要指定网口名称 关于环境变量的解释可以参考:Distributed communication package - torch.distributed — PyTorch 2.3 documentation 父主题: 常见错误原因和解决方法
  • 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文件
共100000条
提示

您即将访问非华为云网站,请注意账号财产安全