跳到主内容

什么是模型切分?一个模型多张卡

2026-10-18 发布 来源:我告诉你AI导航 阅读

70B 的大模型,量化后也要 40GB 上下,单张消费卡装不下,怎么办?答案是把一个模型拆开,让多张卡合力装下它。这个拆法叫模型切分,这篇讲清它怎么切、代价是什么。

70B 的大模型,量化后也要 40GB 上下,单张消费卡装不下,怎么办?答案是把一个模型拆开,让多张卡合力装下它。这个拆法叫模型切分,这篇讲清它怎么切、代价是什么。

一张卡装不下怎么办:切分思路

模型的参数是一个整体,但推理时不必拘泥于「一张卡装一个模型」。既然显存是按容量装的,容量不够就把参数摊到几张卡上,计算时各卡分工协作。就像一本书太厚放不进一个书包,可以一人背几章,凑齐了照样讲课。

听起来简单,难点在协作:模型各层之间是流水关系,前一层的结果是后一层的输入,参数被拆到不同卡上后,中间结果就得跨卡传递,每一次传递都有时间成本。切分方案的设计,本质是在「装得下」和「传得快」之间找平衡。

按层切和按张量切

第一种是按层切,也叫流水线并行。模型本来就由几十层堆叠而成,把前后层分给不同的卡:卡一算完前几层,把结果递给卡二接着算,像工厂流水线。优点是卡间通信少、实现简单;缺点是同一时刻只有一张卡在干活,其余的干等,除非把多个请求错峰排进流水线,才能把空闲填上。

第二种是按张量切,也叫张量并行。把一层内部的那个大矩阵拆成几块,每张卡各算一块,再拼回结果。每层都要通信一次,开销大得多,但所有卡同时干活,单次推理的延迟低。实践中常见混合用法:机器内几张卡用张量并行拼速度,多台机器之间用流水线并行扩容量。

切分方式对照

  • 按层切:通信少、好部署,单请求延迟大,适合并发高的服务
  • 按张量切:全程并行、延迟低,通信频繁,适合机器内高速互联
  • 混合切:大模型跨机部署的常见做法
  • 通用提醒:卡与卡之间的互联速度,决定切分方案的成败

切之前先看你的卡之间说话有多快。

切分不是越多卡越快

直觉上多加卡就该更快,实际未必。卡与卡之间要传递中间结果,传递走的是机器内的通道,速度远低于卡内部的带宽;切得越碎,传递占比越高,某些环节上多卡反而比单卡慢。行业里有个形象的观察:跨机切分时,机器之间的通信可能吃掉大量等待时间,具体损耗与模型结构和网络条件相关,以实测为准。

所以切分前的正确顺序是:先量化压缩,看能不能塞进单卡;实在不行再考虑双卡;多卡和多机是服务化的选择,不是个人的常规操作。很多人从「加卡」开始,结果花了两倍的钱买来更慢的速度,问题就出在通信开销上。一个直观的参照是接力赛:人多未必快,每人跑的距离短了,交棒次数却多了,等待和交接的损耗会吃掉省下的时间——卡间的数据传递就是那次交棒。

从单卡到多机,代价和适用面排一遍。

规模什么时候走这一步主要代价适用面
单卡(先量化压缩)压缩后能塞进一张卡量化带来的精度损失首选,个人和轻量部署的常规解
双卡切分单卡实在装不下中间结果跨卡传递,某些环节反而更慢谨慎使用,先确认单卡方案已走到头
多卡、多机真有并发需求的服务化场景跨机通信可能吃掉大量等待时间不是个人的常规操作

切分取舍一句话

模型切分的取舍可以浓缩成一句:切分解决的是装得下的问题,顺手解决不了跑得快的问题。单卡优先,双卡谨慎,多卡留给真有并发需求的场景。装不下之前先试压缩,见什么是量化部署?压缩后再上卡,一个例子讲透;各档位卡的显存差异看消费级显卡和专业卡有什么区别?;切分之后流量涌进来怎么管,读什么是网关限流?给 API 加一道闸;配套的软件层选型见推理框架怎么选?主流引擎的定位。

换个问法再问模型切分三句

  • 两张 8GB 卡能跑 16GB 的模型吗?:切开后可以,但卡间通信会拖慢速度,若模型有 8 位版本能塞进单卡,优先用单卡方案。
  • 切分和量化能同时用吗?:能,而且常常搭配使用,先量化减小体积,再对剩余部分做切分,两头的开销都降低。
  • 不同型号的卡混用可以吗?:技术上可行,实际麻烦多,各卡算力和带宽不匹配会让快卡等慢卡,尽量同型号组队。

反馈页面信息

请描述需要更正的地方,页面标题和网址会自动附上。

也可以发邮件至 [email protected]