Skip to content
阅读进度0%
Multimodal待复核

RAG 与智能体

ColPali 视觉 RAG、RT-2 具身智能与多模态 Agent

我的学习与文章检索 →
学习记录仅保存在当前浏览器,可随时取消标记。

多模态 RAG 与智能体 ​

多模态 Agent 不再局限于被动问答,而是通过检索增强、工具调用和物理交互,解决复杂的真实世界问题。


多模态 RAG 概述 ​

类型检索对象生成模型应用场景
文本 RAG文本向量LLM知识问答
多模态 RAG图像+文本MLLM文档理解、视觉问答
视觉 RAG文档页面图像VLMPDF 检索

文档预处理:多模态 RAG 的基础 ​

纯文本抽取可能丢失表格单元格关联、阅读顺序与图表视觉线索,具体损失取决于 PDF 与解析器;没有通用的“丢失 90%”比例。先把解析错、检索错和回答错分开测。

文档布局分析(DLA) ​

LayoutLM 家族演进 ​

模型创新点应用场景
LayoutLM2D位置编码(边界框坐标)表单理解
LayoutLMv2空间感知注意力文档分类
LayoutLMv3统一文本图像预训练文档问答
LayoutLLM结合LLM多任务通用文档智能

GNN(图神经网络)方案 ​

核心思想:将文档页面建模为图

图表示要素

  • 节点:文本块、图片、表格、标注
  • 边:空间关系(相邻、包含、层级)
  • 边界:图结构可表达空间关系,但倾斜/手写鲁棒性仍依赖检测、OCR 与训练覆盖

复杂表格识别 ​

核心挑战:维护行列关系,尤其是合并单元格(row_span/col_span)

关键能力

  • 明确识别合并单元格(row_span/col_span 属性)
  • 处理无边框表格(通过对齐线索推断)
  • 支持多行表头(层次化表头结构)

工具推荐

工具技术栈特点
img2tableOpenCV检测 + 多OCR后端灵活性强
CamelotPDF原生解析专注PDF
DeepDeSRT深度学习表格检测与结构识别研究历史研究,不作为当前接口建议

数学与化学公式识别 ​

Image-to-LaTeX 流程

主流模型

模型技术特点
pix2tex / LaTeX-OCR视觉编码与序列解码同一开源项目,不是两个独立方案
Mathpix商用方案产业级

输出格式依工具而定;pix2tex / LaTeX-OCR主要输出 LaTeX。数学公式识别也不能直接替代化学结构图识别。

图像与图表分析 ​

VLM 描述 + RAG 增强

下面是历史 BLIP-2 调用示意,依赖 Transformers、模型权重和 chart_image,未执行推理。描述可用于召回候选,但数值、轴单位和图例必须回到原图/表格验证;后接 RAG 不能把错误 caption 自动变成正确证据。

python
# 使用BLIP-2描述图表
from transformers import Blip2Processor, Blip2ForConditionalGeneration

processor = Blip2Processor.from_pretrained("Salesforce/blip2-opt-2.7b")
model = Blip2ForConditionalGeneration.from_pretrained("Salesforce/blip2-opt-2.7b")

question = "What does this chart show?"
inputs = processor(chart_image, question, return_tensors="pt")
out = model.generate(**inputs)
caption = processor.decode(out[0], skip_special_tokens=True)

# 使用RAG检索领域知识进一步精细化描述
context = rag_retriever.search(caption)
detailed_desc = llm.generate(f"{caption}\n\nContext: {context}")

逻辑阅读顺序检测 ​

问题:多栏布局、嵌入式图表打乱了自然阅读顺序

技术方案

方法原理适用场景
基于规则XY-Cut算法(递归切分)标准双栏论文
深度学习Graph Convolutional Network复杂布局
混合方法规则 + 启发式 + DL通用文档

XY-Cut 算法

  1. 横向投影找最大空白带(Y-Cut)
  2. 纵向投影分左右栏(X-Cut)
  3. 递归处理每个区域

ColPali:端到端视觉 RAG ​

文本 PDF 可直接抽取,扫描件通常需要 OCR;视觉布局丰富的文档可比较 ColPali的页面多向量检索。它解决检索表示问题,不单独完成 RAG 答案生成与证据核验。

架构设计 ​

Late Interaction 机制 ​

传统 Dense Retrieval

doc_emb = mean(patch_embeddings)  # 压缩为单向量
score = dot(query_emb, doc_emb)

ColPali MaxSim

python
def maxsim(query_tokens, doc_patches):
    # 仅有效 token;padding 必须先移除或用 mask 排除
    # query_tokens: [M, D]
    # doc_patches: [N, D]
    scores = query_tokens @ doc_patches.T  # [M, N]
    max_scores = scores.max(dim=1).values  # [M]
    return max_scores.sum()
text
S(q,d) = Σ_(i ∈ q) max_(j ∈ d) (q_i · d_j)

优势分析 ​

OCR + Dense

- 纯文本路径可能遗漏布局,需要额外图表表示
- OCR 错误传播,多阶段流水线

VS
ColPali

- 利用页面视觉线索做检索;精确证据区域还需定位与核验
- 页面级召回,仍可能召回错误或近似页面

应用场景 ​

多向量索引需要存储页面的多个 patch 向量,MaxSim 的成本高于单向量点积。大库可先召回候选再做精确重排,比较压缩/池化对小字检索的损失。每页至少保存文档 ID、页码、图像哈希、原始尺寸、权限与版本;答案引用时将证据映射回原页坐标。

场景传统方法问题ColPali 优势
表格检索OCR 丢失结构直接编码表格图像
图表问答需把图表转成可检索表示页面视觉内容可参与检索
多栏文档栏序混乱视觉布局保留
手写文档OCR 错误率高VLM 直接理解

从页面检索到答案:保留两套证据粒度 ​

2026-10-08 复核 ColPali 论文:其核心是页面图像的多向量检索,ViDoRe 主要测页级相关性。命中一页不能证明模型已读对该页的每个单元格,也不能证明联合多页结论完整。

实际索引同时保留 document_id + revision + page_id,解析出的文字/表格与原页建立坐标映射。文字检索与视觉检索先映射为同一页 ID,再去重与融合;不能把两种相似度直接相加。答案阶段按证据需求传原页、局部裁剪或表格,引用最终绑定到可复查的原文位置。

最小验收包含四组:仅靠文字可答、必须看图、跨页联合、文档无答案。分别报告页 Recall@K、完整证据覆盖、数值/单位正确率和引用支持;对同一页替换图表或遮挡关键区域,检查答案是否随证据改变。这个流程是基于论文能力边界的工程建议,本文未运行页面索引或视觉模型。

RT-2:具身智能 ​

RT-2(Robotic Transformer 2)将多模态大模型转化为 VLA(Vision-Language-Action) 模型。

架构设计 ​

动作 Token 空间 ​

下例数值仅示意动作表示,不是可发给机器人的控制命令。量化范围、单位、坐标系和控制频率必须与机器人训练接口一致;RT-2的实验能力不能直接移植到不同硬件。

核心思想:将连续动作离散化为语言 Token

python
# 机器人动作空间
action = {
    'x': 0.15,      # 末端位置 x
    'y': -0.02,     # 末端位置 y
    'z': 0.08,      # 末端位置 z
    'roll': 0.0,    # 姿态
    'pitch': 0.1,
    'yaw': 0.0,
    'gripper': 1,   # 夹爪开合
    'terminate': 0  # 是否结束
}

# 离散化为 Token
# 每个维度量化为 256 个 bin
action_tokens = [128, 120, 140, 128, 135, 128, 255, 0]
# 作为"外语"输入/输出 LLM

Co-Fine-Tuning ​

涌现能力 ​

论文展示了部分语义泛化案例,并不保证任意未见动作可执行

指令所需能力来源
"把灭绝的动物捡起来"恐龙=灭绝动物VLM 世界知识
"把泰勒·斯威夫特的专辑放到盒子里"识别专辑封面VLM 视觉理解
"用可乐把这杯水填满"可乐=饮料VLM 常识推理

多模态 Agent 工作流 ​

Agentic Patterns ​

多模态工具调用 ​

示例:图片中的产品评价查询

用户:图中这款咖啡机的评价如何?
[上传咖啡机图片]

Agent 思考:需要先识别咖啡机型号,然后搜索评价

步骤1 - OCR 工具调用
  输入:图片
  输出:型号 "DeLonghi EC685"

步骤2 - 搜索工具调用
  输入:{"query": "DeLonghi EC685 评价"}
  输出:[搜索结果...]

步骤3 - 总结
  输出:这款德龙 EC685 咖啡机总体评价良好,
         优点是操作简单、出品稳定...

工具类型 ​

工具类型示例用途
视觉感知OCR、目标检测理解图像内容
信息检索搜索、RAG获取外部知识
执行操作代码执行、API完成具体任务
生成工具图像生成、TTS创建内容

规划与反思 ​

多步规划 ​

自我反思 ​

python
def reflect(action_history, current_result, goal):
    prompt = f"""
    目标:{goal}
    已执行的动作:{action_history}
    当前结果:{current_result}
    
    请分析:
    1. 当前进度是否符合预期?
    2. 是否需要调整策略?
    3. 下一步应该做什么?
    """
    return llm(prompt)

多模态 Agent 框架 ​

主流框架对比 ​

下表保留历史方案供理解“规划—专家模型—结果整合”的分工,不是当前支持矩阵。落地前核查具体版本是否支持媒体传递、工具 schema、状态恢复与权限审计。

框架特点多模态支持
LangChain生态丰富通过扩展支持
AutoGPT自主规划有限
JARVIS/HuggingGPT模型调度原生多模态
TaskMatrix微软方案视觉+API

HuggingGPT 架构 ​


安全与对齐 ​

多模态 Agent 风险 ​

风险类型描述缓解措施
越狱攻击图像中隐藏恶意指令将 OCR/图片文字视为不可信数据,工具权限独立校验
工具滥用调用危险 API权限控制
信息泄露暴露敏感数据输出审查
失控行为机器人意外动作安全边界

最佳实践 ​

安全边界

  1. 最小权限原则:工具只给必要权限
  2. 人在回路:关键操作需人工确认
  3. 沙盒执行:代码在隔离环境运行
  4. 输出过滤:检查生成内容合规性

从检索到执行的验收链 ​

以一份带图表的 PDF 为练习:标注问题、正确页码、证据区域、答案和“文档无答案”样本。建立文本解析检索、页面视觉检索与混合方案三条基线。

阶段指标/证据失败时先查
解析/索引页面完整率、坐标回映、表格结构准确率缩放、旋转、OCR 与页面版本
检索Recall@K、nDCG、权限过滤后召回查询表示、长尾概念、索引压缩
回答引用正确页/区域、数字与单位准确率图像预算、证据可读性、引用绑定
工具执行成功率、重试/取消、重复副作用参数校验、幂等键、事务状态

只把 caption 送给生成器会丢失原图细节,精确数字任务应同时提供原图裁剪或解析表格。Agent 识别产品型号不确定时应保留候选,不能立刻据此执行购买/删除等动作。超过工具次数或耗时预算时输出已验证结果与未完成部分;“自我反思”不是无限重试机制。

参考资源 ​

资源说明
ColPali视觉 RAG
RT-2具身智能
PaLM-E具身语言模型
HuggingGPT模型调度
TaskMatrix视觉 Agent

基于 VitePress 构建