资讯动态

CogVLM多卡并行推理与显存不足排查:生产环境部署完整清单

发布时间:2026/9/19 16:11:00 来源:尧图企业网站定制
CogVLM多卡并行推理与显存不足排查生产环境部署完整清单【免费下载链接】CogVLM-codea state-of-the-art-level open visual language model | 多模态预训练模型项目地址: https://gitcode.com/zai-org/CogVLM-codeCogVLM 是智谱开源的视觉语言模型17B 视觉参数 7B 语言参数CogAgent-18B 进一步支持 1120×1120 高分辨率与 GUI Agent 能力。生产环境部署这两个模型时最常见的两个问题就是单卡显存装不下以及如何用多卡并行推理提速。本文给出一份可直接照做的部署清单显存配置基线、多卡并行命令、量化降级方案、显存不足排查步骤和线上服务化方式。一、先对号入座显存配置基线部署前先用下面这张表确认你的硬件能跑哪种精度来源README.md 的 Hardware requirement 章节使用场景精度最低硬件说明模型推理INT4 量化1 × RTX 309024GCogAgent 约 12.6GBCogVLM 约 11GB单卡即可模型推理FP16 / BF161 × A10080G或 2 × RTX 309024G单卡 24G 放不下需要多卡切分模型微调FP164 × A10080G推荐或 8 × RTX 3090LoRA 微调也可用 8×3090一句话总结显存不够时要么量化降精度要么多卡切模型。这两条路在 basic_demo/ 的推理脚本里都已经支持。二、多卡并行推理最快启动步骤CogVLM 官方推理脚本基于 SAT 框架原生支持模型并行把模型切分到 2 / 4 / 8 张 GPU 上用torchrun一条命令启动即可。单卡启动显存充足时# 先安装依赖要求 CUDA 11.8 pip install -r requirements.txt python -m spacy download en_core_web_sm # 进入 basic_demo 目录后运行 cd basic_demo python cli_demo_sat.py --from_pretrained cogvlm-chat --version chat_old --bf16 --stream_chat多卡并行启动显存不足或需要更快推理时--nproc-per-node[n]控制参与推理的 GPU 数量# 双卡并行把模型切分到 2 张 GPU torchrun --standalone --nnodes1 --nproc-per-node2 cli_demo_sat.py --from_pretrained cogagent-chat --version chat --bf16多卡模式下几个容易踩的坑来自 cli_demo_sat.py 的实现逻辑卡数必须与启动参数一致脚本内部断言world size must equal to model parallel size即--nproc-per-node填几就严格用几张卡多填少填都会报错只有 rank 0 负责交互其余卡只通过torch.distributed.broadcast同步输入你只需看主卡输出的回复--version必须与模型匹配cogagent-chat 用chatcogvlm-chat 用chat_oldgrounding 模型用base对应关系见 README.md 的 Which --version to use 章节填错会导致输出格式异常。 注意Huggingface 版脚本 cli_demo_hf.py 走device_map路线文档中多卡并行torchrun示例是给SAT 版的多卡部署请优先使用cli_demo_sat.py。三、显存不足排查清单按顺序执行遇到CUDA out of memory时建议按下面顺序逐步排查一般第 1、2 步就能解决 90% 的问题第 1 步改用 4-bit / 8-bit 量化单卡直接跑起来SAT 版推理原生支持量化把--bf16换成--fp16 --quant 4或--fp16 --quant 8量化参数需与--fp16搭配使用# 4-bit 量化CogVLM 约 11GB 显存即可推理 python cli_demo_sat.py --from_pretrained cogvlm-chat-v1.1 --fp16 --quant 4 --stream_chat # 8-bit 量化精度与显存的折中 python cli_demo_sat.py --from_pretrained cogagent-chat --fp16 --quant 8 --stream_chatHuggingface 版也支持 4-bitpython cli_demo_hf.py --from_pretrained THUDM/cogvlm-chat-hf --quant 4。第 2 步量化后仍不够上多卡模型并行用上一节的torchrun --nproc-per-node2命令把模型切到双卡。24G 显存的 2 张 3090 即可跑 BF16 全精度版本。第 3 步检查是否序列太长、上下文累积过多--max_length控制总序列长度默认 2048生产上按业务实际回复长度调小可明显省显存CogVLM 多轮对话中图片会一直保留在上下文里cache_image机制显存吃紧时用clear清空对话历史或缩短每轮问答的图片张数CogAgent 支持 1120×1120 输入分辨率档位远高于 CogVLM 的 490×490显存占用更高显存紧张时可换 cogagent-vqa 或降回 CogVLM。第 4 步核对环境变量与驱动确认nvidia-smi中 CUDA 版本 ≥ 11.8requirements.txt的依赖要求多机多卡时参考 evaluate_cogvlm.sh 中的 NCCL 配置NCCL_DEBUGinfo、NCCL_IB_DISABLE等排查卡间通信问题模型默认缓存在~/.sat_models磁盘空间不足会导致加载异常可用环境变量SAT_HOME改到数据盘。四、生产环境服务化Web Demo 与 OpenAI 兼容接口命令行验证没问题后线上通常用两种方式对外提供能力方式 1Gradio Web 服务内部使用 / 演示验证pip install gradio # 注意仅支持 3.x cd basic_demo python web_demo.py --from_pretrained cogvlm-chat-v1.1 --version chat_old --bf16web_demo.py 同样读取WORLD_SIZE环境变量因此可以复用多卡并行方式启动。部署后的界面支持上传图片、多轮对话与参数调节方式 2OpenAI Vision 兼容 API对接现有业务系统openai_demo/openai_api.py 提供与 GPT-4V 调用方式一致的接口业务代码几乎不用改python openai_demo/openai_api.py # 启动 API 服务 python openai_demo/openai_api_request.py # 请求示例连续对话上线前最后两项检查权重加载失败或下载慢时把--from_pretrained换成手动下载的本地模型路径官方 FAQ 中给出了多种镜像源如果你用的是微调产物LoRA 合并后的多卡检查点先合并成单卡权重再上线torchrun --standalone --nnodes1 --nproc-per-node1 utils/merge_model.py --version base --bf16 --from_pretrained ./checkpoints/...脚本见 merge_model.py。五、总结一张清单带走场景推荐方案关键命令单张 24G 显卡INT4 量化单卡推理--fp16 --quant 4单张 80G 显卡BF16 全精度推理--bf162 / 4 / 8 张中端卡多卡模型并行torchrun --nproc-per-node2 ...对接业务系统OpenAI 兼容 APIopenai_demo/openai_api.py内部演示 / 验收Gradio Web Demobasic_demo/web_demo.py按照「量化优先、多卡兜底、序列瘦身、通信检查」的顺序排查CogVLM / CogAgent 在 24G 消费级显卡上也能顺利跑起来。更多模型版本与--version参数对照可查阅 README.md模型结构定义在 utils/models/cogvlm_model.py 与 utils/models/cogagent_model.py需要二次开发时从这里入手。【免费下载链接】CogVLM-codea state-of-the-art-level open visual language model | 多模态预训练模型项目地址: https://gitcode.com/zai-org/CogVLM-code创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价