Open yzlnew opened 6 months ago
系统内存多大呢?以及Trainer的参数是多少?
内存是 1.3T,trainer 大致是这样,内存的 peak 一般是在 merge 时候出现么
trainer = Trainer(order=6, max_vocab_size=80000, min_count=32, isolate_digits=True)
trainer.train(corpus_instance, workers=128, batch_size=2000)
Edit 观察到卡住之后这个配置下,used mem 大致是 300GB
内存是 1.3T,trainer 大致是这样,内存的 peak 一般是在 merge 时候出现么
trainer = Trainer(order=6, max_vocab_size=80000, min_count=32, isolate_digits=True) trainer.train(corpus_instance, workers=128, batch_size=2000)
Edit 观察到卡住之后这个配置下,used mem 大致是 300GB
同有这个现象,测试是200G的wudao数据,内存是1.0T,观察到内存的峰值使用率是100%,似乎是爆内存了
bytePiece版本是commit ID为c50c43ec
输出log如下:
Count Ngrams: 59132213it [4:28:03, 3676.50it/s]
Merge Ngrams: 23% 15/64 [27:49<1:31:37, 112.19s/it]
Merge Ngrams: 30% 19/64 [35:35<1:26:36, 115.48s/it]
Merge Ngrams: 91% 58/64 [1:53:14<12:12, 122.03s/it]
Merge Ngrams: 100% 64/64 [2:05:33<00:00, 117.71s/it]
Prune Ngrams: 100% 7/7 [07:19<00:00, 62.81s/it]
Count Pieces: 5722348it [41:21:27, 3193.81s/it][1] 1991 killed python train_tokenizer.py
所以应当如何限制一下内存吗?
20GB 数据量可以正常训练,100GB 在跑到某一步的时候会卡住。
bytepiece==0.6.3
。某个 thread 的堆栈信息,看不出来,直接问 GPT 似乎是多进程的问题: