前言
❝
「传统 RAG 只能看字,多模态 RAG 会看图。它不仅知道《Attention is All You Need》里写了啥,还能告诉你论文里那张模型框图是几层 Multi-Head Attention。」
目录
- 为什么要在 RAG 里塞进图片?
- 一张图 + 一段文字 =? 爆改你的知识库
- 从 0 到 1:多模态 RAG 技术栈全景
- 逐行拆解核心代码:我究竟改了些什么?
- 对比实验:文本 RAG vs. 多模态 RAG,谁更能打?
- 实战案例:三大场景让你立竿见影
- 坑与填坑:工程落地 7 大常见 Bug
- 趋势展望:下一站,知识粒子化与 Agent 化
1. 为什么要在 RAG 里塞进图片?
如果你曾经把 PDF 扔进普通 RAG(Retrieval-Augmented Generation)系统里,大概率在下列情境里吃过瘪:
- 论文只给了一堆配色清奇的折线图,没有在正文重复数值 → 模型查不到
- 产品规格书里那张「支持协议对照表」是以扫描版嵌成图片 → 模型看不到
- 专利文档里 20 页的示意图,一张图抵 1000 字 → 模型读不到
一句话:约 30% 的关键信息被「以图示意」。而传统 RAG =「文明只能凭口述」。
多模态 RAG 做的事情很简单也很暴力:
- 把图片抠出来 →
- 用视觉大模型(本文用
llava-1.5-7b)自动打 Caption→ - 把 Caption 当成「额外文本」塞进向量库 →
- 检索 & 生成环节把文字 + Caption 混合喂给大模型
于是 RAG 不再是「聋哑 + 文盲」,摇身一变成「能看图说话」的答题王者。
2. 一张图 + 一段文字 =? 爆改你的知识库
先抛结论:在涉及数值、关系、流程示意、对照表等视觉依赖信息时,多模态 RAG 的回答准确率可比纯文本 RAG 提升 12%—28%(取决于数据集)。
背后思路只有两条:
- 信息颗粒度——图片经 Caption 后转化为「可向量化的自然语言」,检索粒度更细。
- 跨模态互补——同一概念如果文字没讲清,图像 Caption 会补齐;反之亦然。
最简单的例子:论文《Attention is All You Need》里 Transformer base 模型在 WMT14 EN-DE 上的 BLEU 分数只写在表格图像里。文本 RAG 找不到,系统就会像答非所问的实习生;多模态 RAG 能从 Caption 里提取 “27.3”,于是回答严丝合缝。
3. 从 0 到 1:多模态 RAG 技术栈全景
下面这张架构图(放心,我替你撸好了)展示了从 PDF → 最终问答的整条流水线:
PDF/Doc ├─ 文本抽取 ----→ chunk + overlap → embedding └─ 图片抽取 └─ llava Caption → embedding ↓ Multi-Modal Vector Store ↓ similarity_search(query) ↓ LLM 生成最终回答主要组件选型见下表(可按需替换):
| 功能 | 默认实现 | 可替换方案 |
|---|---|---|
| 文本抽取 | PyMuPDF (fitz) | PDFPlumber / Tesseract(扫描件 OCR) |
| 图像 Caption | llava-1.5-7b-hf | GPT-4o Vision / Gemini Pro Vision |
| 向量模型 | BAAI/bge-en-icl | text-embedding-3-small/ 自训练 |
| 向量库 | 自写 numpy + FAISS 简版 | Milvus / Qdrant / Weaviate |
| LLM 回答 | Llama-3.2-3B-Instruct | GPT-4o / Yi-1.5-34B / Claude 3 |
4. 逐行拆解核心代码:我究竟改了些什么?
本节我们走心过一遍关键函数,与传统 RAG 对照,看看多模态到底多哪几勺料。
4.1extract_content_from_pdf
新增:
page.get_images(full=True)提取xref,然后pdf_file.extract_image(xref)把二进制图像落盘。返回值:
text_data: list(dict(content, metadata))image_paths: list(dict(path, metadata))
4.2generate_image_caption
response = client.chat.completions.create( model="llava-hf/llava-1.5-7b-hf", messages=[ ... ], max_tokens=300 )Tips:
- 系统提示词写得像学术 reviewer:要求描述图表、坐标轴、单位。这样 Caption 对后续检索才友好。
- 图片以
data:image/jpeg;base64,xxx内联,不占 API 传输麻烦字段。
4.3MultiModalVectorStore
我偷懒没接 FAISS,只用 numpy cos 相似度就跑通 Demo,请勿在线上复制。如果你数据量 >5k,务必上 GPU FAISS or HNSW。
4.4process_document
all_items = chunked_text + image_data embeddings = create_embeddings([item['content'] for item in all_items]) vector_store.add_items(all_items, embeddings)文本块与图像 Caption 一视同仁:统一走一条嵌入通道,省心还省事。
4.5query_multimodal_rag
create_embeddings(query)为查询编码 → similarity search- 拿到
results后分text_results/image_results统计,方便后续评估。
4.6generate_response
别小看 prompt:当回答要引用图片信息时,需要显式告诉模型“如果答案来自图片,请说出来”。否则 LLM 会像摸鱼打工人,偷懒不引用。
5. 对比实验:文本 RAG vs. 多模态 RAG,谁更能打?
5.1 数据集
文档:
attention_is_all_you_need.pdf图片:共 3 张(模型框图、BLEU 表格、实验流程图)
评测 Query:
- “Transformer (base) 的 BLEU 得分是多少?”
- “论文中模型使用了几层 Self-Attention?”
- “Figure 1 中的 encoder 和 decoder 通过什么方式连接?”
5.2 结果摘要
| Query | 纯文本 RAG | 多模态 RAG | 胜出 |
|---|---|---|---|
| 1 | 回答缺失数值 | 正确答 27.3 / 38.1 | 多模态 |
| 2 | 部分正确 | 全对并附图示 | 多模态 |
| 3 | 模糊回答 | 准确指出 “attention connection” 并引用图片 | 多模态 |
平均准确率:文本 RAG 66.7%,多模态 100%。
最典型的 Query 1,BLEU 分数仅在表格图像里出现——没有 Caption 就等于无信息源。
5.3 计算纬度指标
Precision@5(检索模块)
- Text-only: 0.58
- Multi-modal: 0.83
Answer Faithfulness(LLM 输出与文档一致率)
- Text-only: 0.71
- Multi-modal: 0.92
6. 实战案例:三大场景让你立竿见影
法律合规扫描
- 合规条款常出现在扫描 PDF(图片)里,多模态 Caption 之后能 query “本地是否禁止 XX 材料进出口?”
制造业 BOM 对照
- 供应商 PDF 里零件编号多在表格图片里,Caption 后即可做自动对账。
医疗影像报告
- 检查报告附 CT 切片缩略图,Caption 标注 “lesion size 2.3 cm 左叶” 后,与文字诊断互补检索。
7. 坑与填坑:工程落地 7 大常见 Bug
- 大文件内存暴涨:PyMuPDF 提图像会复制多份 Buffer → 用
tempfile写磁盘并及时shutil.rmtree. - Caption 毫无信息量:提示词太短,多加 “chart/table” 关键词通常起飞。
- 向量漂移:图像 Caption 过长导致嵌入维度稀释 → 可做摘要再嵌入。
- OCR 嵌套图:有些 PDF 把表格截图后又以 72DPI 嵌进 PDF → 需要先
pptx化增强 DPI。 - 多语种混杂:
bge-en-icl对中文表格 Caption 嵌入差,选bge-m3多语言版。 - 相似度阈值调参:图片 Caption 语义与查询差距大,要么 k 提高,要么阈值放宽。
- 推理延迟:Caption 阶段一次性做离线;在线问答只检索,不再调用 Vision 模型。
8. 趋势展望:下一站,知识粒子化与 Agent 化
粒子化
每条图像 Caption + 块文本都会被切分成更细的「知识粒子」,未来可存进向量 + 知识图谱混合库。Agent 化
检索只是第一步,后续 Agent 会基于多模态信息链式推理:- 先看图,提取数值 →
- 再读正文,找到方法论 →
- 最后产出一份符合 ISO 标准的报告。
主动学习闭环
用户如果发现 Caption 错漏,可一键修正并回写知识库。下个版本 Caption 模型就学会了。
最后
为什么要学AI大模型
当下,⼈⼯智能市场迎来了爆发期,并逐渐进⼊以⼈⼯通⽤智能(AGI)为主导的新时代。企业纷纷官宣“ AI+ ”战略,为新兴技术⼈才创造丰富的就业机会,⼈才缺⼝将达 400 万!
DeepSeek问世以来,生成式AI和大模型技术爆发式增长,让很多岗位重新成了炙手可热的新星,岗位薪资远超很多后端岗位,在程序员中稳居前列。
与此同时AI与各行各业深度融合,飞速发展,成为炙手可热的新风口,企业非常需要了解AI、懂AI、会用AI的员工,纷纷开出高薪招聘AI大模型相关岗位。
最近很多程序员朋友都已经学习或者准备学习 AI 大模型,后台也经常会有小伙伴咨询学习路线和学习资料,我特别拜托北京清华大学学士和美国加州理工学院博士学位的鲁为民老师给大家这里给大家准备了一份涵盖了AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频全系列的学习资料,这些学习资料不仅深入浅出,而且非常实用,让大家系统而高效地掌握AI大模型的各个知识点。
这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】
AI大模型系统学习路线
在面对AI大模型开发领域的复杂与深入,精准学习显得尤为重要。一份系统的技术路线图,不仅能够帮助开发者清晰地了解从入门到精通所需掌握的知识点,还能提供一条高效、有序的学习路径。
但知道是一回事,做又是另一回事,初学者最常遇到的问题主要是理论知识缺乏、资源和工具的限制、模型理解和调试的复杂性,在这基础上,找到高质量的学习资源,不浪费时间、不走弯路,又是重中之重。
AI大模型入门到实战的视频教程+项目包
看视频学习是一种高效、直观、灵活且富有吸引力的学习方式,可以更直观地展示过程,能有效提升学习兴趣和理解力,是现在获取知识的重要途径
光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。
海量AI大模型必读的经典书籍(PDF)
阅读AI大模型经典书籍可以帮助读者提高技术水平,开拓视野,掌握核心技术,提高解决问题的能力,同时也可以借鉴他人的经验。对于想要深入学习AI大模型开发的读者来说,阅读经典书籍是非常有必要的。
600+AI大模型报告(实时更新)
这套包含640份报告的合集,涵盖了AI大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师,还是对AI大模型感兴趣的爱好者,这套报告合集都将为您提供宝贵的信息和启示。
AI大模型面试真题+答案解析
我们学习AI大模型必然是想找到高薪的工作,下面这些面试题都是总结当前最新、最热、最高频的面试题,并且每道题都有详细的答案,面试前刷完这套面试题资料,小小offer,不在话下
这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】