多模态大模型架构_视觉语言模型VLM原理

文章目录

    • [1. 先把问题讲清楚:文本模型为什么不能直接看图](#1. 先把问题讲清楚:文本模型为什么不能直接看图)
    • [2. VLM 三个核心模块怎么配合](#2. VLM 三个核心模块怎么配合)
    • [3. 图片 token 成本怎么估算](#3. 图片 token 成本怎么估算)
    • [4. CLIP 对齐的直觉](#4. CLIP 对齐的直觉)
    • [5. VLM 训练阶段通常不止一步](#5. VLM 训练阶段通常不止一步)
    • [6. OCR、表格、图表、UI 为什么难](#6. OCR、表格、图表、UI 为什么难)
    • [7. 输出要带证据:页码、区域、原文](#7. 输出要带证据:页码、区域、原文)
    • [8. 多图和长文档评估](#8. 多图和长文档评估)
    • [9. VLM 与 OCR/RAG/规则如何配合](#9. VLM 与 OCR/RAG/规则如何配合)
    • [10. 常见误区](#10. 常见误区)
    • [11. 小结](#11. 小结)
    • 大模型视角
    • 下一篇

摘要:VLM(Vision-Language Model,视觉语言模型)让大模型同时处理图片和文字。它不是简单"OCR 后交给文本模型",而是通过视觉编码器、投影模块和语言模型,把图像特征接入生成过程。本文会从一张图片如何变成视觉 token 讲起,解释 Vision Encoder、Projector、CLIP 对齐、多模态指令微调、图像 token 成本、OCR/表格/图表/UI 难点、证据输出和评估闭环,并给出可运行的成本估算和结构化校验代码。

  • 前置知识:专栏一 Transformer、 Tokenization;专栏二 Gemini 多模态
  • 阅读时间:60-75 分钟
  • 代码环境:Python 3.10+,示例只依赖标准库
  • 读完目标:能解释 VLM 的典型结构,能理解图片 token 成本和训练阶段,能为 OCR、图表、截图、文档问答任务设计评估集

1. 先把问题讲清楚:文本模型为什么不能直接看图

文本大模型输入的是 token id,例如"合同""金额""JSON"这些文本片段会被 tokenizer 转成整数。图片不是 token 序列,而是像素矩阵,通常包含宽、高和 RGB 通道。

所以 VLM 要解决的第一个问题是:怎么把像素变成语言模型能理解的向量。

典型流程是:

text 复制代码
image -> vision encoder -> visual embeddings -> projector -> visual tokens + text tokens -> LLM -> answer

其中:

模块 作用 大白话理解
Vision Encoder 提取图像特征 把像素变成向量表示
Projector/Adapter 对齐维度和语义空间 把视觉向量翻译成 LLM 能读的表示
LLM 结合图文生成答案 像处理文本一样处理视觉 token 和文本 token

这和"先 OCR 再问 LLM"不同。OCR 只提供文字;VLM 还有机会利用布局、位置、颜色、图形、控件状态和视觉关系。


2. VLM 三个核心模块怎么配合

可以用公式写成:

V = VisionEncoder ( I ) V = \text{VisionEncoder}(I) V=VisionEncoder(I)

Z = Projector ( V ) Z = \text{Projector}(V) Z=Projector(V)

Y = LLM ( Z , X ) Y = \text{LLM}(Z, X) Y=LLM(Z,X)

逐项解释:

  • I I I:输入图片;
  • V V V:视觉编码器提取出的图像特征;
  • Z Z Z:投影后、能接入语言模型的视觉 token;
  • X X X:用户问题等文本 token;
  • Y Y Y:模型生成的答案。

大白话:先把图片变成视觉特征,再把视觉特征映射到语言模型的表示空间,最后让语言模型在"图像信息 + 问题文本"的条件下回答。

这个结构解释了为什么 VLM 训练通常不止一步。视觉编码器、投影层、语言模型之间要对齐,否则 LLM 看到的视觉 token 就像陌生语言。


3. 图片 token 成本怎么估算

很多 VLM 会把图片切成 patch。patch 越小,图片越大,视觉 token 越多。视觉 token 会占用上下文窗口、计算和费用。

用代码估算 patch 数:

python 复制代码
# Python 3.10+
import math


def patch_count(width, height, patch_size):
    return math.ceil(width / patch_size) * math.ceil(height / patch_size)

for width, height in [(224, 224), (1024, 768), (1920, 1080), (2480, 3508)]:
    print((width, height), "patch16=", patch_count(width, height, 16))

真实模型可能会缩放、裁剪、动态分辨率、多尺度编码或压缩视觉 token。但这个估算能说明:高分辨率图片不是免费输入。

业务系统要问:

text 复制代码
1. 是否需要整张图,还是只需要关键区域?
2. 小字 OCR 是否要求高分辨率?
3. 多图输入是否会挤占文本上下文?
4. PDF 是否逐页处理更合适?
5. 图片和 OCR 文本是否都要传给模型?

4. CLIP 对齐的直觉

CLIP 类方法让匹配的图片和文本在向量空间里更接近,不匹配的更远。

直觉流程:

text 复制代码
图片编码器:image -> image embedding
文本编码器:caption -> text embedding
训练目标:匹配图文相似度高,不匹配图文相似度低

可以用简单余弦相似度理解"接近":

python 复制代码
# Python 3.10+
import math


def cosine(a, b):
    dot = sum(x * y for x, y in zip(a, b))
    na = math.sqrt(sum(x * x for x in a))
    nb = math.sqrt(sum(y * y for y in b))
    return dot / (na * nb)

image_embed = [0.8, 0.1, 0.2]
caption_good = [0.7, 0.2, 0.2]
caption_bad = [-0.1, 0.9, 0.1]
print("good:", round(cosine(image_embed, caption_good), 3))
print("bad:", round(cosine(image_embed, caption_bad), 3))

CLIP 对齐能帮助模型建立图文语义联系,但它不等于完整 VLM。完整图文问答还需要把视觉表示接入生成模型,并通过指令微调学会回答用户问题。


5. VLM 训练阶段通常不止一步

一个 VLM 常见训练路线可以粗略分为:

每个阶段解决的问题不同:

阶段 解决什么 如果缺失会怎样
图文对齐 图片和文字语义能对应 描述不准、语义错位
Projector 训练 视觉 token 能被 LLM 读懂 LLM 不会用视觉信息
指令微调 按问题回答,而不是只描述图片 问答格式不稳定
任务增强 OCR/表格/UI/图表专项能力 业务任务失败
安全对齐 高风险视觉内容边界 隐私和误导风险

能描述一张猫图,不代表能做票据抽取;能 OCR,不代表能理解图表;能看单图,不代表能做多图推理。


6. OCR、表格、图表、UI 为什么难

VLM 业务任务难点通常不在"大物体识别",而在细节和结构。

场景 难点 失败表现
OCR 小字、模糊、旋转、多语言、遮挡 漏字、错字、编造文字
表格 行列结构、合并单元格、跨页 字段串行、行列错位
图表 坐标轴、单位、图例、趋势 读错数值、忽略单位
UI 截图 控件位置、状态、错误提示 把禁用按钮当可点
票据合同 字段抽取、印章、编号、条款引用 抽错字段、无法给证据
多图 图像编号、跨图对比 把 A 图内容说成 B 图

这也是为什么业务 VLM 需要证据输出,而不是只要自然语言答案。


7. 输出要带证据:页码、区域、原文

业务 VLM 最好输出证据位置,便于人工复核和系统审计。

示例:

json 复制代码
{
  "answer": "第二项费用可能不合规,因为发票日期晚于报销周期。",
  "evidence": [
    {"page": 1, "region": "费用明细第2行", "text": "发票日期:2026-03-18"},
    {"page": 1, "region": "报销周期", "text": "2026-03-01 至 2026-03-10"}
  ],
  "confidence": "medium"
}

写个结构校验器:

python 复制代码
# Python 3.10+
import json


def validate_vlm_output(text):
    try:
        obj = json.loads(text)
    except json.JSONDecodeError:
        return ["invalid json"]

    errors = []
    for key in ["answer", "evidence", "confidence"]:
        if key not in obj:
            errors.append(f"missing {key}")
    if "evidence" in obj and not isinstance(obj["evidence"], list):
        errors.append("evidence must be list")
    return errors

sample = '{"answer":"...","evidence":[{"page":1,"region":"A1","text":"..."}],"confidence":"medium"}'
print(validate_vlm_output(sample))

结构化输出不能保证答案正确,但能让评估和复核变得可执行。


8. 多图和长文档评估

多图和长文档比单图更难,因为模型要维持编号、页码和跨页关系。

评估集应包含:

text 复制代码
1. 单图描述:基础视觉理解;
2. 多图顺序:不要混淆图1和图2;
3. 截图定位:按钮、错误提示、状态;
4. 票据字段:金额、日期、税号、发票号;
5. 表格结构:行列、合并单元格、跨页;
6. 图表趋势:坐标轴、单位、极值、异常;
7. 文档页码:答案来自哪一页;
8. 无证据拒答:图里没有就不能编;
9. 看不清承认:模糊、遮挡、低分辨率时不硬答。

一个多图样本可以这样记录:

json 复制代码
{
  "id": "multi_image_001",
  "images": ["page1.png", "page2.png"],
  "question": "第二张图中的审批状态是什么?",
  "expected": "待财务复核",
  "must_reference_image": 2
}

如果模型答对文字但引用错图片,也应算失败。业务系统关心可追溯性。


9. VLM 与 OCR/RAG/规则如何配合

很多项目不是"VLM 单独解决一切",而是组合系统:

text 复制代码
图片/PDF -> OCR/版面分析 -> 文档分块 -> 向量/关键词检索 -> VLM/LLM 生成 -> 证据校验 -> 人工复核

什么时候用 OCR + LLM 更合适?

text 复制代码
1. 任务主要依赖文字;
2. OCR 质量高;
3. 需要可搜索和可引用;
4. 成本敏感;
5. 版式关系不复杂。

什么时候更需要 VLM?

text 复制代码
1. 需要位置、布局、图形或视觉状态;
2. OCR 丢失关键信息;
3. 需要理解图表或截图;
4. 多图对比依赖视觉关系;
5. 需要从图像区域给证据。

两者经常配合,而不是互相替代。


10. 常见误区

误区一:VLM 看图等于人看图。 模型可能看对大物体,却漏掉小字、位置关系和单位。

误区二:OCR 做好了就不需要 VLM。 OCR 提供文字,VLM 还能利用版式、空间关系和视觉证据;二者常常配合。

误区三:图片越清晰越好,不管成本。 高分辨率可能带来更多视觉 token 和延迟,要按任务裁剪。

误区四:视觉答案不需要证据。 业务场景必须可复核,证据区域、页码和原文很重要。

误区五:能描述图片就能做业务抽取。 描述、OCR、表格、图表、UI 和文档问答是不同能力。


11. 小结

VLM 的核心是把视觉信息接入语言模型:视觉编码器提取图像特征,projector 对齐到语言模型空间,LLM 结合视觉 token 和文本 token 生成回答。真正难点在 OCR、表格、图表、UI 截图、多图、长文档和证据定位。

做多模态项目时,必须评估视觉 token 成本、输入质量、证据可追溯、无证据拒答和人工复核流程。不要用几个图片描述 demo 判断业务可用性。

大模型视角

从大模型应用角度看,VLM 把语言模型从文本世界连接到视觉世界。但连接越多,错误类型也越多:看错、读错、定位错、引用错。系统必须有证据、评估和人工复核机制。

下一篇

下一篇会讲小语言模型 SLM。它关注的不是把模型做得更大,而是在端侧、本地和低成本场景中做到足够可用。

相关推荐
cspttty1 小时前
2027校招AI产品经理准备指南:数据科学专业如何从模型走向产品
人工智能·产品经理
MiYi124061 小时前
2026深度体验:智能体办公工具助力企业协同效率提升实测
大数据·人工智能
198******126341 小时前
2026年企业AI办公工具选型指南:如何匹配业务场景完成评估
大数据·运维·人工智能
是翎1 小时前
Cube Forms:让 AI agents 直接填表,人也能随时接手
人工智能
I Am a robert girl1 小时前
从路由信号到选择性复核:MoE 视觉语言模型的视觉重定位
人工智能·语言模型·自然语言处理·视觉语言模型·混合专家模型·路由信号·目标缺失接地
W***25921 小时前
2026年企业级Work Agent品类科普指南
人工智能
小黄人软件1 小时前
【智答宝】RAG本地问答助手,RAG 的技术原理
人工智能
CRMEB系统商城1 小时前
CRMEB开源商城系统(PHP)v8.0,打造全新AI二开商城底座!
开发语言·人工智能·小程序·开源·php
玫瑰互动GEO1 小时前
百度AI问答81.7%信源百度系:技术品牌GEO优化 3步自查工程化解读
人工智能·百度·ai·dubbo·ai搜索·geo优化