科大讯飞星火开源大模型iFlytekSpark-13B GPU版部署方法

星火大模型的主页: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-attentionapex,这两个我都没装过,发现装后者确实有坑。期间也遇到了其他问题,例如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由于各种原因会爆显存。

相关推荐

最近更新

  1. TCP协议是安全的吗?

    2024-04-22 20:42:02       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-04-22 20:42:02       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-04-22 20:42:02       19 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-04-22 20:42:02       20 阅读

热门阅读

  1. CS32 C++ programming

    2024-04-22 20:42:02       12 阅读
  2. LeetCode-94-二叉树的中序遍历

    2024-04-22 20:42:02       11 阅读
  3. springboot接口提高查询速度方法

    2024-04-22 20:42:02       14 阅读
  4. 分治法构建Gray码问题

    2024-04-22 20:42:02       13 阅读
  5. 深入理解与运用Vue 2中的插槽(Slots)

    2024-04-22 20:42:02       13 阅读
  6. 测试testing1

    2024-04-22 20:42:02       14 阅读
  7. Mysql多表联查使用聚合函数常见问题

    2024-04-22 20:42:02       14 阅读
  8. 第七周笔记

    2024-04-22 20:42:02       11 阅读
  9. MySQL运维故障排查与高效解决方案

    2024-04-22 20:42:02       15 阅读
  10. 机器学习笔记 - torch.hub 和 torchvision.models 的区别

    2024-04-22 20:42:02       12 阅读
  11. MySQL运维故障解决方案:实战案例与深度解析

    2024-04-22 20:42:02       12 阅读
  12. JWT原理

    JWT原理

    2024-04-22 20:42:02      14 阅读
  13. Docker - 网络

    2024-04-22 20:42:02       13 阅读
  14. MySQL无法远程连接方案解决(示例)

    2024-04-22 20:42:02       13 阅读
  15. 卸载jenkins和docker

    2024-04-22 20:42:02       13 阅读
  16. 算法=问题的解决方法

    2024-04-22 20:42:02       17 阅读