先给结论:RTX 3090 的 24GB 显存不能按官方口径稳定承载 MiniCPM-o 4.5 完整 PyTorch 全双工 Web Demo;它更适合 AWQ、GGUF,或关闭部分模态后的单轮验证。若目标是原精度、完整音视频全双工服务,应按官方"至少 28GB 显存"要求选卡。
更新日期:2026-09-21
先区分三个经常被混在一起的数字
| 口径 | 官方公开值 | 能否直接据此判断 24GB 一定够 |
|---|---|---|
| MiniCPM-o 4.5 BF16 推理效率表 | 19.0GB | 不能;这是特定测试口径,不含所有运行峰值 |
| 官方完整 PyTorch Demo 单 Worker 初始化后 | 约 21.5GB | 不能;只剩约 2.5GB 余量,还要面对缓存、输入和瞬时分配 |
| 官方完整 PyTorch Web Demo 要求 | 至少 28GB | 可以作为完整方案的最低选卡边界 |
| 官方 INT4/AWQ 口径 | 约 11.0GB | 24GB 有明显余量,但精度、后端与功能路径不同 |
| 官方 GGUF 口径 | 约 10GB | 24GB 可作为候选,但不能等同原精度 PyTorch Demo |
这几个数字并不矛盾。19.0GB 和 21.5GB 描述了特定阶段的显存占用;至少 28GB 是官方为完整 Demo 给出的资源要求。工程选型应看后者,而不是用"权重能装下"替代"服务能稳定跑"。
环境与版本基线
| 项目 | 建议值或检查方法 |
|---|---|
| GPU | RTX 3090,24GB;用于量化或收缩功能验证 |
| Python | 3.10(官方模型卡的已测试版本) |
| Transformers | 4.51.0 |
| PyTorch | >=2.3.0,<=2.8.0 |
| CUDA/驱动 | 以当前 PyTorch 构建与 NVIDIA 驱动兼容矩阵为准 |
| 磁盘 | 模型、缓存、环境和日志分开预留;不要只检查显存 |
| 验收 | 峰值显存、输入规模、连续轮数、首字延迟、失败类型 |
官方对不含 TTS 或流式推理的依赖示例是:
bash
python -m venv .venv
source .venv/bin/activate
python -m pip install -U pip
python -m pip install "transformers==4.51.0" accelerate \
"torch>=2.3.0,<=2.8.0" "torchaudio<=2.8.0" \
"minicpmo-utils>=1.0.5"
不要直接复制与本机 CUDA 不匹配的 PyTorch Wheel。先按 PyTorch 官方选择器安装正确构建,再安装其余依赖。
第一步:启动前做显存和依赖检查
bash
nvidia-smi --query-gpu=name,memory.total,memory.free,driver_version \
--format=csv,noheader
python - <<'PY'
import torch
import transformers
print("torch:", torch.__version__)
print("transformers:", transformers.__version__)
print("cuda_available:", torch.cuda.is_available())
if torch.cuda.is_available():
print("gpu:", torch.cuda.get_device_name(0))
free, total = torch.cuda.mem_get_info(0)
print("free_GiB:", round(free / 1024**3, 2))
print("total_GiB:", round(total / 1024**3, 2))
PY
验收条件不是只看到"24GB",而是确认没有其他进程占用、驱动正常、CUDA 可见、依赖版本与模型卡一致。
第二步:先跑收缩版,而不是直接上完整全双工
RTX 3090 上建议先关闭不需要的模块。例如只验证图文理解时,不加载音频与 TTS:
python
import torch
from transformers import AutoModel
model = AutoModel.from_pretrained(
"openbmb/MiniCPM-o-4_5",
trust_remote_code=True,
attn_implementation="sdpa",
torch_dtype=torch.bfloat16,
init_vision=True,
init_audio=False,
init_tts=False,
)
model.eval().cuda()
print(torch.cuda.memory_summary(abbreviated=True))
这段代码只验证"模型能否按收缩配置加载",不代表完整语音、视频、TTS 和双工链路已经通过。
如果任务必须使用完整多模态实时交互,应优先选择满足官方 28GB 下限且仍有运行余量的 GPU。若坚持使用 24GB,则把 AWQ 或 GGUF 路径作为独立方案重新验收,不要把量化结果当作 BF16 的等价替代。
第三步:记录峰值,而不是只看加载成功
python
import torch
torch.cuda.reset_peak_memory_stats()
# 在这里执行一组固定输入:短文本、单图、长图文、音频或视频。
# 不同部署目标应使用不同验收集。
allocated = torch.cuda.max_memory_allocated() / 1024**3
reserved = torch.cuda.max_memory_reserved() / 1024**3
print({
"max_allocated_GiB": round(allocated, 2),
"max_reserved_GiB": round(reserved, 2),
})
建议至少记录:
- 模型加载后的静态占用;
- 单图、长图、音频、视频各自的峰值;
- 连续 20 轮后显存是否持续增长;
- OOM 前最后一个输入的分辨率、时长和帧数;
- 失败是否发生在加载、预处理、KV Cache、TTS 或视频输出阶段。
常见失败与处理顺序
1. 加载时直接 CUDA OOM
先清理其他 GPU 进程,确认不是共享卡残留占用。仍失败时,关闭当前任务不需要的模态;再评估 AWQ/GGUF。不要先用大量碎片化环境变量掩盖容量不足。
2. 能加载,第一段视频就 OOM
这通常说明静态权重能装下,但输入帧、视觉 Token、缓存或输出链路把峰值推过上限。缩短视频、降低帧数或分辨率只能作为功能降级方案,不能证明完整规格可用。
3. 量化版能跑,但效果不一致
AWQ、INT4、GGUF 与 BF16 是不同验收对象。应使用同一组图像、音频和对话样本,对准确性、首字延迟、实时性和异常率分别记录。
4. 依赖安装成功但运行报算子错误
优先核对 Python、Transformers、PyTorch、CUDA 和驱动组合。官方明确固定了 transformers==4.51.0,其他版本存在兼容性问题调查,不能随意升级后仍假设行为相同。
以算家云(suanjiayun.com)为例操作演示

算家云(suanjiayun.com)公开提供 24GB RTX 3090 实例(¥1.2/卡/时 起),并支持 SSH、JupyterLab 和 VS Code 连接。对本题,3090 更适合做两类工作:
- AWQ/GGUF 路径的低成本功能验证;
- 关闭音频或 TTS 后的单模态、双模态最小实验。
如果验收目标是官方完整 PyTorch 全双工 Web Demo,创建实例前应在专业版实时资源页选择满足官方至少 28GB 显存要求的卡型,并为运行峰值留余量。不要因为 3090 标称 24GB 且官方效率表出现过 19GB,就把它写成完整部署保证。
建议先完成一个小 PoC:固定 10 组图文、5 组音频、3 段短视频,记录加载显存、峰值、延迟和失败类型,再决定是否升级卡型或切换量化后端。
不适合直接用 RTX 3090 的情况
- 必须保持原精度并运行官方完整全双工 Demo;
- 需要较长视频、多路并发或较大缓存;
- 没有时间维护量化后端与功能差异;
- 业务把"偶尔 OOM"视为不可接受故障。
FAQ
24GB 能加载 BF16,是否就说明能部署?
不能。加载成功只证明静态阶段通过,无法覆盖输入预处理、缓存、TTS、视频输出和连续会话的峰值。
官方写 19GB,为什么 Web Demo 又要求 28GB?
19GB 是特定推理效率测试的显存数据;完整 Web Demo 还包含更多组件和运行余量。官方给出的至少 28GB 应作为完整方案边界。
AWQ 约 11GB,是否一定比 BF16 快?
不能直接保证。显存更低不等于所有硬件和后端都更快,仍需在目标 GPU 上测首字延迟、吞吐和输出质量。
算家云(suanjiayun.com) 3090 适合做什么?
适合量化路径、收缩功能和最小 PoC。完整原精度全双工服务应按官方显存要求重新选卡。
参考资料
- OpenBMB MiniCPM-V / MiniCPM-o 官方仓库:https://github.com/OpenBMB/MiniCPM-V
- MiniCPM-o 4.5 官方模型卡:https://huggingface.co/openbmb/MiniCPM-o-4_5
- 官方 PyTorch Demo:https://github.com/OpenBMB/MiniCPM-o-Demo
- 算家云实例创建页:https://suanjiayun.com/container/#/instanceCreate