← 返回题目列表

模型副本应该如何放置到 GPU 上?

中等 第 24 / 25 题 更新于 2026/09/18
大模型推理优化AI技术大模型面试题

简化版

模型副本放置是带约束的装箱与调度问题:先保证模型权重、KV Cache 和运行时余量能装入目标 GPU,再优化卡型匹配、NVLink/网络拓扑、缓存局部性、故障域、租户隔离和成本。能放下不代表能满足吞吐和延迟。

单卡模型优先完整副本,减少通信;需要张量并行时尽量放在同一高速互联域;跨节点只在容量或规模确有需要时使用。热点模型多副本分散到不同主机/机架,避免单点故障;路由则考虑队列、KV/前缀缓存命中和数据地域。

详细版

放置前先为每个副本建立资源画像:权重显存、目标并发下 KV、临时工作区、GPU 型号、并行度、启动时间和预期流量。节点画像包括可用显存、算力、互联拓扑、NUMA、本地权重缓存、故障域和成本。

hard constraints: memory, GPU capability, TP topology, region, isolation
soft objectives : latency, throughput, cache locality, availability, cost

调度采用硬约束先过滤,再对候选节点打分;发布后根据分桶 SLO、队列 Token、KV 水位和流量变化再平衡。迁移或扩副本具有权重加载冷启动,不能频繁追逐瞬时负载。

完整版教学

1. 为什么它不只是显存装箱

两个方案都能容纳权重,但一个可能跨慢速 PCIe 做张量并行,另一个位于同一 NVLink 域,延迟差异很大。副本还要承载 KV 和运行时峰值,不能把权重塞满整卡。

放置同时影响性能、可用性、缓存命中和成本,因此应区分硬约束与优化目标。

2. 副本资源画像包含什么

显存预算至少包括权重、KV、激活/临时缓冲、通信区、CUDA Graph 和安全余量:

required_vram = weights + target_kv + workspace + graph + margin

还要标注最低算力能力、支持精度、张量并行度、本地磁盘权重大小与启动耗时。

3. 节点画像为何重要

同型号 GPU 所处拓扑也可能不同。节点需记录 GPU 数量与空闲显存、NVLink/NVSwitch 连接、PCIe 层级、CPU NUMA、网卡和本地模型缓存。

调度器如果只看到“8 张 GPU”,可能把一个 TP=4 副本跨到两个弱互联域,通信开销显著增加。

4. 单卡还是多卡部署

模型能以目标精度单卡容纳且性能达标时,单卡副本通常更简单、故障域更小。大模型必须切分时,再选择张量、流水线或专家并行。

方式优点主要代价
单卡副本无跨卡通信、扩缩简单单卡容量受限
张量并行降低单卡权重、低延迟协同每层通信频繁
流水线并行跨节点更可行气泡与调度复杂
多完整副本高可用、吞吐扩展权重重复占用

并行方式应由模型大小和实测通信决定。

5. 拓扑感知如何落地

张量并行 Rank 优先放进同一 NVLink/NVSwitch 域,其次同主机 PCIe,最后才考虑跨节点高速网络。Pipeline Stage 可跨较慢边界,但仍需评估激活传输。

调度时把一组 GPU 作为 Gang 原子分配,避免只拿到部分资源后长期等待其余卡。

6. 为什么要留 KV 余量

副本权重固定,KV 随并发与长度增长。只按空闲显存放置会让副本启动成功,却在真实流量下立即 OOM。

应根据目标输入/输出长度高分位计算 KV 预算,并设置准入高水位。不同业务流量画像不同,相同模型副本的安全并发也可能不同。

7. 热点模型如何扩副本

热点模型需要多个完整副本分担流量。副本数近似由目标到达率除以单副本在 SLO 内的稳定服务率,再加故障余量。

replicas >= ceil(peak_arrival_rate / safe_replica_capacity) + failure_headroom

容量应来自真实长度压测,而非短 Prompt 的峰值 QPS。

8. 故障域怎样分散

多个副本若都在同一主机或机架,一个电源、交换机或节点故障会全部丢失。关键模型应跨主机、机架或可用区放置。

跨区域副本还能满足地域容灾与数据驻留,但流量不应为缓存命中而违反数据合规或引入不可接受网络延迟。

9. 缓存局部性如何利用

节点已有模型权重时,新副本冷启动更快;某副本已有会话 KV 或前缀缓存时,后续请求路由到它可降低 TTFT。

局部性是软目标,不能压过故障分散和负载均衡。过度粘性会让某副本排队,而其他副本空闲,需要设置等待阈值后打破粘性。

10. 多模型共置的取舍

低流量模型共置能提高利用率,但会争用显存带宽、计算和工作区。应给每个模型设置显存与并发上限,并压测最坏组合。

高敏感、高优先级或性能波动不可接受的模型使用独立池/MIG。不能只根据平均 GPU-Util 判断共置安全。

11. 异构 GPU 怎样匹配

不同卡型在显存、带宽、低精度算力和成本上不同。长上下文 Decode 可能更偏好高带宽/大显存,批量 Prefill 更偏好强计算。

模型量化和 Kernel 也可能只在特定架构高效。调度前用兼容标签硬过滤,再按单位成功请求成本选择卡型。

12. 再平衡为何不能太频繁

移动模型副本通常要重新加载几十 GB 权重、预热并转移流量。频繁响应短时波动会造成启动风暴和缓存失效。

扩缩容使用迟滞、冷却时间和预测流量;先把新副本预热到 Ready,再停止旧副本准入并排空请求。

13. 如何打分和验收

候选节点可按拓扑、可用 KV、本地缓存、故障分散和成本加权:

score = topology + capacity + cache_locality + failure_spread - cost

上线验收看分模型 TTFT/TPOT、队列、KV 水位、通信占比、冷启动、故障恢复和单位成功成本。模拟失去一台主机,确认剩余副本仍可承载降级目标。

好的放置不是把每张卡塞满,而是让模型在故障和流量波动下仍有可预测容量。

14. 常见误区与追问

  • 误区:模型权重能放下就能部署。 KV、工作区和安全余量同样占显存。
  • 误区:任意 GPU 组合都能做张量并行。 拓扑和通信带宽决定实际性能。
  • 误区:同模型副本放同一主机最方便。 会扩大共同故障风险。
  • 误区:缓存命中应压过所有目标。 不能牺牲负载均衡、隔离和合规。
  • 误区:扩缩容可以紧跟瞬时 GPU 利用率。 冷启动与迁移成本会导致震荡。
  • 追问:为何需要 Gang Scheduling? 多卡副本必须同时获得完整 GPU 集合才能启动。
  • 追问:异构卡如何选? 以兼容性硬过滤,再比较目标流量下的 SLO 与单位成本。

15. 加强记忆

  1. 先画画像:模型资源与节点资源。
  2. 再做硬约束:显存、精度、地域、隔离、并行度。
  3. 再看拓扑:TP 优先高速互联域。
  4. 再留容量:KV、工作区和故障余量。
  5. 再分散风险:跨主机/机架放置完整副本。
  6. 再用局部性:权重和前缀缓存只能作为软目标。
  7. 最后验收:SLO、通信、冷启动、容灾和单位成本。