跳到主要内容

多模态视觉语言模型(VLM)

LLaVA 本地部署:从 4.37GB 的 Q4 量化到 17.1GB 的 OneVision-2,一张卡讲清楚

从月下载量两百多万的 llava-1.5-7b-hf,到 2026 年 4 月发布的 LLaVA-OneVision-2-8B,这条线换过三次代码仓库、两套许可证。这页把每一档的真实显存、真实命令、该租哪张卡列全。

LLaVA(Large Language and Vision Assistant)是 Haotian Liu、Chunyuan Li、Yuheng Li、Yong Jae Lee 在威斯康星大学麦迪逊分校与微软研究院期间做出来的开源视觉语言模型,也是第一个把「视觉编码器 + 投影层 + 语言模型」这套极简结构做到能打的工作。它的历史地位到今天还写在下载量上:Hugging Face 上的 llava-hf/llava-1.5-7b-hf 单月下载超过 252 万次,仍然是被引用、被 fine-tune、被塞进各类 pipeline 最多的开源 VLM 之一。

但你现在搜到的中文教程,绝大多数停在 2023 年的 LLaVA-1.5 和 2024 年初的 LLaVA-1.6。真实情况是这条线换过三次门牌:最早的 haotian-liu/LLaVA 是 1.5/1.6 时代的家;之后主力搬到 LLaVA-VL/LLaVA-NeXT,那个仓库的 README 现在自己把训练管线标注为 legacy,并把人指向 lmms-engine;现役开发发生在 EvolvingLMMs-Lab/LLaVA-OneVision-1.5 仓库里——2025-09-30 发了 LLaVA-OneVision-1.5 技术报告(arXiv 2509.23661),2025-12-11 补了 RL 配方,2026-02-10 放出 codec-aligned 的 OneVision-Encoder,2026-04-30 在同一个仓库里发布了 LLaVA-OneVision-2。所以「LLaVA 被淘汰了吗」这个问题的答案是:没有,只是你要去对的仓库拿对的权重。

显存这件事,LLaVA 系列有个特别容易踩的地方:真正吃显存的经常不是权重,而是视觉 token。LLaVA-1.5 用 CLIP ViT-L/14-336,每张图固定 576 个视觉 token(336÷14=24,24²=576);LLaVA-1.6 引入 AnyRes 之后支持到 672×672、336×1344、1344×336,一张 672×672 的图会被切成 2×2 四块再加一张全局缩略图,5×576 ≈ 2880 个 token 直接灌进上下文。到了 OneVision-2,视频侧用 HEVC 式的 codec-aligned patch 选择——I 帧保留稠密 patch,P 帧只留运动和残差丰富的部分——在同样的 token 预算里塞进 18 帧而不是 6 帧,时序覆盖提升 3 倍。这意味着同一个 8B 模型,你喂一张图和你喂 16 帧视频,需要的卡完全不是一档。下面按档位拆开讲,并且每一档都给一张 NexGPU 上能立刻开机的卡。

01 —

LLaVA 现在到底有哪些版本,各自要多少显存

参数量取自 Hugging Face safetensors 元数据,显存为权重占用(bf16/fp16 按每参数 2 字节折算),不含 KV cache 与视觉 token 激活。

版本参数量显存上下文说明
LLaVA-OneVision-2-8B-Instruct(lmms-lab-encoder)8.53B(8,527,213,568)bf16 权重 ≈ 17.1GB模型卡未公布上下文上限;视频侧由 num_frames × max_pixels 决定2026-04-30 发布的现役旗舰。Qwen3-8B 骨干 + codec-aligned OneVision-Encoder,原生中英双语,架构名 LlavaOnevision2ForConditionalGeneration。装环境要 transformers>=5.7.0、torch>=2.4,并且必须带 trust_remote_code=True;走 codec 视频后端还要 ffmpeg 4.4.x–7.x。Apache-2.0。
LLaVA-OneVision-2-4B-Instruct4B(Qwen3-4B-Instruct-2507 骨干)权重未放出,不给估值同 OneVision-2 系列官方 README 里标的是 coming soon,Hugging Face 上目前拉不到权重。看到哪篇博客写「已开源 4B」直接跳过,别把机时浪费在 404 上。真要现在就跑 4B 这一档,用 LLaVA-OneVision-1.5-4B-Instruct。
LLaVA-OneVision-1.5-8B-Instruct(含 8B-RL)8.53B(8,527,214,624)bf16 权重 ≈ 17.1GB模型卡未公布2025 年 9 月发布,视觉塔是 DeepGlint-AI/rice-vit-large-patch14-560,语言侧走 Qwen,主打原生分辨率处理和「训练全流程开源」——连 85M 的 mid-training 语料一起放了出来。2025-12 追加强化学习版本 mvp-lab/LLaVA-OneVision-1.5-8B-RL,参数量完全一致。Apache-2.0。
LLaVA-OneVision-1.5-4B-Instruct4.74B(4,741,610,528)bf16 权重 ≈ 9.5GB模型卡未公布24GB 单卡最省心的一档:9.5GB 权重扔进去,还剩十几 GB 全部让给 KV cache 和多图 token。做批量图文抽取、商品图打标、发票/证件字段识别这类活,性价比比硬上 8B 好得多。Apache-2.0。
llava-onevision-qwen2-7b-ov-hf / -72b-ov-hf(2024 OneVision)8.03B(8,030,807,584)/ 73.18B(73,181,570,592)fp16 ≈ 16.1GB / ≈ 146GB需要 transformers >= 4.45transformers 原生支持、不需要 trust_remote_code 的一档,架构名 LlavaOnevisionForConditionalGeneration,vLLM 也直接认。注意 72B 的 fp16 权重约 146GB,比单张 H200 的 141GB 还多,单卡装不下,必须张量并行或降精度。Apache-2.0。
LLaVA-1.6 / LLaVA-NeXT 与 LLaVA-1.5(老一代)7B / 13B / 34B1.5-7B fp16 ≈ 14.1GB、1.5-13B fp16 ≈ 26.7GB;1.6-7B GGUF:Q4_K_M 4.37GB、Q5_K_M 5.13GB、Q8_0 7.7GBllava:7b 为 32K,llava:13b 与 llava:34b 为 4K(Ollama 标注)生态最全的一代,Ollama 上 llava:7b 4.7GB、llava:13b 8.0GB、llava:34b 20GB 都是 1.6。许可证是这里最大的坑:LLaVA-1.5 的权重走 Llama 2 社区许可,而 llava-v1.6-mistral-7b-hf(基座 Mistral-7B-Instruct-v0.2)才是 Apache-2.0。要商用,先看清楚你拉的是哪一个。

02 —

按场景选卡:不要为一张图的推理去租 H100

NexGPU 覆盖 51 个国家和地区、1,175 个已验证可租节点、2,498 张 GPU、75 种型号,单节点最多 14 卡、最大节点显存 2,152GB。以下为每卡每小时列表价。

  • 先用 Q4 量化把 LLaVA-1.6-7B 跑通、做效果对比和 prompt 调试

    RTX 3090 24GB$0.193/卡·时

    Q4_K_M 权重 4.37GB 加上 mmproj-model-f16 视觉投影层,24GB 里剩下的空间足够把 AnyRes 分辨率拉满,而这是全站最便宜的 24GB 卡——比 16GB 的 Tesla T4($0.298)还便宜三分之一。

  • LLaVA-OneVision-1.5-4B bf16 常驻,跑批量图文抽取 / 打标 API

    RTX 4090 24GB$0.540/卡·时

    9.5GB 权重进卡后还剩十几 GB 给 vLLM 的 KV cache 与多图 token,单请求延迟明显优于 3090,是「一直开着对外服务」这一档的甜点位。

  • LLaVA-OneVision-2-8B bf16 在线服务,或 16 帧视频问答

    RTX 5090 32GB$0.723/卡·时

    17.1GB 权重之后仍有约 14GB 留给视觉 token 和并发。多帧场景先炸的从来不是权重而是激活值,24GB 卡在 num_frames 一调大就会 OOM,32GB 才是安全线。

  • OneVision-72B fp16 全精度评测,或 8B 全参微调 / 大规模 LoRA

    A100 SXM4 80GB(双卡张量并行)$1.088/卡·时

    73.18B 的 fp16 权重约 146GB,比单张 H200 的 141GB 还多,单卡物理上装不下,必须两张 80GB 起步。NexGPU 单节点最多 14 卡,之后要扩到全参微调也不用换机器重搭环境。

03 —

四步把 LLaVA 跑起来

以现役的 LLaVA-OneVision-2-8B-Instruct 为主线,末尾附一条给低配机器的 GGUF 路线。

  1. 01

    开实例,选 vLLM 预置镜像

    在 console.nexgpu.net 按显存挑卡(8B bf16 建议 RTX 5090 32GB 起),从 2,000+ 预置镜像里直接选 PyTorch 或 vLLM 镜像,省掉 CUDA/驱动这一段。开机后用 SSH、Jupyter 或网页终端进去都行。OneVision-2 对版本很挑,先把依赖钉死——transformers 必须 5.7.0 以上,否则 custom_code 加载会直接报错。

    pip install -U vllm "transformers>=5.7.0" "torch>=2.4" pillow requests decord
  2. 02

    拉权重并起 OpenAI 兼容服务

    vLLM 一条命令把模型拉下来并起 HTTP 服务。OneVision-2 走的是自定义建模代码,trust_remote_code 不能省。如果你要跑的是 2024 年那版 llava-onevision-qwen2-7b-ov-hf,transformers 原生支持,这个参数反而不需要。首字节之前会有几分钟在下载 17GB 权重,这段时间按秒计费,跑完就停——NexGPU 的算力计费在实例停止时立刻停止。

    vllm serve lmms-lab-encoder/LLaVA-OneVision-2-8B-Instruct --trust-remote-code --dtype bfloat16 --port 8000
  3. 03

    用 OpenAI 协议发第一张图

    服务起来之后就是标准的 /v1/chat/completions,content 数组里混排 image_url 和 text。这一步最常见的翻车是把 max_model_len 设得太小:一张 672×672 的图在 AnyRes 下能吃掉近 2900 个视觉 token,加上系统提示词很容易顶到上限,然后你会看到图像特征和图像占位符数量对不上的报错。

    curl http://localhost:8000/v1/chat/completions -H 'Content-Type: application/json' -d '{"model":"lmms-lab-encoder/LLaVA-OneVision-2-8B-Instruct","messages":[{"role":"user","content":[{"type":"image_url","image_url":{"url":"https://example.com/a.jpg"}},{"type":"text","text":"这张图里有几个人?分别在做什么?"}]}]}'
  4. 04

    低配路线:GGUF + llama.cpp

    只有 16GB 甚至更小的卡,就走量化。cjpais/llava-1.6-mistral-7b-gguf 提供 Q3_K_XS 2.99GB 到 Q8_0 7.7GB 的全套量化,注意视觉部分是单独一个 mmproj-model-f16.gguf 文件,必须用 --mmproj 一起加载,只下语言权重是跑不起来的。另外 llama.cpp 早就把老的 llava-cli 并进了统一的 libmtmd,现在的入口是 llama-mtmd-cli;LLaVA 在那边被归为 legacy 架构,而 mtmd 子项目本身仍在高速迭代、明确说明会有破坏性改动,锁版本再上生产。图省事也可以直接 ollama run llava:7b(4.7GB)。

    llama-mtmd-cli -m llava-v1.6-mistral-7b.Q4_K_M.gguf --mmproj mmproj-model-f16.gguf --image ./a.jpg -p "用中文描述这张图"

一次真实的 LoRA 微调,成本算给你看

假设你要把 LLaVA-OneVision-1.5-8B-Instruct 微调到自家的工单截图上。挑 A100 PCIE 80GB($0.824/卡·时),单卡 LoRA 跑 12 小时:12 × $0.824 = $9.89。数据和权重占 80GB 存储(17.1GB 权重 + 数据集 + checkpoint),按存储中位价 $0.414/GB·月 计,占用 3 天就是 80 × $0.414 × 3 ÷ 30 = $3.31。训完把 LoRA 权重拉回本地,0.5GB × $0.0081/GB = $0.004。合计约 $13.2。换个角度看这个数字:LLaVA-OneVision-1.5 官方自己披露 8B 模型的完整训练成本约 $16,000(按 A100 约 $0.60/GPU·时 折算)——你不需要重走那一遍,站在他们的 Apache-2.0 权重上微调,两位数美元就够。再往下压:只想验证效果,RTX 3090 24GB 跑 Q4 量化的 LLaVA-1.6-7B,两小时 2 × $0.193 = $0.386,比一杯咖啡便宜。往上顶:OneVision-72B fp16 需要双卡 A100 SXM4 80GB,评测 6 小时是 2 × $1.088 × 6 = $13.06。全程按秒计费、按小时定价,无最低消费、无开通费、无需申请配额,实例一停算力费就停,存储费到销毁为止。

04 —

常见问题

LLaVA 是不是已经过时了?2026 年还值得本地部署吗?

过时的是版本,不是项目。LLaVA-1.5(2023)和 LLaVA-1.6/NeXT(2024)确实是老一代,LLaVA-VL/LLaVA-NeXT 仓库自己都把训练管线标成了 legacy。但主线一直在动:2025-09-30 的 LLaVA-OneVision-1.5、2025-12-11 的 RL 配方、2026-02-10 的 codec-aligned OneVision-Encoder、2026-04-30 的 LLaVA-OneVision-2,全部在 EvolvingLMMs-Lab 的仓库里。它最大的卖点也从「效果最强」变成了「全流程真开源」——权重、85M mid-training 语料、指令数据、训练代码全给,Apache-2.0。你想做一个能审计、能复现、能改架构的自有 VLM,这条线仍然是最省事的起点,而在 NexGPU 上开一张卡验证它只需要几分钟。

LLaVA 本地部署到底需要多大显存?给个直接的数字。

按权重算:LLaVA-1.6-7B 的 Q4_K_M 是 4.37GB,Q8_0 是 7.7GB;llava-1.5-7b-hf fp16 约 14.1GB,13B 约 26.7GB;LLaVA-OneVision-1.5-4B bf16 约 9.5GB;OneVision-1.5-8B 和 OneVision-2-8B 都是 8.53B 参数、bf16 约 17.1GB;OneVision-72B fp16 约 146GB。然后按实际用法加 buffer:单图推理留 30% 余量,多帧视频和高分辨率 AnyRes 至少留一倍。对应到租卡就是——Q4 玩票选 RTX 3090 24GB($0.193/卡·时),4B 常驻选 RTX 4090 24GB($0.540),8B 在线服务选 RTX 5090 32GB($0.723),72B 必须双卡 A100 SXM4 80GB($1.088)。全部按秒计费,试错成本以美分计。

为什么我一跑就报「图像特征和图像 token 数量对不上」?

这是 LLaVA 家族最经典的报错,几乎都出在 processor 配置和上下文截断上。transformers 从 4.46 起会明确提醒你给 processor 补上 patch_size、num_additional_image_tokens 和 vision_feature_select_strategy 三个属性——补上之后它才能推算每张图要展开多少个 <image> 占位符(LLaVA-1.5 是固定 576 个/图,AnyRes 下会翻好几倍)。一旦文本被截断,占位符数量对不上视觉特征,合并 embedding 时就直接抛错。顺手记住另一条:批量推理务必设 processor.tokenizer.padding_side = "left",否则结果会莫名其妙地劣化。这些坑在本地反复重装环境很费时间,在 NexGPU 上直接换个预置镜像重开一台,几十秒的事。

LLaVA 能商用吗?许可证怎么算?

分两类,一定要看清你拉的是哪个仓库。LLaVA-1.5 的权重(llava-hf/llava-1.5-7b-hf、13b-hf)挂的是 Llama 2 社区许可,有附加条款;而 llava-v1.6-mistral-7b-hf(基座 Mistral-7B-Instruct-v0.2)、llava-onevision-qwen2 系列、LLaVA-OneVision-1.5 全系(含 8B-RL)以及 LLaVA-OneVision-2-8B-Instruct 都是 Apache-2.0,商用最干净。原始 haotian-liu/LLaVA 仓库的代码本身是 Apache-2.0,但权重要受基座模型和训练数据条款约束。想避开许可证纠纷,直接从 OneVision-1.5 或 OneVision-2 起步,在 NexGPU 上开卡就能一次性把两个版本拉下来横向对比。

LLaVA-OneVision-2 的视频理解怎么部署?需要几张卡?

OneVision-2 的核心升级就在视频侧:codec-aligned 编码器按 HEVC 的思路选 patch——I 帧保留稠密 patch,P 帧只挑运动和残差丰富的区域——同样的 token 预算下能覆盖 18 帧而不是 6 帧,时序覆盖提升约 3 倍。部署上除了 transformers>=5.7.0 和 decord,走 codec 后端还要装 codec-video-prep、opencv-python 以及 ffmpeg 4.4.x–7.x。官方示例的起手配置是 num_frames=16、max_pixels=200704。显存上 17.1GB 权重是底线,加上 16 帧的视觉 token,24GB 卡会很紧张,建议 RTX 5090 32GB($0.723/卡·时)起步;要跑长视频或并发,直接上 RTX A6000 48GB($0.817)或 A100 PCIE 80GB($0.824),NexGPU 上这三张卡都能秒开。

LLaVA 和 Qwen-VL、InternVL 比该选谁?

如果你只是要一个开箱即用、榜单分数最高的 VLM,市面上确实有更省心的选择。LLaVA 的不可替代性在别处:结构最简单(视觉塔 + 投影层 + LLM,改起来一眼看得穿)、训练链路最透明(OneVision-1.5 把 85M mid-training 语料和指令数据一起开源了)、下游生态最厚(llava-hf/llava-1.5-7b-hf 单月两百五十万次下载,随便找篇论文的 baseline 都是它)。做研究、做自有架构、做需要说清楚数据来源的行业模型,LLaVA 这条线是首选。而这些事都要真机验证——NexGPU 有 75 种 GPU 型号、2,498 张卡覆盖 51 个国家和地区,按秒计费无最低消费,Telegram 上中英文双语支持不排队,把三家模型在同一张卡上跑一轮对比,成本大概等于一顿午饭。

开始使用 NexGPU

无论你是企业研发团队还是独立开发者,都可以在几分钟内跑起第一个任务。

注册即可浏览全网实时价格,无需绑定支付方式。