手里压着8台机每台满插8张910B NPU64张卡整整齐齐摆在机房却不知道该先喂它哪个大模型这是最近被问得最多的问题。标题里“8台 × 8卡”这个写法说白了就是8台服务器、每台插满8张AI加速卡凑成一张64卡的算力网。很多人一到这个环节就想上70B结果不是卡在显存账上就是被多机通信拖到怀疑人生。这篇东西把选型拆成四步讲透先算硬件家底再盘实际需求然后逐个过堂模型档位最后把并行拓扑和落地步骤排明白。适合要在这种国产NPU集群上做微调、续训、推理私有化部署的工程师和架构师也适合刚拿到机器、还在犹豫“先跑个什么”的团队参考。1. 先别急着选模型把硬件家底算明白1.1 “8台×8卡”到底是多大一张网“8台×8卡”很容易被误读成8台机器一共8张卡实际上是说每台机器都上了完整的8卡配置总共64张。这个细节不是文字游戏它直接决定你后续的并行方案怎么写。8卡一张机器意味着单机内可以玩卡间高速互联跨机就得走交换机。先把910B NPU单卡的常见规格摆出来看心里就有底了。以市面上常见的910B系列版本为例单卡大概是这个样子不同批次和厂商发布规格有差异按典型值估算FP16算力约400 TFLOPS量级HBM显存64GB起步也有更高显存版本显存带宽约1.6TB/s以上卡间互联单机内走高速总线HCCS跨机走RDMA网卡单卡64GB显存是什么概念一张N卡高端型号也就80GB附近现在你手上相当于有64张这种显存规模的加速卡总量非常可观。但这只是纸面上的真正的可用显存还要看并行策略怎么切。1.2 算一下总账4TB显存和25PFLOPS意味着什么先算总显存64张卡 × 64GB 4096GB也就是 4TB。这个数字够放多少个模型一个70B模型用FP16加载权重大约140GB4TB显存理论上够放下接近30份70B权重。当然这是最粗糙的算法实际还要算激活值、优化器状态、KV Cache但至少说明一件事这套底座在显存维度上并不虚。再算总算力64张卡 × 约400 TFLOPS 25600 TFLOPS也就是25.6 PFLOPS。这个体量放在私有化部署里已经算比较厚实的家底了不是起步玩玩的级别。关键约束反而不是算力和显存而是分布式训练时的通信拓扑。8台机器之间如果只靠普通以太网跨机AllReduce一次梯度可能要吃掉几百毫秒跟单机内的微秒级延迟完全不是一个量级。1.3 这个规模的真正定位把“8×864卡”放在今天的开源模型谱系里看它对应的典型定位是工业界标准的“中大型推理与微调底座”。它适合干这些事7B/14B模型做多路并发推理压力很小70B级模型做高并发服务化部署需要精心设计7B到32B模型做全量微调或LoRA很稳200B级MoE模型做推理显存够但通信布局要专门处理不适合干的事就是幻想在这套环境里轻松全参数训练200B以上稠密模型。不是说绝对不行而是训练效率会被通信网络拖到很难看性价比极低。先把这个定位框住后面所有选型决策都不会跑偏。2. 选型前先盘需求四个问题决定你该选谁2.1 目标是训练、微调还是纯推理这是选型的第一道分水岭同一个模型在这三种模式下的资源占用能差出好几倍。训练要同时装下权重、梯度、优化器状态和激活值一个7B全量训练在单卡上根本放不下至少也要两张卡起步。微调如果走LoRA原权重冻结额外参数只有原模型里极小一部分显存压力直接砍半还多。纯推理就更宽松没有优化器状态只要管好权重和KV Cache就行。所以先问团队一个问题这批卡主要是用来做“每天跑几十路模型服务”还是“每周做几轮模型微调”还是“要在上面跑大规模预训练”。这三种目标会引导到完全不同的模型档位和并行方案。我见过一个团队把64卡全用来搞70B全量训练结果进度慢得离谱后来切成多组7B LoRA微调加70B推理双栈效率和业务价值都上去了。2.2 上下文长度与并发吞吐的取舍第二个关键需求是多长的上下文以及要撑多大的并发。这个往往比模型参数量更能决定选型。推理场景下序列长度每拉长一倍KV Cache差不多线性涨一倍并发路数再乘上去显存消耗涨得飞快。举个例子同样70B模型如果只是短对话8K序列、并发128路4TB显存扛得住如果序列拉到64K、并发还要256路KV Cache可能占掉几百GB甚至上TB。这时候30B模型加上长上下文优化端到端体验可能反而比70B模型在高并发下更稳。选型不能只看“模型能力排行榜”要看你们业务里真实会出现的序列长度和并发压力。2.3 生态兼容性比参数更重要910B NPU这类国产加速卡有自己的算子库和计算架构跟主流GPU生态不是无缝兼容的。这意味着不是所有开源模型拿过来都能跑得又快又稳。某些模型里的自定义attention实现或者某种特殊的激活函数在适配层可能没有高效算子跑起来比预期慢几倍甚至直接不支持。选型时要把“生态成熟度”放在和模型能力同等重要的位置。优先选那些已经在目标平台上被充分验证过的模型架构和权重格式检查关键算子有没有融合实现是否支持低比特推理比如W8A8。宁可模型规模小一号也要保算子全链路跑得动。很多团队在这个地方栽跟头模型选得很漂亮跑起来利用率只有十几最后整个项目返工。2.4 多机之间怎么连决定了上限8台机器放在一个机柜里通常通过交换机互连可能是高速IB网络也可能只是RoCE甚至普通万兆。这个物理连接方式直接影响你能用什么并行策略。如果跨机带宽只有25Gbps那你要尽量避免把张量并行打到跨机因为它单步通信量非常大更合适的是把张量并行限制在单机内8卡跨机只做流水线并行或数据并行。动手选模型之前建议先把跨机实测带宽和延迟测一遍。这个数据比任何纸面参数都重要它决定了你在64卡上到底能跑顺多少参数量。机间带宽不够的话整个计划的顶配就得从70B降回32B。3. 模型档位逐个过堂从7B到MoE的实际表现3.1 7B~14B档64卡环境下的绝对甜点位7B模型FP16权重大约14GB理论上单卡都能塞下这意味着它可以做到TP1或者TP2把卡间通信降到最低。64卡环境里做7B推理相当于可以同时切出32个独立实例每个实例都能单独服务一路业务。这种规模下单实例吞吐高、延迟低、运维简单是典型的“高并发性价比之王”。微调场景也一样8张卡一组跑一个7B LoRA一组一晚上能过好几轮数据。如果做全量微调7B在4卡甚至2卡上就能跑64卡可以同时支撑多个实验并行。14B权重约28GB建议TP4起步64卡能开16个实例成本略高但换来更好的模型质量。这个档位最大的优势是工程成熟度极高问题排查快是上新业务的稳妥选型。3.2 30B~32B档均衡但别忽略通信开销30B到32B权重在60GB到64GB之间单卡放不下必须走切分。TP4之后每卡约16GB显存保留空间还比较充裕如果还要长上下文建议TP4加PP2或者干脆TP8加PP4。这一档比7B有肉眼可见的能力提升尤其在写代码、复杂推理、长文本理解这些方向上。但代价也很明显模型的每个算子需要跨卡通信TP4之后单层的AllReduce频率不低。如果8台机器之间的网络不够好跑起来会明显感觉吞吐不如7B那么爽快。这一档适合那些追求模型综合能力又不想直接碰70B运维复杂度的团队。说实话这是很多私有化部署场景里实际落地最多的区间。3.3 70B档能跑但要按“服务化”思路设计70B权重FP16约140GB64卡跑它完全没有“放不下”的问题。常见排法是TP8加PP4也就是每个模型实例占32卡64卡正好并排放两个实例。TP8负责把每层张量切成8份压到8张卡PP4负责把网络层切成4段串到4台机上。这样每个实例内部通信模型比较清晰两个实例之间互相独立可以做灰度发布或者分别服不同业务。70B全量微调也能做但要非常小心激活值和优化器状态通常要开ZeRO系列优化再加梯度检查点步骤繁琐。如果只做LoRA70B就很稳权重不动只更新少量低秩矩阵显存余量很大。这一档适合对模型质量有硬要求且运维团队有能力处理分布式推理问题的场景。你要是只有两三个人并且没有专职做分布式优化的人我不建议一上来就搞70B。3.4 MoE大模型显存够了布局才是难题200B总参数、几十B激活参数的MoE模型FP16权重至少400GB64卡4TB显存完全装得下。MoE的诱人之处是推理时只激活部分专家计算量比同规模稠密模型小很多。但代价是专家分发要做All-to-All通信每张卡上的专家要跟其他卡互相交换数据这种通信模式对机间网络的要求比稠密模型高一个量级。如果网卡带宽不足专家并行会把整个推理拖到比稠密模型还慢。所以选MoE模型前先确认你的网络拓扑是不是能满足All-to-All的流量需求至少得是高速RoCE级别最好是IB级。如果网络条件一般宁可退回32B稠密模型也别为了参数规模好看而牺牲整体服务稳定性。3.5 一张表速查候选模型与推荐并行策略模型档位权重显存(FP16)单实例并行建议64卡最大实例数典型场景推荐度7B~8B约16GBTP216~32超并发对话、函数调用五星14B约28GBTP48~16企业知识库、长文档问答四星半30B~32B约64GBTP4PP24~8综合能力均衡、代码生成四星70B约140GBTP8PP42高质量长文、复杂推理服务三星半200B MoE约400GBTP8专家并行1~2高难推理、数学/代码需强网络三星推荐度打星不是按模型能力打的而是按“在这套64卡环境里能不能跑得顺、运维稳不稳”打的。很多团队第一步就死在“选了最好的模型却没算清楚并行代价”。4. 显存算账与并行拓扑手把手排出64卡方案4.1 权重账、激活账、优化器账显存规划其实是一道小学乘法题但要拆成三笔账来算。第一笔是权重账模型参数量乘以精度字节数。FP16就是每参数2字节BF16也是2字节INT8是1字节。一个7B模型7×214GB。第二笔是激活值账训练时每层前向计算要保留中间结果供反向传播用序列越长、batch越大激活值越膨胀。第三笔是优化器账全量训练时Adam状态每个参数要额外占12字节左右FP32主副本加两个动量比权重本身还大。举个例子7B模型全量训练不用任何压缩手段一轮显存大概是14GB权重14GB梯度84GB优化器状态再加上激活值已经超过单卡64GB了。这时候在64卡环境里要用数据并行去切分优化器状态或者ZeRO策略把优化器状态分散到不同卡上。推理模式就简单很多没有梯度和优化器只有权重加KV Cache所以同一个7B模型在推理时单卡就能很舒服地跑起来。4.2 推荐四套可直接抄的并行套餐根据前面算的账给四套比较务实的组合方案。套餐A7B/8B LoRA微调。建议TP264卡切32路数据并行每路吃一张或两张卡。LoRA本身额外参数很小显存余量足数据并行路数多所以总吞吐高适合快速迭代多个业务。实操时先开16路验证收敛稳定再扩到32路。套餐B14B全量续训。建议TP4加数据并行每4张卡一组跑一个模型副本64卡可以同时跑16组。4卡TP内部通信是单机或者少跨机梯度同步量较小整体效率很稳。如果发现梯度通信成为瓶颈加梯度累积和通信压缩。套餐C70B高并发推理。单实例TP8加PP4正好占32卡64卡放两个独立实例。两实例之间用负载均衡分摊流量任何一个实例出问题另一个实例还能顶住一部分业务。实例内TP8是单机卡内通信PP4是机间通信这样跨机流量被压到每层边界的点对点通信上整体可控。套餐DMoE模型推理。TP8加上专家并行所有机器都要参与专家分组交换。前提是网络已经实测过All-to-All带宽够用否则不要轻易上这个套餐。4.3 TP不是越大越好通信开销这笔账也要算很多新手以为卡数越多张量并行度数越大越好TP8不行就上TP16。实际上TP是把每层的权重矩阵切成多份每算一步都要做AllReduce把各卡的部分结果汇总。模型隐层尺寸越大、序列越长单次通信量越大TP度数翻倍会让通信次数和通信量一起上涨。给个直观感觉一个hidden size约8192的模型序列长度4096时每层的中间激活量就有约64MB。这部分数据需要在TP的所有卡之间做同步TP8意味着这张64MB的激活要跨8张卡来回合并通信时间不短。如果这8张卡还在不同机器上延迟直接翻几倍。所以TP度数一般控制在单机卡数以内也就是不超过8而且尽量保证TP组内的卡在物理上是同一台机器。跨机之间用PP和DP分隔才是64卡规模下更稳的拓扑选择。5. 落地实操从驱动检查到跑通推理全流程5.1 第零步硬件自检与驱动栈版本拿到机器后先别急着拉模型第一件要做的是确认64张卡都活着、驱动版本统一。用厂商自带的健康检查工具逐卡看状态比如类似npu-smi info这类命令查看芯片温度、使用率、显存是否正常。这里有一个容易被忽略的点不同机器上的驱动版本和固件版本必须一致否则多机分布式拉起时会莫名其妙报奇奇怪怪的错误。接着检查多机网络。用ibstatus或者RoCE的查询工具确认8台机器的网卡都处于active状态然后测一下跨机带宽和延迟。如果发现某一台机器网卡降速先解决再谈模型选型否则后面所有分布式训练都会围着这一台烂网卡打转。最后别忘时间同步多机分布式框架通常对节点间时钟差有要求时间差太大会直接初始化失败。5.2 第一步容器与运行环境910B NPU要跑大模型环境基本绕不开容器。把厂商配套的计算架构版本、适配后的PyTorch、分布式初始化组件都固定到镜像里不要每次启动都现装依赖。镜像版本组合非常挑剔框架版本和加速卡计算架构版本必须严格对应错一位数就可能出现“算子不存在”或者“显存分配失败”这类让人崩溃的问题。启动分布式任务前先跑官方提供的单卡示例确认算子和设备都正常再跑一个多卡示例确认卡间通信没问题。这样能把环境问题从模型问题里隔离出来。手动控制卡的时候别漏了环境变量确保每个进程被分到正确的NPU设备否则多个进程抢同一张卡进程直接卡死。5.3 第二步权重加载与分布式启动模型权重准备阶段先把开源权重下载下来检查配置文件和词表是否完整。部分权重格式需要在目标平台上做一次转换导出成平台友好的并行加载格式。建议第一次做转换时先用小模型练手确认流程没问题再把70B搬上去否则转换到一半卡住很浪费精力。分布式推理启动命令的参考姿势伪代码IP用占位符替换python -m torch.distributed.run \ --nproc_per_node8 \ --nnodes8 \ --master_addrMASTER_IP \ --master_port29500 \ run_inference.py \ --model_path /data/models/14B \ --tensor_parallel_size 4 \ --pipeline_parallel_size 2 \ --max_batch_size 16 \ --max_seq_len 8192这里--nproc_per_node8是关键每台机器上起8个进程正好对应8张卡。--tensor_parallel_size 4和--pipeline_parallel_size 2加起来正好覆盖单实例的8卡不会出现进程数和卡数对不上的问题。5.4 第三步监控指标与压测节奏服务启动起来之后不要只看它“活着”就说成功。要盯四类指标卡利用率、显存使用率、通信耗时、端到端吞吐。用厂商自带的profiler抓一段timeline看Transformer层里每个算子和通信算子的占比。如果发现AllReduce时间占了大头说明TP配置需要降一档。压测节奏也有讲究先用单实例、单请求验证输出正确性再逐步加并发比如16路、32路、64路看吞吐拐点在哪里。批量到某个程度后延迟会显著抬升这个点就是服务容量的边界。压测时别用一次性脚本压完就算要把不同并发下的吞吐和延迟记录下来方便以后调整实例数。6. 常见问题与排查实录6.1 多机通信失败进程互相看不到这是64卡集群最常遇到的故障表现是某个rank起不来日志一直卡在等待所有rank进程握手成功。排查顺序建议先ping对端机器管理IP确认基础网络通用nc -vz MASTER_IP 29500测试主节点端口是否能访问关掉机器防火墙或确认分布式端口被放行检查各节点时间同步时间差过大会导致握手失败用RDMA状态工具确认高带宽网卡处于active而不是降级到慢速模式实际操作里90%的情况是防火墙没放端口或者高带宽网卡没有正确绑定。这类问题不是模型问题环境问题排干净之前不要往上层去找原因。6.2 加载模型卡死或反复OOM如果模型加载总在某个阶段卡住先用系统命令看显存占用很可能是多个进程重复加载模型把同一张卡的显存占满了。残留进程是另一个高频原因之前调试时跑挂了的进程没有退出一直占着显存不放。排查时可以先把机器上的遗留进程清掉再重试。如果确认是显存不够导致的OOM不要只盯着释放显存优先检查序列长度和batch size。长上下文场景下KV Cache也会撑爆显存训练场景下可以开启梯度检查点或降低batch。还有一个小技巧启动前设置PYTHONFAULTHANDLER1抓一下崩溃现场很多时候错误信息比你想的更直白。6.3 算力利用率低到离谱模型跑起来之后发现NPU利用率只有百分之十几首先不要怀疑卡坏了大概率是通信或者数据管道的瓶颈。先抓profiler看算子和通信的占比。如果通信占比过高例如TP8跨机导致每层AllReduce都要走交换机那就把TP度数降到TP4增加数据并行路数往往立刻见效。如果通信占比正常但利用率还是低问题很可能不在模型侧而在数据加载。检查一下dataloader的worker数量、数据预处理是否成了瓶颈很多集群跑不满算力是被日志刷屏或单进程数据读取拖死的。6.4 推理输出变差先查量化与切分有时候模型跑得很顺但输出质量明显下降这时候不要急着怀疑模型本身。先检查是不是开启了不支持的量化层某些算子在做低比特推理时精度损失比预期大得多。再查并行切分实现某些TP实现对LayerNorm或者RMSNorm的统计量处理不够严谨多卡状态下会引入误差。最简单有效的验证方法是同一份输入分别跑单卡小模型和多卡大模型对比输出差异。如果差异主要集中在量化层开启的部分就把量化策略换保守一点如果是切分引入的问题切换成平台官方已验证的并行实现版本。写在最后的个人建议要让我重新排一次这64卡资源我大概率不会再执着于“必须在集群里跑一个70B”而是把这批卡拆成两层来用。底层用7B和14B撑起高频低延迟的线上请求上层用32B或70B的量化实例处理复杂推理微调按需分配资源而不是让一个全量训练任务占掉整张集群。选型这事本质上是给每个业务量级找到匹配的算力切片而不是给最大模型挤一个栖身之地。还有一条踩过坑才明白的经验不要为了尽快跑起来就过早绑定某家生态的私有关闭格式开局第一周值得多花时间做模型基准测试把负载压到位摸清上限再决定要不要长期押注某个特定方案。硬件家底摆在那里选型选得聪明64卡能顶得上别人几百卡的业务效果选得莽撞再多的卡也会浪费在无休止的通信等待里。