news 2026/8/15 13:56:16

走进 VLM(六):VLM 如何进行视觉推理?从图像理解到 Chain-of-Thought

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
走进 VLM(六):VLM 如何进行视觉推理?从图像理解到 Chain-of-Thought

专栏:走进 VLM——从视觉语言模型到多模态 Agent 的技术实战

本文是专栏第 6 篇,共 20 篇。

关键词:VLM、Vision Reasoning、VQA、Multimodal Attention、Chain-of-Thought、LLaVA、Qwen-VL、多模态推理


一、为什么 VLM 不只是一个“图片分类器”?

在前面的文章中,我们已经了解:

现代 VLM 的基本结构:

Image

Vision Encoder

Visual Token

Projector

LLM

Answer

但是这里产生一个问题:

传统计算机视觉模型也能理解图片。

例如:

输入:

一张猫的图片

CNN:

Output:

cat

那么:

VLM 和 CNN 分类模型有什么区别?

核心区别:

分类模型只知道“图片是什么”,而 VLM 能够结合语言知识进行推理。

例如:

图片:

一个人在厨房拿着刀切苹果。

传统 CV:

person

knife

apple

kitchen

VLM:

可以回答:

问题:

这个人在做什么?

答案:

这个人正在厨房准备切苹果。

进一步:

问题:

如果这个人继续操作,下一步可能发生什么?

答案:

他可能会把苹果切成小块,用于烹饪或者食用。

这里已经不是简单视觉识别。

而是:

视觉理解

+

世界知识

+

逻辑推理

这就是:

Vision Reasoning。


二、Image Understanding 和 Image Reasoning 的区别

理解 VLM,必须区分两个概念。

1. Image Understanding(图像理解)

解决:

图片中有什么?

例如:

输入:

图片:

狗在草地奔跑

模型输出:

Dog

Grass

Outdoor

这是视觉感知。

对应:

Vision Encoder。


2. Image Reasoning(视觉推理)

解决:

图片背后的含义是什么?

例如:

图片:

一个人穿着雨衣,拿着伞。

问题:

为什么这个人拿伞?

模型:

因为可能正在下雨。

这里需要:

  • 视觉信息
  • 常识知识
  • 语言推理

对应:

LLM。


所以:

一个完整 VLM:

实际上分两个阶段:

阶段1:

看见

Vision Encoder

阶段2:

思考

LLM Reasoning


三、VLM 推理的完整链路

假设用户输入:

图片:

一个小孩正在吹生日蜡烛

问题:

为什么桌子上有蜡烛?

VLM 内部过程:

Step 1:视觉编码

图片进入:

Vision Encoder。

例如:

CLIP ViT:

输出:

Visual Feature

[

v1,

v2,

...

v196

]

这些 Token 表示:

人物

桌子

蛋糕

蜡烛

环境


Step 2:视觉 Token 映射

Projector:

转换:

Visual Feature

Visual Token

例如:

196 × 1024

196 × 4096

变成:

LLM 可以理解的表示。


Step 3:文本输入

问题:

为什么桌子上有蜡烛?

Tokenizer:

转换:

Token1

Token2

Token3


Step 4:多模态融合

最终输入:

[

Visual Token1,

Visual Token2,

...

Text Token1,

Text Token2

]

进入 Transformer。


Step 5:LLM 推理

LLM 根据:

视觉:

蛋糕

蜡烛

小孩

结合已有知识:

生日庆祝

吹蜡烛

许愿

生成:

因为这可能是在庆祝生日。


四、LLM 为什么能够理解视觉 Token?

这是 VLM 最神奇的地方。

很多人认为:

LLM 只是处理文字。

实际上:

LLM 处理的是:

Embedding 空间中的语义关系。

文本:

生日

对应:

一个向量。

图片:

生日蛋糕

经过 Vision Encoder:

也变成:

一个向量。

如果训练过程中:

模型不断看到:

Image:

生日蛋糕

Text:

Birthday cake

那么:

视觉表示和语言表示会逐渐靠近。

最终:

模型学会:

图片中的蛋糕

生日语义

这就是:

多模态对齐。


五、Multimodal Attention:VLM 如何关注图片区域?

Transformer 的核心:

Attention。

普通 LLM:

Query

Key / Value

Attention

例如:

生成:

“苹果”

模型关注:

前面的:

“红色”

“水果”


VLM:

Attention 同时处理:

视觉 Token:

<V1>

<V2>

<V3>

文本 Token:

苹果

是什么

模型需要学习:

问题:

是什么?

应该关注:

图片中的:

苹果区域


六、手写一个简单 Cross Attention

下面模拟:

文本 Query 关注视觉 Feature。

公式:

Attention(Q,K,V)=softmax(d​QKT​)V

代码:

import torch

import torch.nn as nn

class CrossAttention(nn.Module):

def __init__(

self,

dim

):

super().__init__()

self.q_proj = nn.Linear(

dim,

dim

)

self.k_proj = nn.Linear(

dim,

dim

)

self.v_proj = nn.Linear(

dim,

dim

)

def forward(

self,

text,

image

):

Q = self.q_proj(

text

)

K = self.k_proj(

image

)

V = self.v_proj(

image

)

attention = torch.matmul(

Q,

K.transpose(

-2,

-1

)

)

attention = attention / (

Q.shape[-1] ** 0.5

)

weight = torch.softmax(

attention,

dim=-1

)

output = torch.matmul(

weight,

V

)

return output

这里模拟:

Text Token

查询

寻找相关 Visual Token

例如:

问题:

桌子上有什么?

Query:

会自动关注:

桌子区域

蛋糕区域


七、VLM 中的 Chain-of-Thought(视觉思维链)

传统 LLM:

已经证明:

让模型展示推理过程,可以提高复杂任务能力。

例如:

问题:

小明有3个苹果,又买了2个,有几个?

模型:

3+2=5

答案5个

这就是:

Chain-of-Thought。


VLM 同样存在:

Visual Chain-of-Thought。

例如:

图片:

停车场。

问题:

这里是否安全停车?

普通回答:

可以停车。

推理:

1. 图片中存在停车线

2. 车辆停放在区域内

3. 没有明显禁止停车标志

所以可能允许停车。

这就是:

视觉推理链。


八、为什么大模型能回答开放式图片问题?

核心原因:

VLM 不只是学习图片。

它融合了:

1. 视觉知识

来自:

Vision Encoder。

例如:

知道:

汽车


2. 语言知识

来自:

LLM。

例如:

知道:

生日

天气

交通规则


3. 推理能力

来自:

Transformer。

例如:

图片:

雨伞。

推理:

雨伞

可能下雨

天气不好


所以:

VLM:

不是:

Image → Label

而是:

Image

Semantic Representation

Reasoning

Language


九、VQA:视觉问答任务

VQA:

Visual Question Answering。

任务:

输入:

Image

+

Question

输出:

Answer

例如:

图片:

狗在公园。

问题:

狗在哪里?

答案:

公园


VQA 是 VLM 最经典任务。

流程:

Image

Vision Encoder

Question

Tokenizer

Fusion

LLM

Answer


十、使用 LLaVA 实现图片问答 Demo

安装:

pip install transformers accelerate pillow

加载模型:

import torch

from PIL import Image

from transformers import (

AutoProcessor,

LlavaForConditionalGeneration

)

model_id = (

"llava-hf/"

"llava-1.5-7b-hf"

)

processor = AutoProcessor.from_pretrained(

model_id

)

model = LlavaForConditionalGeneration.from_pretrained(

model_id,

torch_dtype=torch.float16,

device_map="auto"

)

加载图片:

image = Image.open(

"test.jpg"

)

构造问题:

prompt = """

USER:

<image>

请描述这张图片。

ASS:

"""

处理输入:

inputs = processor(

text=prompt,

images=image,

return_tensors="pt"

).to(

"cuda"

)

生成:

output = model.generate(

**inputs,

max_new_tokens=100

)

answer = processor.decode(

output[0],

skip_special_tokens=True

)

print(answer)

输出类似:

图片中有一个人在厨房,

桌子上有食物,

可能正在准备饭菜。

这就是完整 VQA 流程。


十一、Prompt Engineering 在 VLM 中的重要性

同一个模型:

不同 Prompt:

效果可能完全不同。

例如:

简单:

描述图片

输出:

图片里有一个人。

优化:

请详细分析图片:

1. 场景

2. 物体

3. 人物行为

4. 可能发生的事件

输出:

更加丰富。


常见 VLM Prompt 技巧:

1. 指定任务

例如:

请作为图像分析专家回答。


2. 要求步骤分析

请先观察图片,

然后进行推理。


3. 指定输出格式

输出 JSON:

{

object:"",

action:""

}


十二、VLM 推理能力的限制

虽然 VLM 很强:

但是仍然存在问题。

1. 幻觉(Hallucination)

模型可能:

看到不存在的东西。

例如:

图片:

空桌子。

模型:

桌子上有一本书。

原因:

LLM 根据概率生成。


2. 精细视觉不足

例如:

图片:

复杂文档。

模型可能:

无法准确读取。

需要:

OCR。


3. 空间理解不足

例如:

问题:

左边第二个人拿什么?

模型可能回答错误。


十三、VLM 下一步:多模态 Agent

VLM 的最终目标:

不是回答问题。

而是:

理解世界。

未来:

Camera

VLM

Reasoning

Agent

Action

例如:

机器人:

看到:

桌子上的杯子。

理解:

杯子

需要拿起来

执行动作


十四、总结

这一篇我们理解了:

1. VLM 为什么能够推理?

因为:

Vision Encoder

+

LLM

+

Attention

共同作用。


2. VLM 推理流程:

Image

Visual Token

Multimodal Attention

LLM Reasoning

Answer


3. VLM 和传统 CV 的区别:

传统:

图片

类别

VLM:

图片

理解

推理

语言回答


4. VLM 是 Agent 的感知基础

未来 AI:

不会只读文字。

它需要:

看见世界。

而 VLM:

就是 AI 的视觉系统。


下一篇:

《走进 VLM(七):LLaVA 深度拆解——第一个开源视觉语言助手是如何训练出来的?》

下一篇进入经典模型:

  • LLaVA 架构源码分析
  • Vision Encoder 如何连接 LLaMA
  • 视觉指令微调(Visual Instruction Tuning)
  • 多模态训练数据构造
  • 手写一个简化版 LLaVA
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/15 13:56:04

mcporter — 安装部署及使用完全指南(三)

七、工具调用语法 mcporter 支持多种参数风格&#xff0c;适应不同场景&#xff1a; 7.1 推断调用命令&#xff08;最简洁&#xff09; # 点号分隔自动触发 call 命令 mcporter <server>.<tool> keyvalue key:value# 带空格的值用引号包裹 mcporter <server>…

作者头像 李华
网站建设 2026/8/15 13:55:29

deepseek生成的word怎么下载 AI导出鸭全平台方案技术深度测评

deepseek生成的word怎么下载 AI导出鸭全平台方案技术深度测评 一、项目面向的核心痛点与市场需求 1.1 行业痛点数据化呈现 根据《DeepSeek与AIGC应用》技术报告披露&#xff0c;超过90%的技术从业者在将生成式AI输出内容转换为标准化办公文档时遭遇格式损失问题。传统直接复制粘…

作者头像 李华
网站建设 2026/8/15 13:54:32

图片盲水印入门:把版权标记藏进像素缝隙,一文讲透3个玩法

图片盲水印入门&#xff1a;把版权标记藏进像素缝隙&#xff0c;一文讲透3个玩法 【免费下载链接】BlindWaterMark 盲水印 by python 项目地址: https://gitcode.com/gh_mirrors/bli/BlindWaterMark 你有没有想过&#xff0c;给一张图片加上"看不见的图片水印"…

作者头像 李华
网站建设 2026/8/15 13:53:33

硬件工程师入门必看:AC-DC 模块电源全面解读(钡特电源整理)

引言&#xff1a;一个因“电源选型”而失败的样机案例 去年&#xff0c;某工业设备研发团队在开发一款智能电表集中器时&#xff0c;遭遇了严重的设计事故。样机在连续工作48小时后&#xff0c;系统无故重启&#xff0c;随后主控板上的电解电容爆裂&#xff0c;整机报废。工程师…

作者头像 李华
网站建设 2026/8/15 13:52:52

线上投票制作工具实测适配指南

日常使用微信开展投票活动&#xff0c;大家都希望工具功能全面、操作简单又高效。365评选线上投票工具就十分便捷&#xff0c;依托微信生态就能够快速搭建投票活动&#xff0c;上手轻松&#xff0c;深受广大用户青睐。它在微信端的数据统计、后台管理等方面表现出色&#xff0c…

作者头像 李华
网站建设 2026/8/15 13:51:33

游戏扫码登录工具与直播抢码神器:MHY_Scanner 完整使用指南

游戏扫码登录工具与直播抢码神器&#xff1a;MHY_Scanner 完整使用指南 【免费下载链接】MHY_Scanner MHY扫码登录器&#xff0c;支持从直播流抢码。 项目地址: https://gitcode.com/gh_mirrors/mh/MHY_Scanner 直播间的屏幕上&#xff0c;一张登录二维码往往只停留几秒…

作者头像 李华