大模型-驯化】成功解决fused_adam.so: undefined symbol: _ZN3c107WarningC1ENS中fused_adam … [NO] …[OKAY]问题
本次修炼方法请往下查看
🌈 欢迎莅临我的个人主页 👈这里是我工作、学习、实践 IT领域、真诚分享 踩坑集合,智慧小天地!
🎇 相关内容文档获取 微信公众号
🎇 相关内容视频讲解 B站
🎓 博主简介:AI算法驯化师,混迹多个大厂搜索、推荐、广告、数据分析、数据挖掘岗位 个人申请专利40+,熟练掌握机器、深度学习等各类应用算法原理和项目实战经验。
🔧 技术专长: 在机器学习、搜索、广告、推荐、CV、NLP、多模态、数据分析等算法相关领域有丰富的项目实战经验。已累计为求职、科研、学习等需求提供近千次有偿|无偿定制化服务,助力多位小伙伴在学习、求职、工作上少走弯路、提高效率,近一年好评率100% 。
📝 博客风采: 积极分享关于机器学习、深度学习、数据分析、NLP、PyTorch、Python、Linux、工作、项目总结相关的实用内容。
下滑查看解决方法
🎯 1.问题介绍
目前大模型的训练大都是是基于deepspeed来进行多卡并行加速,大家在安装deepspeed成功后,在训练大模型是经常会遇到运行的过程中出现训练:
.cache/torch_extensions/py310_cu118/fused_adam/fused_adam.so: undefined symbol: _ZN3c107WarningC1ENS
💡 2. 问题分析
对于这个问题,博主踩了好几天的坑,最后发现其实最终的原因是deepspeed安装的不成功的问题,对于这个问题,如果大家直接是用的服务器登录,比如学校的小伙伴一般不会遇到这个问题,如果大家使用的是一个docker里面的环境,很有可能会遇到这个问题,对于这个问题,网上一堆的解决方法,博主这边对这个问题给出一个比较好的解决方法,具体我们查看deepspeed安装成功后fused_adam的配置开关情况,这个玩意的作用是deepspeed加速中很重要的一部分,我们可以通过命令:ds_report
来查看机器安装的情况,具体如果安装deepspeed成功,但是对于上述的问题,运行命令ds_report的结果如下所示:
上面的情况就是显示deepspeed没有安全安装成功
💡 3. 解决方法
3.1 常用的解决方法
关于上述的问题,网上通常的解决方法是,重新安装deepspeed,具体的命令如下所示:
对于上述的问题,本人亲自进行了测试,对于第一种直接通过pip isntall
的方法会出现显示还是安装不成功的情况,一定要通过源码进行安装,本人用的是deepspeed 0.13.2+unknown, 具体的安装方法去github上面把相关的包下载解压进行安装,具体如下所示:
pip uninstall deepspeed
tar -zxvf Deepseepd.tar.gz
cd DeepSpeed
DS_BUILD_FUSED_ADAM=1 pip3 install .
通常我们通过上述的代码后,在执行判断安装是否成功会出现如下的情况,执行ds_report
: