科大讯飞星火开源大模型iFlytekSpark-13B GPU版部署方法
创始人
2024-11-10 13:39:05

星火大模型的主页:iFlytekSpark-13B: 讯飞星火开源-13B(iFlytekSpark-13B)拥有130亿参数,新一代认知大模型,一经发布,众多科研院所和高校便期待科大讯飞能够开源。 为了让大家使用的更加方便,科大讯飞增加了更多的数据,并针对工具链进行了优化。此次正式开源拥有130亿参数的iFlytekSpark-13B模型(讯飞星火开源-13B),也是首个基于全国产化算力平台“飞星一号”的大模型,正式开源!icon-default.png?t=N7T8https://gitee.com/iflytekopensource/iFlytekSpark-13B其介绍已经说得很详细了,我只是简单总结一下GPU版的推理部署方法。这里是GPU版的说明页面:deepspeed-megatron/README.md · 讯飞星火开源/iFlytekSpark-13B - Gitee.comicon-default.png?t=N7T8https://gitee.com/iflytekopensource/iFlytekSpark-13B/blob/master/deepspeed-megatron/README.md严格按照其环境要求配置环境环境即可。里面也说到,需要手动安装flash-attention和apex,这两个我都没装过,发现装后者确实有坑。期间也遇到了其他问题,例如CUDA版本之类,但都好解决,但是apex安装之后,发现有各种问题。例如报:No module named 'fused_layer_norm_cuda'。

也有博客中有解决方法:ModuleNotFoundError: No module named ‘fused_layer_norm_cuda‘_modulenotfounderror: no module named 'fused_layer_-CSDN博客文章浏览阅读5.3k次,点赞5次,收藏22次。Nvidia Apex安装与简单使用_modulenotfounderror: no module named 'fused_layer_norm_cudahttps://blog.csdn.net/Zhangye1011/article/details/125962036但是照做还是会报错,试了无数次,最终在这里看到:GPU版本报错no module named 'fused_layer_norm_cuda' · Issue #I91FJC · 讯飞星火开源/iFlytekSpark-13B - Gitee.com

结合上面的博客,感觉有可能确实是分支的问题。 apex也确实有这样的分支:

GitHub - NVIDIA/apex at 22.04-dev

所以把repo clone下来之后,首先:

git checkout 22.04-dev

再运行:

pip install -v --disable-pip-version-check --no-cache-dir --global-option="--cpp_ext" --global-option="--cuda_ext" ./

竟然就没错了!想不通这么多人遇到的问题为啥不好好解决。

另外就是下载已经训练好的模型,是在这里下载:

iFlytekSpark-13B-model-GPU: 星火开源大模型13BGPU的模型权重icon-default.png?t=N7T8https://gitee.com/iflytekopensource/i-flytek-spark-13-b-model-gpu需要注意的是,如上面repo里介绍的,由于模型太大所以使用Git LFS存储,如果直接用git clone是没法下载的。需要做的是先安装Git LFS(有很多git工具已经自带了):

sudo apt-get install git-lfs

然后:

git lfs install

接下来就可以clone这个repo了:

git lfs clone https://gitee.com/iflytekopensource/i-flytek-spark-13-b-model-gpu.git

需要注意的是,从网页上看mp_rank_00_model_states.pt大概大小有50GB,两个权重文件加起来也只有100GB,我怎么clone了458GB。估计是因为repo中多次commit,不知道设置clone深度会不会解决,我没有测试。

最后总结一下目录关系,这点repo里写得也不是很详细:

运行推理的bash脚本在:iFlytekSpark-13B/deepspeed-megatron/examples_deepspeed/iFlytekSpark里,但是repo和bash脚本里写的权重文件和tokenizer的位置:

# 若文件结构如上所示,则对应参数如下 from_pretrained="/data/ckpt_download" tokenizer_file="/data/tokenizer/tokenizer" #注意使用tokenizer/目录下.model和vocab的前缀名字tokenizer ,而不是只到tokenizer/目录

让人不明就里,实际上可以写成绝对路径,例如我为方便起见,改成了:

from_pretrained="/home/quyu/Projects/iFlytekSpark-13B/Data/ckpt_download" tokenizer_file="/home/quyu/Projects/iFlytekSpark-13B/Data/tokenizer/tokenizer"

最后说说硬件要求,我做完了以上配置就不报别的错了,只是还是显存溢出了,我的电脑是3090*2的,看来最低只能用40GB单卡,两个24GB由于各种原因会爆显存。

相关内容

热门资讯

裸辞做“一人公司”,我后悔了 去年这个时候,一位以色列程序员正在东南亚旅行。他顺手把一个在脑子里转了很久的想法做成了产品,一个让任...
南京建成国内首个Pre-6G试... 4月21日,2026全球6G技术与产业生态大会在南京开幕。全息互动技术展台前,一名远在北京的工作人员...
超梵求职受邀参加“2025抖音... 超梵求职受邀参加“2025抖音巨量引擎成人教育行业生态大会”,探讨分享优质内容传播,服务万千学员。 ...
摩托罗拉Razr 2026(R... IT之家 4 月 22 日消息,摩托罗拉宣布新一代 Razr 折叠手机将于 4 月 29 日在美国发...
库克卸任,特纳斯领航:苹果新纪... 苹果首席执行官蒂姆·库克将卸任,硬件工程主管约翰·特纳斯将接任,苹果公司今天宣布此事。 库克将在夏季...