AI知识库

53AI知识库

学习大模型的前沿技术与行业应用场景


昇腾 910B 部署满血 DeepSeek-R1

发布日期:2025-02-18 08:25:29 浏览次数: 1754 来源:架构师
推荐语

探索昇腾910B如何高效部署DeepSeek-R1模型,揭示背后的技术细节和挑战。

核心内容:
1. DeepSeek-R1模型的热度及部署需求
2. 昇腾910B部署R1模型的技术方案与挑战
3. 部署过程中的关键步骤和经验分享

杨芳贤
53A创始人/腾讯云(TVP)最具价值专家

春节前打印了 R1 的论文准备细看,打包时候忘记收拾没带回老家,但架不住假日期间 DeepSeek 的热度旱地拔葱,相关技术文章被推送了不少,总算是弥补缺憾。节后上班第一天上午大家忙于排队领红包,下午就都开始讨论起了这个模型,都有尝鲜的需求,最终大佬们拍板决定在 910B 16卡训练机器上来部署满血 R1 模型。于是当晚下载好了模型文件,第二天正式开搞。


总体方案

R1 模型发布的权重是 FP8 的,总体规模在 671B,但是昇腾卡不支持 FP8,因此还需转回到 BF16 类型,那么模型权重占据显存将接近 1.4T ,这样算下来就需要 2 台机器共 32 张昇腾 910B 才足够。

软件方面依然是基于 MindIE,华为方面动作很快第一时间提供了教程和相关软件。


过程与效果

虽然没有用 MindIE 正式提供过推理服务,但是好歹之前在上面做过一些调研和测试。多亏公司内外同事的积极支持,一天之内临近下班前,服务成功拉起,收到了来自满血 R1 的第一个回复,吐字速度超过一般人的阅读速度,基本符合预期。别看过程还算顺利,其中还是经历了不少挠头时刻,下一节将踩过的坑稍作记录,希望能帮到有缘人。


图片



不完全闭坑指南

华为方面提供了一个部署文档

https://www.hiascend.com/software/modelzoo/models/detail/68457b8a51324310aad9a0f55c3e56e3

下面的记录主要围绕这篇文档展开。


权重转换

GitHub R1 项目下没有任何代码,真正的权重转换脚本

https://github.com/deepseek-ai/DeepSeek-V3/blob/main/inference/fp8_cast_bf16.py

在 V3 项目中,而且这个脚本如果要在 NVIDIA 设备运行,需要设备支持 FP8 ,在很多公司还是主流的 A 卡是跑不通的。但是如果你都有了支持 FP8 的 NVIDIA 设备还转什么模型,直接用这样的模型部署 FP8 模型不就完了?一种情况是可能你只有低端的支持 FP8 的硬件,做不了大规模推理,这个时候无从选择还是得用它来转模型,用其他更强的硬件来部署。事实上 NPU 的路线可能更顺利,不存在这样的碰壁和重试。我们两条路都跑通了,要注意的不管用 GPU 还是 NPU 方案,除权重文件外的其他文件还是需要手工复制的。


镜像

文档中给的镜像从名字看像是 arm 平台的,x86 用户一不留神就要掉坑,好在我及时确认,切换到手工安装软件/构建镜像的路线上来,越过了这个大坑。昇腾相关的特定 POC 软件需联系华为方面获取,一共 6 个,软件安装步骤一起要过来,不要遗漏。


权限问题

这部分关于 owner 和 group 的指引应该只适用于官方镜像中的默认用户,在我们的容器环境下要改成 root:root。

rank_table_file

要非常注意格式,不要手工编辑,最好用程序来生成。一个没明说的点是简单类型字段都应该是 str 类型,不要想当然的改成其他类型,比如这个字段server_count,不要给整数类型的值。关于卡编号和 IP 信息如果是只能接触容器环境此时无疑要求助 SRE 获取卡 IP 之类的硬件信息server_id该填主机 IP 还是容器 IP 非常不明确,好在最好证明二者都可以,也有可能这个字段压根不重要。

config.json

mindie-service 的配置文件 config.json ,根据示例配置基本不会出错。要注意的是必须开启多机推理以及ipAddress 和 managementIpAddress 要仔细看文档设置正确,不能无脑照抄文档。在单机设定下一度很重要的 npuDeviceIds 和 worldSize 其实会被忽略。

troubleshooting

mindie-service 服务如果拉起失败,通常只会 silently fail,屏幕上看不到任何有用输出,config.json 中设置的日志文件也没有任何内容。这种情况相当恼人,因为看不到任何反馈,几乎无法继续推进,只能尝试各种可能性,比如猜测前面提到的 rank_table_file 内容未正确配置,甚至怀疑 NPU 卡网络连接以及硬件配置存在问题。好在回到文档中前面跳过的“性能测试”章节,顺利跑通确认了这部分没有问题。但是最后还是笨办法打开局面,通过通读 mindie 相关文档,了解到还有个日志目录位于 $HOME/mindie,其中明白记录着 root cause 是因为有 pip 包未安装。


未解问题

1.4T 的模型是相当庞大的,要从远程复制到本地,带宽如果是 2GB/s 也需要十几分钟。除此之外这个版本的 mindie 加载模型也相当耗时,从执行 daemon 启动命令到服务可用要耗时 1 个小时以上,因此如果没有失败退出,不要怀疑是卡住了,真的只是因为慢。毫无疑问这部分有很大优化空间,只是具体方案只能依赖华为提供了(模型加载慢的问题,华为给了一个方法,可将耗时减到约 10 分钟。 export OMP_NUM_THREADS=1)。

53AI,企业落地大模型首选服务商

产品:场景落地咨询+大模型应用平台+行业解决方案

承诺:免费场景POC验证,效果验证后签署服务协议。零风险落地应用大模型,已交付160+中大型企业

联系我们

售前咨询
186 6662 7370
预约演示
185 8882 0121

微信扫码

和创始人交个朋友

回到顶部

 

加载中...

扫码咨询