新上8卡RTX 5090 限时特惠 Read more

达拉斯 8×4090 跑多模型推理:一卡一实例还是张量并行,生产怎么隔离 - 云数方舟

达拉斯 8×4090 跑多模型推理:一卡一实例还是张量并行,生产怎么隔离

达拉斯 8×RTX 4090 机器到手,第一反应不是“把 8 张卡绑一起跑最大模型”,而是先想清楚:这些卡是要当“算力池”还是“隔离单元”。两种思路落地方式完全不一样。

思路 A:一卡一实例(故障域最小)

卡 0 跑 Qwen-7B 对话,卡 1 跑 Embedding,卡 2 跑 SDXL 出图,卡 3-4 跑 32B 量化推理…… 每个 vLLM 进程只认一张卡:

# 卡0:7B 对话
CUDA_VISIBLE_DEVICES=0 vllm serve Qwen2.5-7B-Instruct \
  --port 8000 --gpu-memory-utilization 0.90 \
  --max-model-len 32768 --max-num-seqs 128

# 卡1:向量服务(显存别给太高)
CUDA_VISIBLE_DEVICES=1 vllm serve bge-m3 \
  --port 8001 --gpu-memory-utilization 0.40 \
  --max-num-seqs 64

好处:模型 A 崩了不影响模型 B;显存池不打架;扩缩容直接加减进程。生产环境最稳的是这种。

思路 B:张量并行(跑单大模型)

要跑 27B/70B 量化模型、还要长上下文,单卡 24G 放不下,就 2 卡或 8 卡 TP:

# 2 卡跑 27B Q4,上下文拉长
CUDA_VISIBLE_DEVICES=0,1 vllm serve Qwen3-27B-Q4 \
  --tensor-parallel-size 2 \
  --max-model-len 131072 \
  --gpu-memory-utilization 0.90 --port 8000

# 8 卡跑 27B/70B 长上下文
vllm serve Qwen3-27B-Q4 \
  --tensor-parallel-size 8 \
  --max-model-len 262144 \
  --gpu-memory-utilization 0.90

4090 走 PCIe4.0 没有 NVLink,TP=2 通信开销 5-10%,TP=8 长上下文能跑通但单请求 prefill 会被通信拖慢。别盲目上 8 卡 TP,小模型用多实例更划算。

思路 C:单卡多 LoRA(SaaS 多租户)

同底座模型 + 多客户微调,别起 N 个进程,用 Multi-LoRA:

vllm serve Meta-Llama-3.1-8B-Instruct-AWQ \
  --enable-lora --max-loras 30 --max-lora-rank 64 \
  --max-cpu-loras 32 --gpu-memory-utilization 0.92

请求里带 model="customer-42" 就行,单卡 24G 能挂几十个租户适配器,每个适配器显存占用约 50-200MB。网关层做租户鉴权,别让客户端直连随便指 adapter 名。

网关怎么分流量

  • 按模型名路由:7B 去 8000,embedding 去 8001,27B 去 8002
  • 按上下文长度路由:>32k 的请求只扔给 TP 实例,避免短上下文卡等长 prefill
  • 按负载摘流:实例 5xx 率超 15% 或心跳丢 3 次,网关摘掉,恢复后再探活

显存账本(8×4090 实战参考)

  • 7B INT4:权重 4G + KV 20G(长上下文)≈ 单卡 0.9 利用率稳
  • 27B Q4 TP=2:每卡约 14G 权重 + KV,131k 上下文能跑
  • Embedding 0.6B:gpu-mem 0.4 足够,别给高
  • 同卡混跑对话+向量:不推荐,OOM 会一起死

IO 与端口

8 卡物理机走 10G 口,模型加载、Checkpoint 落盘才不卡;vGPU 100M 口只适合单图推理和调试,别拿去跑批量 prefill。达拉斯节点 8×4090 物理机配 NVMe 全闪,长上下文 KV 频繁换页时盘 IO 不能成瓶颈。

推理并发起来后,先按“一卡一实例”铺开,显存不够再上 TP,多租户再切 LoRA——比一上来把 8 卡绑死更灵活,也更好排障。

达拉斯 8×4090 物理机与显卡云:云数方舟美国 GPU 独立服务器

云数方舟
  • contact@globaldc.cn