jingyaogong / minimind

「大模型」3小时完全从0训练26M的小参数GPT,个人显卡即可推理训练!
https://jingyaogong.github.io/minimind
Apache License 2.0
2.7k stars 329 forks source link

讨论个人GPU的训练时间 #60

Open jingyaogong opened 1 month ago

jingyaogong commented 1 month ago

在某平台上租了2台机器,控制内存CPU等变量的一致性,测试不同GPU的训练时间 image image

个人认为 [3060~2080Ti~3090~4090] 这个区间包含了大部分AI从业者手头的显卡规格,具有很强的代表性

其它桌面GPU,例如3060的算力略弱于2080Ti,可以参考上图换算


如果您手头的机器 < 3060算力/纯CPU/Intel显卡/MAC等等,当然同样可以训练 minimind,这没什么问题。 但是 时间开销「也许」需要几十个小时乃至数天时间,这背离了您上手 minimind 的初衷,恐难以接受。

因此,更推荐这部分朋友在云平台上租用GPU服务器完成训练任务。

如果需要训练更多轮次获得更佳效果,一杯奶茶钱同样可以cover,同时容器化实例省去了配置环境的繁琐步骤

算力平台推荐(无任何推广和商业目的,仅个人分享):


如果您有其他型号的显卡参与MiniMind训练,欢迎分享训练时长,以便为他人提供参考,这将非常有意义,谢谢。

此外,如果您有其他更优算力平台的推荐,也欢迎在评论区补充,谢谢。

jingyaogong commented 1 month ago

补充:

本人设备为单机双卡3090,≈3小时训练1 epoch pretrain +1 epoch full_sft

以上所有讨论均基于26M大小的模型版本展开

Caizkk commented 1 month ago

屏幕截图 2024-10-07 215451 单卡4060ti 16g为啥比你的2080Ti差那么多,我这个时间是正常的吗

jingyaogong commented 1 month ago

屏幕截图 2024-10-07 215451 单卡4060ti 16g为啥比你的2080Ti差那么多,我这个时间是正常的吗

image 半精度确实比2080Ti慢,如果数据准确的话,大约4060Ti是2080Ti 77%的性能

因此4060Ti相同batchsize理论epoch时间换算下来可能是550~580 min

但实际运行时间比理论值再慢100秒+,差异应该体现在CPU和内存上

image

chuanzhubin commented 1 month ago

4卡 2080ti 22G

CUDA_VISIBLE_DEVICES=0,1,2,3 torchrun --nproc_per_node 4 1-pretrain.py
python 3-full_sft.py 
LLM总参数量:26.878 百万
Epoch:[0/19](0/49361) loss:8.855 lr:0.00020000 epoch_Time:1566.0min:
Epoch:[0/19](100/49361) loss:5.565 lr:0.00020000 epoch_Time:326.0min:
Epoch:[0/19](200/49361) loss:4.950 lr:0.00020000 epoch_Time:320.0min:
Epoch:[0/19](300/49361) loss:4.622 lr:0.00020000 epoch_Time:319.0min:
Epoch:[0/19](400/49361) loss:4.381 lr:0.00020000 epoch_Time:317.0min:
Epoch:[0/19](500/49361) loss:4.183 lr:0.00020000 epoch_Time:315.0min:
Epoch:[0/19](600/49361) loss:4.053 lr:0.00020000 epoch_Time:315.0min:
Epoch:[0/19](700/49361) loss:3.734 lr:0.00020000 epoch_Time:314.0min: