昇腾 910B 部署大模型:从认卡到 40 人共用一台机器的实录

发布时间:2026/10/21 20:50:30

昇腾 910B 部署大模型:从认卡到 40 人共用一台机器的实录 这台昇腾 910B264GB HBM拿到手时我习惯性地敲了nvidia-smi——屏幕空了。机器里一块 NVIDIA 卡都没有光是认卡这一步就先卡住。这篇记的是给两天课程、40 个人共用一台机器部署大模型的全过程从认卡、配 CANN、下模型、用 vLLM 起服务到给 40 人做目录镜像和端口隔离。所有命令和参数都是真机实测数据没动过。你能直接拿去用的有这些CANN 环境四条开机必做、1.5GB 模型下载三条路径的实测对比、vLLM 起 7B 对话服务与 0.5B 对照服务的完整 serve 参数、自写的 OpenAI 兼容向量服务、40 人隔离方案还有 LoRA 微调 21 秒训完的甜点参数以及 Ollama 在昇腾上的选型结论。第一台机器拿到手我敲的第一条命令是nvidia-smi。回来的是command not found。机器里装的是华为昇腾一块 NVIDIA 的卡都没有。所有我背过的 CUDA 命令、所有教程里的CUDA_VISIBLE_DEVICES、所有一行命令起服务的教程从这一刻起全部作废。我那套已经写好的部署脚本也因此整套作废。它是按 NVIDIA 写的连最后一步的服务校验都是nvidia-smi。后来按昇腾重写的版本脚本名全部换成了ascend_01到ascend_09。一、先认卡四条开机必做1看卡用npu-smi info不是nvidia-smi。而且要先 source 完 CANN 环境才能用。2起任何 NPU 进程前必须 source 两个环境脚本set u source /usr/local/Ascend/cann/set_env.sh 2/dev/null \ || source /usr/local/Ascend/ascend-toolkit/set_env.sh source /usr/local/Ascend/nnal/atb/set_env.sh set -u少了 atb 那个会报libatb.so: cannot open shared object file。 而开头那个set u也不能省昇腾的 set_env.sh 内部引用了未定义变量不开掉 nounset 就崩在这一行。3import torch_npu不能省。它是把 npu 设备注册进 torch 的插件不 importtorch.npu.is_available()会老老实实返回 False——然后你会以为这台机器根本没卡。import torch import torch_npu # 这行不能省 print(torch.npu.is_available())4python 和 vllm 都得用全路径。直接敲python3拿到的是系统 3.10里面没有 torch/usr/local/python3.11.14/bin/python3.11 -c import torch; print(torch.__version__) # 2.9.0cpu /usr/local/python3.11.14/bin/vllm --version # 0.11.0顺手确认这两个也在pip show torch-npu2.9.0、pip show vllm-ascend0.19.1rc1。国产卡的第一个坑不在算力在你对 NVIDIA 的肌肉记忆里。二、网络不通1.5GB 要下十几个小时这台机器github.com和huggingface.co都不通。意思是不能from_pretrained在线拉模型也拉不到 GitHub release。两条应对。一是走代理而且必须写死版本号https://ghproxy.net/https://github.com/owner/repo/releases/download/v0.19.1/xxx.tar.gz写成/releases/latest/...经代理会 404它跟不了重定向。二是大文件一律走本机中转别在服务器上硬拉。这是我这次最省时间的一条实测三条路路径速度1.5GB 耗时服务器直连单连接23 KB/s十几个小时服务器并发分段24 段~130 KB/s3~8 小时且不稳本机多线程下载 SFTP 上传14 MB/s 下行约 15 分钟差 600 倍。顺带一个代价 3 小时的坑并发分段把 390 段全下完了拼接时用了cat seg.*——那是字符串序seg.0 seg.1 seg.10 …拼出来顺序是乱的zstd -t必然失败。更蠢的是我的失败分支把全部分段删了。要么用for i in $(seq ...)逐个追加要么直接 seek 写单个文件。校验失败的时候别删分段。三、起服务vLLM 能起对话起不了向量对话服务这条实测 2.9 秒出回答/usr/local/python3.11.14/bin/vllm serve /model/models/Qwen2.5-7B-Instruct \ --served-model-name qwen2.5-7b \ --host 0.0.0.0 --port 8000 \ --max-model-len 16384 --max-num-seqs 32 \ --gpu-memory-utilization 0.85 \ --api-key 你的Key--max-num-seqs 32是并发上限40 个人共用一个 7B 就靠这个扛评测类的脚本错峰跑。再起一个 0.5B 做大小模型对照只占一成显存/usr/local/python3.11.14/bin/vllm serve /model/qwen2.5-0.5b \ --served-model-name qwen2.5-0.5b \ --host 0.0.0.0 --port 8002 \ --max-model-len 4096 --max-num-seqs 16 \ --gpu-memory-utilization 0.10 \ --api-key 你的Key但向量服务起不来这一版 vllm-ascend不认--task embed报unrecognized arguments。我一开始就是照着--task embed写的脚本跑空了一轮才发现。解法是自己写一个用 transformers torch_npu 直接起一个 OpenAI 兼容的向量服务Qwen3-Embedding-0.6B1024 维。核心就三步取last_hidden_state的最后一位、L2 归一化、套 OpenAI 的/v1/embeddings返回格式。对上层完全无感。四、40 个人怎么共用一台机器关键设计只有一条远程目录刻意镜像本地目录。本地是{代码包, 数据, 输出}三级服务器上是同样的三级所以 notebook 里写死的../数据、../输出传到服务器上一行都不用改。建 40 个学员目录核心就这几行SHARED/data/fde/shared for i in $(seq 1 40); do d/data/fde/students/$(printf s%02d $i) mkdir -p $d/代码包 $d/输出 $d/work ln -sfn $SHARED/data $d/数据 # 软链共享不是拷贝 cp -r $SHARED/代码包/. $d/代码包/ # 代码每人一份副本 done chmod -R a-w $SHARED/data # 共享数据只读改了影响全班隔离项做法代码每人一份副本共享区只读数据软链共享只读改了影响全班产物各写各的输出/端口起 jupyter 用88XXXX 自己的编号避免互撞微调单卡按组排队--out必须指向自己目录微调也是实测出来的甜点组合240 条样本、3 轮、batch 40.5B 在 910B2 上 21 秒训完loss 从 6.37 降到 0.60。/usr/local/python3.11.14/bin/python3.11 finetune_lora.py \ --train ../输出/exp04_sft_train.jsonl \ --out ../输出/exp04_lora \ --base /model/qwen2.5-0.5b --epochs 3 --batch 4 \ --lr 2e-4 --lora-r 16 --lora-alpha 32 --max-len 512 --seed 42可训练参数只有 1.08M占总量 0.22%。更省事的是vLLM 已经占掉 85% 显存的情况下这个 0.5B 的 LoRA照样跑得动。所以不用为了演示微调去停 7B 服务。但 3B 以上会 OOM要用 3B 必须先停 vLLM。五、三个反直觉的结论一、私有化的卖点不是快是稳。同一句问题各测三次本机直连端点三次往返自建服务器7B726 / 734 / 725 ms公有云在线 API1363 / 3445 / 2719 ms自有机器三次几乎不动在线 API波动 2.5 倍排队加公网抖动。二、快不等于好。7B 3394ms0.5B 3096ms几乎一样快。但 7B 的回答分步骤、会说记录数据/分析原因0.5B 也有步骤只是更泛、更像模板。时延接近是因为两者跑在同一块 NPU 上差距在内容质量不在速度。三、换了 embedding 端点必须重建向量。两个 embedding 模型都是 1024 维但实测余弦相似度只有 -0.02。维度一样不等于空间一样。带着旧向量切端点检索会全部落空——表现出来是全部拒答你根本想不到问题出在向量上。六、折腾一整夜最后决定不用 Ollama这条我最想记下来因为它跟技术关系不大。装 Ollama 试了五种方式全失败GitHub release 走代理只有 48–580KB/s 且停滞官方 install.sh 是单连接流式23KB/s并发分段下完 390 段但拼错本机下载再 SFTP 上传传到一半本机出口被限流服务端校验 Corrupted block最后补齐 636MBzstd -t仍然报 Corrupted block。真正让我决定砍掉的不是没装上是算清了一笔账Ollama 在昇腾上只能跑 CPU。也就是说就算装成了收益也薄得可怜。于是改成课上一律用 vLLMOllama 只留一张选型对比表讲定位那批脚本标记弃用、不再维护。沉没成本不是继续的理由。先算装成了能好多少再决定要不要接着装。七、值得这么折腾吗值得要做国产化适配、要一批人共用一张卡、要跑微调、环境不能联网。不值得只是想本地跑个小模型玩玩。你自己电脑上装什么都比这快别租服务器。一个前提动手前先确认机器到底是什么卡。这一步省下的时间比后面所有优化加起来都多。先看清你脚下站的是什么卡再决定怎么迈腿。本文为个人真机实测记录命令与数据均来自实际部署过程供国产算力环境部署参考。
延伸阅读

更多相关文章

2026/10/21 20:50:30

Java二叉树遍历全解析:递归与非递归实现

java二叉树的遍历方式详解更新时间是在2021年08月16日, 具体的时间点为09:48:12。这篇文章的主要内容, 是为广大的朋友们去详细地介绍一下, 使用JAVA这个编程语言来实现二叉树的遍历的这个事情, 它一共有四种方式, 这种做法是具有一定的参考的价值意义的, 那些对这种内容感兴趣…

2026/10/21 20:45:30

springboot整合Knife4j

一、前言 knife4j是为Java MVC框架集成Swagger生成Api文档的增强解决方案(在非Java项目中也提供了前端UI的增强解决方案),前身是swagger-bootstrap-ui,取名knife4j是希望她能像一把匕首一样小巧,轻量,并且功能强悍! 二、快速使用 2.1 依赖…

2026/10/21 20:45:30

软件定义汽车---目的、实现途径与架构演进

我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 假若你的生活不够好,不够努力,那么,加油努力吧,不要抱怨,起而行,迎头赶上,方是正途。假若你已经拥有很多,却依然活得不快乐,那么,让自己慢…

2026/10/22 1:52:18

免费学Python:learnpython完整笔记与互动课程资源全解

【免费下载链接】learnpython Python Resources for Everyone 项目地址: https://gitcode.com/gh_mirrors/learnpython5/learnpython 点击查看 免费下载 learnpython 是一个面向所有人的免费 Python 学习资源仓库,把完整的 Python 学习笔记、互动课程、…

2026/10/22 1:52:18

如何快速上手 liKeYun_Ylb:从零跑通微信私域引流系统的完整指南

如何快速上手 liKeYun_Ylb:从零跑通微信私域引流系统的完整指南 【免费下载链接】liKeYun_ylb 引流宝致力于为个人、团队提供基于微信私域流量的推广、引流的效率工具。可减轻人力,有效降低资源损失、流量流失的几率。引流宝完全开源,免费&am…

2026/10/21 4:53:08

金融AI落地指南:从调研报告到技术选型与工程实践

简介:这份PDF报告聚焦2025年金融服务业中国AI现状与趋势,面向金融科技从业者、AI战略规划人员及关注行业数字化转型的研究者,帮助读者把握生成式AI在银行、支付、交易等场景中的落地路径与投资方向。资源包内含1个PDF文件,大小约1…

2026/10/22 0:01:49

电商智能运营体系从0到1:架构设计、落地步骤与避坑指南

前两年我们团队接了一个电商平台的运营中台项目,目标很直白:把过去靠运营拍脑袋做的选品、定价、发券、推活动这些事,逐步用数据算法和自动化流程代替。项目名字内部就叫“电商智能运营体系”。最近有不少朋友问我当时是怎么设计的、踩过哪些…

2026/10/22 0:01:49

若依框架AI代码生成不稳定?用Agent Skill三层结构+五步法搞定

最近一段时间,我一直想把后台管理系统里那些机械重复的增删改查代码交给AI去写。框架用的是若依,按理说这类业务代码模式非常固定,应该是AI最擅长的事情。可真试下来却不是那么回事——你让AI生成一个用户管理模块,它给出的Contro…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑