Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

关于在MAC上执行的一些发现,非issue #55

Open
krmst opened this issue Oct 1, 2024 · 7 comments
Open

关于在MAC上执行的一些发现,非issue #55

krmst opened this issue Oct 1, 2024 · 7 comments

Comments

@krmst
Copy link

krmst commented Oct 1, 2024

我用MAC执行 1-pretrain.py的时候发现内存占用十分高,不知道个人的PC能否完成从训练到最后执行的全部步骤。
如果能够有一个大概的配置需求或许更加方便一些。
刚刚接触这个项目,如果有看漏的方便指出一下也非常感激。
image

@krmst
Copy link
Author

krmst commented Oct 1, 2024

😇 M1 Pro 16GB训练中自动重启了。供参考。

@jingyaogong
Copy link
Owner

jingyaogong commented Oct 1, 2024

#11 (comment)

可以参考一下这个回答,租一个NVIDIA GPU云服务器,保守估计50元以内一定可以跑通5轮,得到一个不错的结果

image

我的环境的话readme中有所提到

MAC训练这个任务的话,确实比较困难,这个issue简单回答过#6
但是我手边没有M1及以上MAC去验证加速效果和具体时间。

更推荐用GPU云服务去训练,3杯奶茶钱可以训练完项目的全流程,而且是很多轮(其实约等于0成本了)

@krmst
Copy link
Author

krmst commented Oct 1, 2024

MAC训练这个任务的话,确实比较困难,这个issue简单回答过#6
但是我手边没有M1及以上MAC去验证加速效果和具体时间。

非常感谢,刚好我手上有M1的MAC,虽然内存非常小,我会尝试一下看能不能跑得下去。

@krmst krmst changed the title 可否分享一下电脑的配置 电脑配置(关于在MAC上执行) Oct 1, 2024
@krmst
Copy link
Author

krmst commented Oct 1, 2024

@jingyaogong
首先非常感谢你的回答。
我试了将torch.device全部改为torch.device("mps")然后重新运行了1-pretrain.py。最终还是由于内存占用过大而电脑重启。
看起来内存是非常大的瓶颈。请问能否通过调整一些参数来以时间换空间。

我的追问主要源于以下想法:
最初看到这个项目的时候非常心动,立即保存了下来。希望通过对项目的研究来增加自己的认知。
每个项目都有着自己的目标和初衷,我当时看到介绍的时候有感觉到想让更多人能够了解这部分相关知识的意向。不知道以一部分时间来换空间的这个想法是否会背离这个项目的初衷。

@jingyaogong
Copy link
Owner

jingyaogong commented Oct 1, 2024

@jingyaogong
首先非常感谢你的回答。
我试了将torch.device全部改为torch.device("mps")然后重新运行了1-pretrain.py。最终还是由于内存占用过大而电脑重启。
看起来内存是非常大的瓶颈。请问能否通过调整一些参数来以时间换空间。

我的追问主要源于以下想法:
最初看到这个项目的时候非常心动,立即保存了下来。希望通过对项目的研究来增加自己的认知。
每个项目都有着自己的目标和初衷,我当时看到介绍的时候有感觉到想让更多人能够了解这部分相关知识的意向。不知道以一部分时间来换空间的这个想法是否会背离这个项目的初衷。

1-pretrain.py里的batchsize调小,变成16或者8或者4
lmconfig.py里的max_seq_len调到128
还是不行,dim从512往下调,layers从8往下调整

@krmst
Copy link
Author

krmst commented Oct 1, 2024

Activity monitor:
image
workers:
image

之前几次电脑重启看起来都是worker数太多导致内存占用量超过内存总量造成的(物理内存+虚拟swap内存)。
如果电脑内存太小的话建议调小workers数量。

➜  minimind git:(updateRequirements) ✗ python 1-pretrain.py
LLM总参数量:26.878 百万
Epoch:[0/20](0/167653) loss:8.868 lr:0.0002000 epoch_Time:959003.0min:
Epoch:[0/20](100/167653) loss:7.439 lr:0.0002000 epoch_Time:29054.0min:
Epoch:[0/20](200/167653) loss:6.916 lr:0.0002000 epoch_Time:22835.0min:

从Log来看这个时间或许对于学习来说太长了。
尝试删减一些数据来减少轻量学习的时间。

@krmst krmst changed the title 电脑配置(关于在MAC上执行) 关于在MAC上执行的一些发现,非issue Oct 1, 2024
@krmst
Copy link
Author

krmst commented Oct 1, 2024

在mac上如果启用了mps(Metal Performance Shaders)训练速度似乎比cpu还慢
可以安装Stats发现gpu已经达到70%~80%应该是没有在偷懒。虽然速度很慢,但是能效似乎很高(风扇速度比cpu的时候慢很多)。很适合晚上睡觉的时候挂在那里,可供参考。

Epoch:[0/20](0/1574) loss:8.880 lr:0.0002000 epoch_Time:215.0min:
Epoch:[0/20](100/1574) loss:nan lr:0.0002000 epoch_Time:243.0min:
Epoch:[0/20](200/1574) loss:nan lr:0.0002000 epoch_Time:207.0min:
Epoch:[0/20](300/1574) loss:nan lr:0.0002000 epoch_Time:195.0min:

启用MPS之后loss会变成nan

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants