- 博客(15)
- 收藏
- 关注
原创 Tokenizer文件缺失报错TypeError:__init_() missing 2 required positional arguments: ‘vocab_file‘ and ‘merge_
加载WizardCoderTokenizer.from_pretrained(…)时出现报错,发现缺少两个文件vocab_file和merge_file。需在tokenizer_config.json文件中增加vocab_file和merge_file对应的文件路径。在tokenizer_config.json文件新增两列,指定这两个文件路径。硬件环境(Ascend/GPU/CPU): Ascend。执行模式(PyNative/ Graph): 不限。MindSpore版本: 2.1。
2024-05-22 03:35:50
717
原创 Tokenizer指向报错TypeError GPT2Tokenizer: __init__ () missing 2 required positional arguments: ‘vocab_fi
命令时,没有指向WizardCoderTokenizer,反而指向了GPT2Tokenizer,导致加载错误。发现在tokenizer_config.json文件中引用了GPT2Tokenizer,需要将其改为WizardCoderTokenizer。3) from_pretrained引用的预训练模型文件中查看是否有指向错误。1) mindformer_book.py中查看tokenizer是否注册。2) run_wizardcoder.yaml文件中查看是否有指向错误。
2024-05-22 03:34:22
449
原创 MindSpore报错:TypeError: Multiply values for specific argument: query_embeds
根据报错信息可以知道我们给query_embeds传了多个值,但是实际上是只需要一个即可,所以我们会首先看下传入的这个 self.query_tokens是不是有问题,我们通过打印分析,self.query_tokens是一个Tensor,不存在多值的情况。此时我们问题定位不仅仅只关注报错,可能是其他问题诱发这个给人误导性的报错,我们走读脚本发现在报错代码的上面有一句。硬件环境(Ascend/GPU/CPU): Ascend。执行模式:静态图 ms2.1。Python版本:3.7。
2024-05-22 03:33:27
323
原创 模型并行策略为 1:1:8 时报错RuntimeError: Stage num is 8 is not equal to stage used: 5
需要满足pipeline_stage小于等于num_layers这一条件。模型跑4层网络,设置并行策略为dp:mp:pp=1:1:8,出现报错。这是因为模型层数只有4层,无法进行pipeline=8的分层切割。硬件环境(Ascend/GPU/CPU): Ascend。执行模式(PyNative/ Graph): 不限。MindSpore版本: 2.2.0。
2024-05-22 03:32:33
229
原创 并行策略为8:1:1时报错RuntimeError: May you need to check if the batch size etc. in your ‘net‘ and ‘parameter
只有数据并行时,将parallel_mode设为0(即数据并行模式),此时optimizer_shard设为True也不影响使用,full_batch参数必须设为False,gradients_mean建议设为True。分析可知,在数据并行的时候也自动开启了模型切分,这是因为配置参数optimizer_shard设为了True,将其设为False后。如果想要使用optimizer_shard,则在数据并行模式下也需要先进行模型切分。硬件环境(Ascend/GPU/CPU): Ascend。
2024-05-22 03:31:53
182
原创 MindSpore模型Pipeline并行训练报错RuntimeError: Stage 0 should has at least 1 parameter. but got none.
在新机器上重装Ascend+MindSpore2.1环境,并行设置dp:mp:pp = 1:1:2时,报如下错误:(只要是设置了pp>1,都报下面的错误)【注意】:MindSpore2.2.0版本,cell_reuse装饰器的写法有变化,不需要后面的括号。应该是开启了cell共享的环境变量,所以报这个pipeline错误。硬件环境(Ascend/GPU/CPU): Ascend。执行模式(PyNative/ Graph): 不限。MindSpore版本: 2.1。
2024-05-22 03:30:08
234
原创 MindSpore8卡报Socket times out问题
MindSpore跑wizardcoder模型,dp:mp:pp=1:2:4,num_layer=16时可以跑通,但是当设置num_layer=20时出现如下报错。硬件环境(Ascend/GPU/CPU): Ascend。因此在多机并行时,只能采用离线切分的方法。执行模式(PyNative/ Graph): 不限。MindSpore版本: 2.2。
2024-05-22 03:28:55
493
原创 MindSpore模型Pipeline并行发现有些卡的log中loss为0
该情况下可能不是问题,pipeline并行需要查看最后一张卡的loss,其余卡的loss均为0。MindSpore模型Pipeline并行发现有些卡的log中loss为0。硬件环境(Ascend/GPU/CPU): Ascend。执行模式(PyNative/ Graph): 不限。MindSpore版本: 2.2。
2024-05-22 03:28:10
439
原创 模型并行显示内存溢出
需要用多卡或者多机跑,整体HBM至少模型大小的4倍。硬件环境(Ascend/GPU/CPU): Ascend。执行模式(PyNative/ Graph): 不限。MindSpore版本: 2.2.0。模型并行显示内存溢出。一般是因为模型太大。
2024-05-22 03:27:28
433
原创 MindSpore大模型并行需要在对应的yaml里面做哪些配置
MindSpore大模型并行需要在对应的yaml里面做哪些配置。硬件环境(Ascend/GPU/CPU): Ascend。执行模式(PyNative/ Graph): 不限。MindSpore版本: 2.2.0。
2024-05-22 03:26:41
389
原创 MindSpore训练大模型报错:BrokenPipeError: [Errno 32] Broken pipe, EOFError
预训练模型太大,导致在加载模型的时候host内存消耗完毕,系统会选择性清理一些进程,以释放一些被占用的内存,导致报此错误。硬件环境(Ascend/GPU/CPU): Ascend。建议排查方向:host内存是否占满,以及内存耗光的原因。执行模式:静态图 ms2.1.1。Python版本:3.7。操作系统平台:Linux。
2024-05-22 03:25:37
483
原创 MindSpore跑模型并行报错ValueError: array split does not result in an equal division
根据报错是slpit的输入的shape不能被size整除,所以报错,我们Parameter原始shape信息是(640,5120), mp(模型并行数)是8。但是报错时成了(10, 5120)显然是经过了二次切分导致。也就是说上面代码中compile会执行一次编译,在for循环时net_with_grade(train_token_idx, train_atten_mask)又会执行一次编译导致出现二次切分。正如前述,加载预训练模型之后报错,我们在报错位置打印出了当时的shape信息,如下。
2024-05-22 03:24:35
524
原创 分布式模型并行报错:operator Mul init failed或者CheckStrategy failed.
遇到此类的CheckStrategy failed 报错,尝试修改报错算子的切分策略,具体策略还需根据实际而定。operator Mul init failed或者CheckStrategy failed.我们结合报错信息中的调用栈可以知道报错的Mul算子的具体位置。然后调整下该算子的切分策略即可。模型并行中Mul算子的切分策略不对,导致该报错。硬件环境(Ascend/GPU/CPU): Ascend。Python版本:3.7。操作系统平台:Linux。分布式模型并行,报错;
2024-05-22 03:23:37
410
原创 Mindrecoder 格式转换报错ValueError: For ‘Mul‘. x.shape and y.shape need to broadcast.
因为mindformers设计的自身特点,在tokenizer时候需要将切分数据长度设置为seq_length + 1,之后再保存为mindrecoder格式,就不会报错。MindFormers基于MindSpore语言,先将数据tokenizer化后再转换为Mindrecoder格式,使用Mindrecoder格式的数据来训练模型;transformers则不需要这种特定的数据格式。硬件环境(Ascend/GPU/CPU): Ascend。执行模式(PyNative/ Graph): 不限。
2024-05-22 03:22:57
511
原创 Mindrecoder 格式转换报错ValueError: For ‘Mul‘. x.shape and y.shape need to broadcast.
因为mindformers设计的自身特点,在tokenizer时候需要将切分数据长度设置为seq_length + 1,之后再保存为mindrecoder格式,就不会报错。MindFormers基于MindSpore语言,先将数据tokenizer化后再转换为Mindrecoder格式,使用Mindrecoder格式的数据来训练模型;transformers则不需要这种特定的数据格式。硬件环境(Ascend/GPU/CPU): Ascend。执行模式(PyNative/ Graph): 不限。
2024-05-22 03:21:58
257
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人