一句话答案:VLM(Vision-Language Model,视觉语言模型)是同时接收图像/视频与文本,并输出相似度、标签、坐标或自然语言的模型集合。CLIP 式双编码器适合图文检索和零样本分类;生成式 VLM 通常把视觉表示接入语言模型,用于描述、问答、OCR、定位和多步任务。模型能生成流畅答案,不等于它看清了细节、完成了空间定位或给出了可验证事实。
VLM、计算机视觉、OCR、LLM 与多模态模型有什么区别?
计算机视觉是更大的任务领域,包含分类、检测、分割、跟踪、OCR 等;VLM 强调视觉与语言的联合表示或交互;LLM 主要处理语言 token;MLLM/LMM 可能再包含音频、视频、工具或其他模态。一个产品界面支持上传图片,也不意味着其底层每个模型都能接收图片,更不意味着输出包含像素级定位。
| 名称 | 典型输入 | 典型输出 | 优势 | 不能直接替代 |
|---|---|---|---|---|
| 传统视觉模型 | 图像/视频 | 类别、框、掩码、关键点 | 输出受约束,特定任务易测量 | 开放式解释与自然语言交互 |
| OCR/文档解析 | 图片、扫描件、PDF 页面 | 文字、版面、表格或字段 | 文字与结构可建立明确真值 | 对内容真实性和业务含义的判断 |
| 图文双编码器 | 图像 + 候选文本 | 向量或相似分数 | 检索、聚类、零样本分类效率高 | 长文本回答、精确坐标和像素分割 |
| 生成式 VLM | 图像/视频 + 指令 | 文本、结构化字段,部分模型支持框/点 | 统一问答、描述、推理和交互 | 有证据的事实系统与专业审批 |
| 多模态/全模态模型 | 文本、视觉,可能含音频等 | 文本或多种模态 | 跨模态交互范围更广 | 每个模态上的专用最佳系统 |
“VLM 能看懂图片”是方便沟通的简称,更准确的说法是:模型把视觉输入转换为可用于检索或生成的表示,并依据训练数据和当前指令计算输出。它可能利用图像,也可能被语言先验带偏;所以必须通过移除图片、裁剪证据区和对照问题验证模型是否真的使用了视觉信息。
四类常见架构:双编码器只是其中一种
OpenAI CLIP分别编码图像和文本,让匹配图文在向量空间靠近。其原始论文展示了自然语言监督和零样本迁移;但 CLIP 的核心输出是相似度,不是一个会逐字生成回答的聊天模型。
生成式路线通常将视觉特征变成语言模型可消费的表示。LLaVA 官方仓库记录了先做视觉—语言特征对齐、再做视觉指令微调的两阶段训练;Visual Instruction Tuning 论文使用视觉编码器、投影层与语言模型构成助手。另一种路线如 DeepMind Flamingo,通过跨注意力层让语言模型接收交错的图文序列;其论文针对少样本多任务学习,不应被概括为所有 VLM 的固定结构。
| 架构族 | 核心机制 | 适合任务 | 关键局限 | 验收重点 |
|---|---|---|---|---|
| 双编码器 | 图像和文本独立编码后比较向量 | 检索、去重、聚类、候选分类 | 缺少开放式生成与细粒度交互 | Recall@K、负样本、阈值和域外数据 |
| 视觉编码器 + 连接器 + LLM | 视觉 token 经线性层/MLP/查询器进入 LLM | 描述、问答、文档和对话 | 视觉瓶颈、语言先验和位置细节丢失 | 图片消融、细节、OCR、幻觉和格式 |
| 交叉注意力/重采样器 | 语言层在特定位置读取压缩视觉表示 | 多图、交错图文、少样本上下文 | 重采样可能压缩细节,序列成本增加 | 多图顺序、引用对应和长上下文 |
| 统一/原生多模态 token | 用共享或协调表示处理多种模态 | 图像、视频、音频与工具协作 | 具体实现和输出能力差异大 | 按模型卡逐模态、逐输出复核 |
“视觉编码器一定冻结”“图片一定变成 soft token”“所有模型都有一个 projector”都不是通用事实。选型和排错时要记录准确的模型仓库、revision、processor、图像预处理、chat template、推理框架和生成参数。
图片进入模型后发生什么:分辨率、切片与 token 都会改答案
模型服务通常会读取图片、纠正方向、转换颜色、缩放或切片,再生成固定或动态数量的视觉 token。小字、细线、远处目标和跨页关系可能在缩放时消失;提高分辨率或增加切片能保留细节,却会增加 token、显存、时延与费用。多图顺序、重复图片、透明背景、极端长宽比和动画帧也可能改变结果。
Transformers 多模态聊天模板文档明确,多模态消息的 content 是由 image、text 等不同类型条目组成的列表,预处理由 processor 而不是仅由 tokenizer 负责;image-text-to-text 任务文档也区分 chat template 文本与新的多模态输入。把文本模型的 prompt 字符串直接套给 VLM,可能导致图片占位、顺序或模板错误。
| 输入合同字段 | 必须记录 | 常见错误 | 验证方法 |
|---|---|---|---|
| 文件身份 | 来源、哈希、格式、页/帧范围 | 同名文件覆盖、拿缩略图当原图 | 固定样本包和 SHA-256 |
| 像素处理 | 方向、色彩、缩放、裁剪、切片 | EXIF 方向错、文字被缩小、框坐标漂移 | 保存处理后预览和尺寸 |
| 视觉预算 | min/max pixels、帧数、视觉 token | 不同服务默认值不可比 | 记录请求参数和实际计费单位 |
| 消息模板 | 图片与文本顺序、role、占位符 | processor/template 版本不匹配 | 打印最终模型输入摘要 |
| 目标输出 | 自然语言、JSON、框、点、页码或引用 | 让自然语言模型猜结构 | schema 校验和失败返回 |
| 隐私与权限 | 人脸、证件、客户资料、区域和保留 | 上传前不脱敏、不区分日志和训练 | 数据分级、最小化与删除演练 |
任务怎么选:先写输出合同,再选 VLM
“哪个 VLM 最强”不是可执行问题。检索需要稳定向量和大规模索引;票据字段抽取需要 OCR、版面和严格 schema;视觉问答需要证据区域;GUI Agent 还涉及坐标、动作权限与回滚;视频任务则要定义抽帧、时间定位和长上下文。一个模型可以覆盖多项任务,但每项都要独立验收。
| 业务任务 | 优先路线 | 最低输出合同 | 不能只看 |
|---|---|---|---|
| 以图搜图/图文检索 | 双编码器/多模态 embedding | 结果 ID、分数、模型版本、索引版本 | 生成式聊天 benchmark |
| 图片描述/无障碍 | 生成式 VLM | 事实描述、未知项、敏感属性规则 | 语言是否生动 |
| 票据/合同/长文档 | OCR/版面解析 + VLM + schema | 字段值、页码、框、原文证据、置信/状态 | 一段自然语言总结 |
| 目标定位/盘点 | grounding/detection 或支持坐标的 VLM | 类别、框/点、坐标系、图像尺寸 | 模型能否说出目标名称 |
| 图表与科学图像 | OCR/图表解析 + 推理 | 读数、单位、图例、计算式和证据区 | 最终答案正确一次 |
| 视频理解 | 视频 VLM 或检索 + 片段推理 | 时间码、帧证据、采样策略和遗漏声明 | 只看短 demo |
| GUI/机器人动作 | 视觉定位 + 规划 + 受控执行 | 观测、坐标、动作、审批、结果和回滚 | 截图问答准确率 |
当前开源系列变化很快。例如 Qwen3-VL 官方仓库把识别、文档解析、grounding、视频、移动/电脑控制等能力分成独立 cookbook,并披露评测 prompt 与生成参数仍有配置差异;Gemma 3 模型卡明确了图像输入、文本输出及偏差、事实错误、隐私和误用限制。这些页面用于说明“先看具体模型卡”,不是永久榜单。
若任务只是传统检测或 OCR,专用模型可能更便宜、更稳定且输出更可控;只有当跨图文推理、开放指令或多任务共享真正产生价值时,才需要生成式 VLM。模型权重选择可继续阅读站内的 Hugging Face 模型卡与权重核验,部署路线参考 本地、云端与混合 VLM 决策。
怎样评测 VLM:不能用一个总榜分替代真实任务
公开 benchmark 适合发现能力边界,但分数受模型版本、prompt、图片预处理、答案抽取、采样和裁判模型影响。VLMEvalKit 官方仓库明确说明,它统一采用生成式评测和默认 prompt 时,不保证复现每个原论文的精确数字;其快速开始文档也提醒模型像素设置和答案抽取器会造成榜单差异。
MMMU-Pro通过过滤可被纯文本模型回答的问题、增加候选项并引入仅视觉输入,尝试验证模型是否真正结合视觉与文本;POPE针对对象幻觉设计轮询式评测,同时指出 prompt 和生成风格会影响结果。两者都不是所有业务的万能分数,生产系统仍需自己的冻结测试集。
测试集不能只收“清晰图片 + 标准问法”
公开数据可用于建立基线:COCO Captions侧重图像描述,VQA 官方数据页则提供图片上的开放式问答;但它们不能代表你的票据、中文截图、设备照片或客服附件。业务测试集应来自已获权使用的真实流量,并按来源、语言、分辨率、旋转、压缩、小字、遮挡、多图、空答案与恶意输入切片。每个切片至少同时记录任务成功率、拒答、幻觉、人工返工、延迟和成本,不能只报告总体平均分。
还要预先隔离训练/调参集、固定回归集与上线后抽样集。发现公开题目疑似被模型记忆时,不把高分当作泛化证据;对金额、身份、位置和执行动作等高风险字段,设置单独阈值与零容忍错误类型。测试图片、标注规则、模型 revision、processor、prompt、解码参数和裁判版本应一起冻结,才可能解释升级前后的差异。
标注本身也要抽检一致性:同一张模糊图片若专家无法达成一致,就应记录“不可判定”而不是强造唯一答案。上线后把用户纠错、人工改写和失败样本回流到独立候选池,经脱敏、授权与复核后再进入下一版回归集,避免一边测一边修改答案造成分数虚高。
| 任务 | 核心指标 | 必须配套的切片 | 容易被隐藏的失败 |
|---|---|---|---|
| 检索 | Recall@K、MRR、误召回率 | 难负样本、长尾、语言、重复图 | 热门商品先验压过图像 |
| OCR/字段 | CER/WER、字段准确率、完整率 | 小字、旋转、印章、表格、手写 | 字段值对但页码/证据错 |
| VQA/描述 | 任务准确率、人评、拒答 | 图像消融、反事实、否定和细节 | 凭常识猜对而未看图 |
| 定位 | IoU、点命中率、漏检/误检 | 小目标、遮挡、密集目标、坐标格式 | 名称对但框错对象 |
| 图表/文档推理 | 最终值 + 证据 + 计算一致性 | 单位、图例、跨页、缺失值 | 答案碰巧正确、过程引用错误 |
| 生产运行 | 成功率、p50/p95、有效任务成本 | 文件大小、并发、供应商错误和重试 | 只统计成功请求,不算人工返工 |
| 安全 | 越权率、注入成功率、敏感信息泄漏 | 图片文字、二维码、元数据、跨模态指令 | 文本过滤通过但图片内指令执行 |
一个最小可复现协议应包含:冻结 50—200 个真实样本;按文档、拍照、小字、语言、难例和高风险字段分层;锁定模型/revision、processor、prompt、像素、采样和 schema;每个候选至少重复多次;人工复核失败类型;把质量、时延、费用、拒答和人工返工分开报告。公开来源和厂商分数的引用方法可参考站内的 一手来源与证据核验指南。
幻觉为什么发生:流畅答案不能代替视觉证据
VLM 可能描述图片中不存在的对象、读错属性与数量、混淆多图、使用文本先验补全不可见细节,或在图片模糊时仍给出肯定结论。要求“逐步思考”有时会改变结果,但推理文本仍由模型生成,不是内部计算或像素证据的审计日志。
| 控制 | 作用 | 不能保证 | 可验证输出 |
|---|---|---|---|
| 先 OCR/检测再问答 | 提供结构化视觉候选 | 上游解析不会错 | 原文、框、页码、上游版本 |
| 要求证据区域 | 迫使输出绑定位置 | 模型框出的就是正确证据 | 坐标系、尺寸、可视化框 |
| 图像消融/裁剪对照 | 判断答案是否依赖图片 | 覆盖所有捷径和先验 | 原图、无图、证据裁剪三组结果 |
| 约束 JSON/schema | 减少格式漂移 | 字段内容真实 | 校验错误、unknown、证据字段 |
| 检索/RAG | 补充外部文本知识 | 图片解析正确或引用支持答案 | 视觉证据与文本来源分别记录 |
| 人工复核 | 处理高风险与未知样本 | 复核者不会被流畅措辞影响 | 双人/抽样规则、修改和责任人 |
生产回答应允许 unknown、unreadable、not_in_image 和 needs_review,而不是强迫模型每次给出完整答案。对于计数、金额、坐标、医学/工业异常和执行动作,视觉证据必须能由人或专用程序独立复查。
图片也能携带提示注入:安全边界不能只检查文本框
攻击者可以把指令写在图片、文档、二维码、截图或不可见/低对比区域中,诱导模型泄露数据、忽略系统规则或调用工具。OWASP Prompt Injection把多模态输入视为注入载体之一。若 VLM 连接浏览器、邮件、数据库或机器人,图片内容必须被当作不可信数据,而不是高优先级指令。
NIST 生成式 AI 风险管理框架强调按具体情境识别、测量与管理风险。落地时应把图像读取与工具执行隔离:模型可以提出候选动作,但高风险写入、发送、付款、控制设备或访问敏感记录必须经过固定策略和人工批准。可继续参考站内的 AI 智能体权限与治理指南。
| 攻击面 | 最低控制 | 验证方式 |
|---|---|---|
| 图片/文档内指令 | 声明其为数据;禁止覆盖系统策略;敏感动作外部审批 | 可见、隐蔽、多语言、二维码注入测试 |
| 外部图片 URL | 域名/类型/大小限制、隔离下载、SSRF 防护 | 内网地址、重定向、超大文件和伪 MIME |
| EXIF/元数据 | 按需剥离,不把元数据自动拼入 prompt | GPS、作者、恶意字段和异常编码 |
| 敏感视觉数据 | 最小化、脱敏、权限、区域、保留与删除 | 日志/缓存/供应商/备份逐层删除演练 |
| 模型与 processor 供应链 | revision、哈希、remote code 审核、依赖锁定 | 离线加载、升级 diff、SBOM 和回滚 |
| 工具调用 | schema、allowlist、只读、额度、审批、幂等 | 越权参数、重放、部分失败和撤销演练 |
从试验到生产的九步验收
- 定义任务:写明输入、输出 schema、用户、失败成本、允许拒答和人工责任。
- 建立样本真值:收集真实且有权使用的图片/视频,按困难、语言、设备和风险分层,保留来源与哈希。
- 选择最小路线:能用 OCR、检测或双编码器解决时,不默认引入生成式 VLM;需要跨模态交互再增加 LLM。
- 锁定运行身份:记录模型 ID/revision、processor、chat template、像素/帧预算、量化、推理框架和许可证。
- 运行基线与消融:比较专用模型、VLM、无图、裁剪证据和不同输入设置,确认价值来自视觉而不是语言猜测。
- 建立证据输出:关键字段返回页码、框/点、时间码、原文和 unknown;schema 失败不自动转成自然语言。
- 执行安全演练:测试视觉注入、恶意 URL、敏感图像、越权工具、日志泄漏、超限和撤销。
- 小流量上线:先只读、低额度和人工逐条批准,统计质量、p95、费用、重试与返工。
- 版本化复核:模型、processor、prompt、供应商或业务数据变化都跑回归;达停止线自动回滚。
本地模型的显存取决于语言模型、视觉编码器、视觉 token、图像数/帧数、上下文、精度、KV cache 和并发,不能用固定“多少 GB”概括。需要压缩时阅读站内的 量化精度与显存验收;如果是 CogVLM/CogVLM2 旧系统迁移,参考 CogVLM 版本与部署边界。
常见故障怎么定位
| 症状 | 先查 | 修复 | 停止线 |
|---|---|---|---|
| 完全忽略图片 | 消息 content、占位符、processor/chat template | 按当前官方模板构造输入,记录最终请求 | 无图与有图答案长期无差异 |
| 小字/数字错 | 原图、方向、缩放、视觉预算和 OCR | 分块、专用 OCR、证据框和人工复核 | 关键金额/身份字段无证据仍输出 |
| 多图混淆 | 图片顺序、编号、重复和上下文长度 | 逐图 ID、分轮处理、结果再聚合 | 无法稳定引用对应图片 |
| 坐标漂移 | 模型坐标系与原图/处理后尺寸 | 保存变换矩阵并可视化回投 | 动作或质检依赖错误位置 |
| 描述不存在对象 | prompt、语言先验、低清图和拒答设置 | 存在性询问、消融、证据区域和 unknown | 高风险场景仍肯定输出 |
| 升级后分数变化 | 模型、processor、模板、采样和裁判版本 | 逐项回滚、固定样本重跑、差异归因 | 无法复现旧版本且无迁移记录 |
| 成本/延迟失控 | 像素、帧、token、并发、重试和返工 | 任务路由、预筛、缓存、分辨率分级 | 单位有效任务成本超过预算 |
VLM 常见问题
VLM 能替代 OCR 和目标检测吗?
不一定。开放问答和跨图文推理适合 VLM;大批量固定字段、像素级位置和稳定低延迟通常仍应保留专用 OCR/检测,并让 VLM处理难例或解释。用真实任务比较总成本和错误类型。
图片分辨率越高,答案一定越好吗?
不一定。模型会缩放、切片或限制像素/token,高分辨率可能增加成本却仍丢失细节。记录处理后尺寸和视觉预算,针对小字/小目标逐级测试。
让模型展示思维链,能证明它看懂了吗?
不能。生成的推理文本可能合理却与图片无关。更强的证据是图像消融、证据裁剪、页码/框/时间码,以及能由人或程序独立复查的原始信息。
公开榜单第一就是最佳生产模型吗?
不是。榜单的任务、prompt、预处理、答案抽取和版本可能与你不同;还没有覆盖延迟、费用、隐私、许可证、故障与人工返工。榜单只用于候选筛选,最终用冻结业务测试集决定。
RAG 能消除视觉幻觉吗?
不能。RAG 可以补充文本知识,但如果模型读错图、框错区域或引用错页,外部知识不会自动修复视觉证据。应分别验证视觉解析、检索来源和最终答案。
怎样证明系统真的使用了图片?
对同一问题比较原图、无图、遮挡关键区域、只保留证据区和反事实图片;若答案不随证据变化,应怀疑语言先验或输入链路。把这些对照加入每次版本回归。
结论:VLM 的价值不是“像人一样看懂一切”,而是把视觉与语言任务放进一个可交互接口。可靠落地从输出合同开始:检索、OCR、定位、问答、视频和动作需要不同路线与指标;输入必须记录像素处理、视觉预算和模板;答案必须绑定页码、框、时间码或原文证据;视觉注入、敏感图片和工具权限要按不可信输入治理。只有冻结业务测试集、消融、结构校验、人工审批与版本回归共同通过,流畅回答才可能成为可用系统。
