【PyTorch项目实战】VisRAG:基于视觉的多模态文档检索增强生成(文本+图像)
文章目录
- (必读)多模态RAG(文本/音频 + 图像/视频) —— 备注:必读是前置理解(RAG是基础)
- 一、基于文本的检索增强生成(Text-based Retrieval-augmented Generation,RAG)
- 1.1、RAG基于大型语言模型(Large Language Models,LLMs)
- 1.2、(必读)RAG工作流程
- (1)(必读)图解流程:传统LLM + 多模态RAG
- (2)(必读)图解 Prompt 与 Query 的融合逻辑
- 1.3、(必读)RAG 有什么好处?
- 1.4、RAG 有哪些应用?
- 1.5、如何提高 RAG 的准确性?
- (1)什么是重新排序模型?
- (2)什么是高级检索技术?
- 1.5、如何加速 RAG?
- 二、基于视觉的检索增强生成(Vision-based Retrieval-augmented Generation,VisRAG)
- 2.1、VisRAG基于视觉语言模型(Vision-Language Models,VLMs)
- 2.2、视觉语言模型的发展概览
- 2.3、模型框架
- 2.2.1 检索器 VisRAG-Ret(Visual Retriever)
- 2.2.2 生成器 VisRAG-Gen(Visual Generator)
- ✅支持 - 多图像输入的VLM —— 如GPT-4o、Gemini 1.5、Qwen-VL 2.0、MiniCPM-V 2.6等
- ❌不支持 - 多图像输入的VLM —— 如BLIP-2、MiniGPT-4等
- 创新1:页面拼接(Page Concatenation)
- 创新2:加权选择(Weighted Selection)
- 创新3:分任务处理机制(单挑问题 vs 多跳问题)
- 2.4、数据集:视觉问答 (visual question answering,VQA) 数据集 + 合成数据
- 2.5、研究结果
- 三、项目实战
- 3.1、虚拟环境
- 3.2、环境配置
- 3.3、硬件要求
- 3.4、代码测试
(必读)多模态RAG(文本/音频 + 图像/视频) —— 备注:必读是前置理解(RAG是基础)
在面对多模态数据源(如文本、音频、图像、视频)时,构建一种具备跨模态检索能力与生成能力
的系统。其目标是:基于用户查询,从跨模态知识语料库中检索语义相关的信息单元,并将 " 原始查询 + 检索结果 " 联合输入至大模型中,以生成准确、上下文一致的自然语言回答。
这一框架通常基于检索增强生成(Retrieval-Augmented Generation, RAG) 的设计理念,在多模态条件下进一步扩展支持异构数据的理解与整合能力。
以电商平台为例,系统可将每个商品的图像与描述性文本共同嵌入至同一向量空间,支持用户以如下方式进行多模态搜索:
- 文本查询:用户输入文字描述(如“红色条纹连衣裙”),系统通过嵌入语义相似商品信息进行匹配;
- 视觉搜索:用户上传一张参考照片,系统基于图像相似度检索候选商品;
- 混合增强:模型根据用户查询与检索结果共同生成详细推荐语或购物建议。
一、基于文本的检索增强生成(Text-based Retrieval-augmented Generation,RAG)
核心论文
- Retrieval‑Augmented Generation for Knowledge‑Intensive NLP Tasks
- Patrick Lewis 等人于 2020 年提出的经典框架论文,首次系统性地提出将检索组件与生成式语言模型结合,用于开放域问答任务。
- ❤️ Retrieval‑Augmented Generation for Large Language Models: A Survey
- Yunfan Gao 等人于 2023 年发布的 RAG 综述,涵盖了 Naive/Módular RAG 架构、检索组件与生成模块的融合、评估指标与未来方向。
- A Comprehensive Survey of Retrieval‑Augmented Generation (RAG): Evolution, Current Landscape and Future Directions
- Shailja Gupta 等人于 2024 年发表的系统综述,对 RAG 的演化路径、架构设计与实际挑战作深入分析。
- Searching for Best Practices in Retrieval-Augmented Generation
- Xiaohua Wang 等人 2024 年提出的实践建议型论文,探讨多模态检索、性能-效率优化、检索策略融合等内容:
- Agentic Retrieval‑Augmented Generation: A Survey on Agentic RAG
- Aditi Singh 等人在 2025 年发布,介绍具备自动规划、多步骤检索、工具调用能力的“Agentic RAG”架构:
- OpenRAG: Optimizing RAG End‑to‑End via In‑Context Retrieval Learning
- Jiawei Zhou 和 Lei Chen 等在 2025 年提出,强调检索器端到端调优以提升一致性与检索–生成协调性。查看链接:
- Chain‑of‑Retrieval Augmented Generation
- Liang Wang 等人提出的 CoRAG 方法,通过多轮检索+迭代查询方式解决复杂多跳问题,开创 RAG 的新路径。
1.1、RAG基于大型语言模型(Large Language Models,LLMs)
大型语言模型(Large Language Models,LLMs)
经过海量数据训练,利用其参数知识在常见的 NLP 任务中表现出强大的能力。然而,幻觉问题以及更新参数知识的挑战限制了它们在特定领域的实际应用。
- RAG 通过整合从外部知识库检索到的(文本信息)来增强大型语言模型,这有助于解决知识密集型任务,减少幻觉并获取新知识。其主要有以下两个部分构成:
- 基于文本的检索器,该检索器根据用户查询从知识库中获取相关信息。
- 基于LLM的生成器,该生成器读取查询以及检索到的信息以生成答案。
- 在实际场景中,知识通常以多模态文档的形式呈现,例如教科书和手册,其中可能包含文本和图形交织在一起的内容。
- 为了从此类数据源获取文本,需要一个解析阶段,该阶段通常涉及一系列级联过程,包括布局识别、光学字符识别 (OCR) 以及文本连接等后处理步骤。虽然在大多数情况下有效,但解析过程不可避免地会引入错误,这可能会对检索和生成阶段产生负面影响。
1.2、(必读)RAG工作流程
- NVIDIA 深度博客:What Is Retrieval-Augmented Generation — 用通俗比喻和示意图解释 RAG。
- NVIDIA 深度博客:什么是检索增强生成 (RAG)?
知识语料库建模
:假设存在一个知识语料库 D=d1,d2,…,dnD = {d_1, d_2, \dots, d_n}D=d1,d2,…,dn,其中每个单元 did_idi 可以是文本/音频、图片/视频等格式的语料单元,nnn 表示语料库规模。嵌入模型(Embedding)
:通过模态对齐的预训练模型(如CLIP、BLIP、Flamingo、GIT、ImageBind等),将每个语料单元 did_idi 编码为嵌入向量,是数据射到高维空间的数值表示。
- 嵌入能够捕捉内容的语义,从而支持RAG中基于相似性的检索。
- 具有相关含义的项目在向量空间中被放置的更紧密,从而实现快速高效的检索。
检索器(Retriever)
:
- 采用 双塔式编码结构(dual encoder) 实现高效相似性检索:
- (1)查询 qqq 和语料 did_idi 分别编码为向量 qeq_eqe 与 eie_iei;
- (2)通过向量相似性(如:余弦相似度、欧氏距离或点积等指标测量向量距离)计算 ,检索出 Top-K 个候选 DCD=ANN−Search(qe,e1,...,en)D_{CD} = ANN-Search(q_e,{e_1,...,e_n})DCD=ANN−Search(qe,e1,...,en),其中 DCD⊂DD_{CD} \subset DDCD⊂D。
- 备注:ANN算法通过有效地缩小潜在匹配范围来优化此步骤。检索到的内容(无论是文本、图像还是其他数据)将为LLM的最终回复提供关键背景信息。
- 备注:实际部署中,检索器可采用FAISS、Milvus、Weaviate等向量数据库进行ANN索引。
生成器(Generator)
:将原始查询 qqq 与检索结果 DCDD_{CD}DCD 联合构造成提示模板(prompt),输入大模型(LLM 或 VLM)生成最终答案:a=Generator(q,DCD)a = Generator(q,D_{CD})a=Generator(q,DCD).
- 若使用LLM(如GPT、ChatGLM等),输入仅为
文本
;- 若使用VLM(如MiniGPT-4、Gemini、GPT-4o等),输入可包括
图像、视频帧
等。- 备注:检索到的 top-k 个数据块会与用户查询一起插入到模型的提示中。然后,LLM 会将其输出基于检索到的数据来生成响应,从而减少错觉并提高事实准确性。许多企业 RAG 系统通过在生成的文本中引用或超链接来源来增强透明度。
(1)(必读)图解流程:传统LLM + 多模态RAG
"""
┌──────────────────────┐ ┌───────────────────────────┐
│ 传统LLM流程 │ │ 多模态RAG检索增强流程 │
└──────────────────────┘ └───────────────────────────┘↓ ↓[用户查询q(文本)] [用户查询q(文本/图像)]↓ ↓+-----------+ +----------------+| LLM模型 | | 检索器模型 |+-----------+ +----------------+↓ ↓[直接生成回答a] 通过Embedding编码嵌入向量q_e↓在多模态语料库中执行相似性检索↓Top-K候选集D_CD↓拼接提示(Prompt = q + D_CD)↓+------------------+| LLM/VLM生成器模型 |+------------------+↓[增强回答a]"""
(2)(必读)图解 Prompt 与 Query 的融合逻辑
"""[用户输入]↓(自然语言或图片)↓
+-----------------------------+
| Prompt模板构造器 |
| 例如:"请基于以下内容回答:{query}" |
+-----------------------------+↓[构造后的结构化 Prompt] ← query被插入模板中↓ ↑拼接检索结果 检索器返回 Top-K 文档↓ ↑[最终增强Prompt] ←←←←←←←←←←←←←←←↓输入LLM / VLM
"""
1.3、(必读)RAG 有什么好处?
RAG 通过集成外部数据检索来增强 AI 生成的响应,从而提供以下几个主要优势:
提高事实准确性
—— 通过从可靠、最新的数据源检索信息,RAG减少了模型“产生幻觉”的倾向,并有助于确保生成的响应基于真实的事实。灵活性和领域适应性
—— RAG 可以轻松定制以适应不同的领域或知识库,而无需完全重新训练或微调生成模型,只需更改或更新检索相关信息的数据源即可。时效性
—— RAG 使系统能够根据最新数据源提供响应。传统的 LLM 通常基于静态数据快照进行训练;而 RAG 则通过“引入”新数据来保持答案的时效性。可解释性和透明度
—— 用户和开发人员可以检查在生成响应时检索和使用了哪些文档或知识源。这有助于追踪和验证所提供的信息,从而提高信任度和可解释性。这些优势使 RAG 成为需要最新、可靠和上下文感知的 AI 生成响应的应用程序的强大方法。
1.4、RAG 有哪些应用?
AI 聊天机器人演变为 AI 助手,再演变为AI 代理,标志着企业发展和数字化劳动力发展的重要里程碑。这些基于 AI 的生成式软件应用程序使用 RAG 实时查询数据库,提供与用户查询上下文相关且包含最新可用信息的响应,无需重新训练底层 LLM。这一进步对用户参与度产生了深远的影响,尤其是在客户服务、教育和娱乐等行业,这些行业对即时、准确和知情的响应至关重要。
需要基于实时可靠数据的人工智能驱动洞察的行业应用包括:
行业 | 说明 |
---|---|
企业搜索和知识管理 | 通过检索和综合来自大量公司文档、维基和知识库的信息来增强内部搜索,减少搜索答案所花费的时间。 |
财务和市场情报 | 通过检索和总结实时市场趋势、公司报告和监管文件来帮助分析师做出明智的决策。 |
客户支持和聊天机器人 | 通过检索公司政策、常见问题解答和故障排除指南,而不是仅仅依靠预先训练的知识,为人工智能驱动的虚拟助手提供准确、最新的响应。 |
医疗保健和医学研究 | 通过检索和总结最新的医学研究、临床指南和患者记录来支持临床医生和研究人员做出决策。 |
法律和合规援助 | 检索和综合法律文件、判例法和监管指南,以协助律师和合规团队进行研究和合同分析。 |
代码和软件文档 | 通过从存储库和技术指南中检索相关代码片段、API 文档和故障排除解决方案来协助开发人员。 |
1.5、如何提高 RAG 的准确性?
有多种方法可以提高 RAG 管道的准确性,从参数方法(如微调)到非参数管道修改。
模型选择
:为 RAG 流程选择最佳模型会对流程的准确性产生重大影响。确保为每个函数(嵌入模型、重排序模型和生成器)使用最佳模型,以提高多个 RAG 流程的整体准确性。微调
:微调生成器(负责生成最终响应的 LLM)和嵌入模型(用于支持检索和提取)。通过捕获用户对生成响应的反馈,您可以设置一个数据飞轮,自动微调生成器模型。重排序
:使用重排序模型可以帮助您选择最相关的上下文来回答用户查询。此方法会增加少量额外延迟,但通常会对准确率产生巨大影响。超参数
:通过修改和试验不同的 RAG 超参数(例如块大小、块重叠和嵌入向量大小),您可以显著改进 RAG 流水线。这些方法需要稳健的评估(例如通过 NeMo Evaluator 微服务),但对流水线准确性影响极大。查询增强
:通过添加查询转换、重写或其他方法,您可以确保查询适合您为任何域创建的特定管道,从而提高 RAG 管道的有效性。
(1)什么是重新排序模型?
重排序模型:通过对最相关的数据块进行优先级排序,然后再将结果传递给 LLM,从而优化检索结果。
- 初始检索后,重排序模型会根据相关性信号(例如关键词频率、语义相似度、新近度或元数据对齐)对内容进行重新排序。这些模型可以是基于规则的(例如 BM25 的启发式方法)、机器学习驱动的(学习相关性模型),也可以是融合多种因素的混合方法。有效的重排序可确保 LLM 优先处理最有用的数据,从而提高 RAG 系统的响应准确性和效率。
(2)什么是高级检索技术?
为了优化 LLM 响应,有先进的检索技术可以通过组合方法、管理大数据和适应查询细微差别来帮助提高搜索精度。
高级检索技术 | 说明 |
---|---|
混合检索 | 将矢量搜索与 BM25 等传统技术相结合。 |
长 - 上下文检索 | 一些 LLM 可以在单个提示中处理数千个词法单元,从而能够考量大量检索到的内容,但会增加计算成本和内存占用。 |
上下文检索 | 通过元数据为每个块添加额外的上下文,例如它所属的文档、周围上下文的摘要或块的索引日期,是提高检索流程检索到正确上下文的可能性的另一种方法。 |
1.5、如何加速 RAG?
RAG 流程将 LLM 的优势与外部知识源相结合,可以通过采用以下几种技术来提高性能:
- 更小、更精细的模型
不要完全依赖 LLM,而要采用专门的小模型(针对特定任务进行微调)来生成最终响应。
减少计算开销并加快生成过程。- GPU 加速数据库
- 将检索任务卸载到 GPU 加速系统,以便快速访问上下文。
- 显著减少数据检索阶段的延迟。
- 优化索引结构
- 缓存经常访问的数据
二、基于视觉的检索增强生成(Vision-based Retrieval-augmented Generation,VisRAG)
- 论文地址:VisRAG: Vision-based Retrieval-augmented Generation on Multi-modality Documents
- 中文翻译:VisRAG:基于视觉的多模态文档检索增强生成
- 源码地址:OpenBMB/VisRAG
- 期刊:尚未在正式学术期刊或会议上发表,而是作为预印本发表于 arXiv 平台
- 时间:2024 年 10 月 14 日
2.1、VisRAG基于视觉语言模型(Vision-Language Models,VLMs)
视觉语言模型(Vision-Language Models,VLMs)
的最新发展为理解图像和文档
中复杂的视觉线索提供了一种很有前景的方法,通过将语言模型与视觉编码器
相结合,VLM 在描述图片等应用中展现出卓越的能力。
- VisRAG直接使用 VLMs 将文档作为图像嵌入,然后进行检索以增强 VLMs 的生成。最大限度地保留和利用了原始文档中的数据信息,避免了传统文档解析过程中的信息丢失问题。
2.2、视觉语言模型的发展概览
视觉语言模型:是指能够联合理解视觉(图像/视频)与语言(文本)信息的人工智能模型,旨在实现跨模态对齐、语义融合与任务泛化。该领域自2021年起快速发展,主要历经以下几个阶段:
- 1. 对比学习范式初兴(2021年)
OpenAI于2021年提出CLIP
模型(Radford et al., 2021),开创性地使用图文对比学习方法,即将成对的图像与文本作为监督信号,通过对比学习将其映射到统一语义空间,极大推动了零样本图文检索与分类能力的发展,标志着现代VLM体系的起点。- 2. VLM与语言模型结合(2022–2023年)
随后,一系列模型(如Flamingo
〔Alayrac et al., 2022〕、BLIP/BLIP-2
〔Li et al., 2022〕、LLaVA
〔Liu et al., 2023〕)通过将预训练语言模型(LLM)与CLIP风格的视觉编码器耦合,实现了图像输入+语言输出的能力,如图像问答、图文对话等。这一阶段的技术关键在于:使用视觉前端提取图像语义特征;通过中间对齐模块(如Q-former、投影层)将视觉特征输入到LLM;利用语言模型生成自然语言响应。- 3. 多阶段/多任务预训练与任务泛化(2023–2024年)
随着模型能力提升,研究者进一步引入多任务与多阶段预训练机制
(Liu et al., 2024a;白等人,2023),使模型不仅限于图文问答,还能覆盖图文推理、图像字幕生成、视觉推理、图文排序等任务。这些机制增强了模型对复杂视觉语言任务的泛化能力。- 4. 高分辨率与OCR能力提升(2023–2024年)
VLM进一步向高分辨率图像理解
(Xu et al., 2024b;Bavishi et al., 2023)和文档场景中的OCR功能扩展,典型代表包括:DocOwl系列(Ye et al., 2023a;胡等人,2024)、UReader(Ye et al., 2023b)、TextMonkey(Liu et al., 2024b)。这些模型专为处理复杂文档图像(含文本块、表格、结构信息)而设计,特别适用于无显式OCR场景下的语义理解与问答。- 5.
多图像与复杂上下文处理
(2024年起)
最新研究如Li et al., 2024a;王等人,2024等,探索模型对多个图像同时处理与推理的能力,这对于多图信息整合、多图对话、图片组摘要等任务至关重要。- 6. 开源高性能VLM登场(2024–2025年)
进入2024年,多个高性能VLM模型开源,极大推动了应用普及与二次开发,包括:MiniCPM-V(Yao et al., 2024)、Qwen2-VL系列(Wang et al., 2024)。这些模型融合了最新对齐、压缩、视觉增强等策略,支持长图文上下文、多轮对话与文档问答等复杂应用,逐步形成通用型多模态助手基础模型
。
2.3、模型框架
- (左)基于文本的 RAG(TextRAG):
依赖于解析后的文本进行检索和生成
,从而丢失了多模态文档中的视觉信息。- (右)基于视觉的 RAG(VisRAG):采用基于 VLM 的检索器和生成器
直接处理文档页面的图像
,从而保留了原始页面中的所有信息。
VisRAG由两部分构成:
组件 | 作用描述 |
---|---|
VisRAG-Ret | 检索模块:基于VLMs的双塔架构,将查询与文档图像分别映射到嵌入空间,实现语义层面的视觉文档检索。 |
VisRAG-Gen | 生成模块:基于多模态大模型(VLMs)生成最终回答,接受用户查询与检索到的文档图像,进行上下文理解与自然语言生成。 |
[文献综述] Visual RAG:无需微调即可扩展 MLLM 视觉知识
2.2.1 检索器 VisRAG-Ret(Visual Retriever)
VisRAG-Ret:旨在从文档图像语料库 D\mathcal{D}D 中检索与给定查询 qqq 语义相关的文档页面,作为下游生成模块的增强输入。
(1)该模块继承了文本密集检索中的双编码器(Dual Encoder)结构范式;
(2)但将输入模态由 “纯文本” 扩展为 “文本查询+文档图像”,借助视觉语言模型实现跨模态检索。
核心特性
无OCR依赖(文本提取 -> 图像编码)
:不对文档图像进行文本提取,直接利用VLM对整页文档图像编码,保留其原始视觉结构和语义布局。双编码器架构
:分别使用 VLM 编码文本查询 qqq 与文档图像 did_idi ,获取各自的语义嵌入 qeq_eqe 与 ded_ede,再基于嵌入相似度进行检索。位置加权平均池化
:为获得固定维度的嵌入表示,对 VLM 输出的最后一层隐藏状态 H=[h1,h2,...,hn]H = [h_1, h_2, ..., h_n]H=[h1,h2,...,hn] 进行加权平均池化,该策略赋予后部Token更高权重,有利于捕捉VLM生成式特征。相似性匹配与训练目标
:
- (1)文本查询 qqq 与候选图像页面 di{d_i}di 分别送入VLMs,提取多模态嵌入qe,de1,de2,...,deN{q_e, d{e1}, d_{e2}, ..., d_{eN}}qe,de1,de2,...,deN;
- (2)基于嵌入空间的余弦相似度,计算查询与各图像页面之间的匹配度;
- (3)返回
top-k
相似页面图像di1,...,diK{d_{i_1}, ..., d_{i_K}}di1,...,diK,用于后续生成模块输入。
文本查询q ─► 文本编码器(VLM) ─► 查询嵌入 q_e│
文档图像d_i ─► 图像编码器(VLM) ─► 图像嵌入 d_ei│└─────► 计算相似度(余弦) ──────► Top-K图像检索
2.2.2 生成器 VisRAG-Gen(Visual Generator)
VisRAG-Gen:负责根据用户查询 qqq 与检索器 VisRAG-Ret 返回的相关文档图像 d1,d2,...,dk{d_1, d_2, ..., d_k}d1,d2,...,dk,通过视觉语言模型(VLMs)生成符合语义意图的自然语言回答。
该模块面临两项核心挑战:
(1)如何在保持高信息保真度的前提下,有效整合多个视觉文档作为生成模型的输入;
(2)如何适配不同VLM架构对于图像输入数量的差异(单图像输入 vs 多图像输入)。
✅支持 - 多图像输入的VLM —— 如GPT-4o、Gemini 1.5、Qwen-VL 2.0、MiniCPM-V 2.6等
VisRAG-Gen可直接并行接收多个检索到的页面图像,执行统一的跨图生成推理。这类模型通常具备较强的多跳问答能力与视觉记忆融合机制,适用于复杂任务。
❌不支持 - 多图像输入的VLM —— 如BLIP-2、MiniGPT-4等
VisRAG-Gen设计了两种创新处理策略,以应对多页面信息整合问题。
创新1:页面拼接(Page Concatenation)
将多个检索到的页面图像按照一定布局规则(如垂直或网格排列)拼接成一张大图,作为模型的单图输入。该方法保持视觉结构完整性,有效扩展输入范围,适用于结构较清晰的页面。
- 优势:保留页面整体结构,不需改动模型结构,输入直观完整。
- 限制:受限于模型最大图像分辨率,拼接页面过多可能造成图像过密、关键信息压缩,影响模型识别能力。
创新2:加权选择(Weighted Selection)
分别将每一页图像独立输入模型并生成候选答案,然后基于生成置信度(如平均token概率)对多个候选进行加权排序,选择置信度最高者作为最终回答。
- 执行流程:(1)依次将每个页面did_idi输入VLM,结合查询qqq生成候选回答AiA_iAi;(2)根据生成概率分布或模型置信度,计算每个回答的评分;(3)选取评分最高的回答作为最终结果。
- 优势:无需拼接,适用于图像尺寸限制严格的模型;
- 局限:存在信息遗漏风险,尤其在回答依赖多页面交叉信息时。
创新3:分任务处理机制(单挑问题 vs 多跳问题)
根据任务难度(单跳 vs 多跳问题)动态选择处理策略,提升生成效果与效率。
- 单跳问题(Single-hop QA):仅依赖单一页面信息,优先采用
加权选择策略
,快速定位最相关页面;- 多跳问题(Multi-hop QA):需要跨多页面综合信息,优先采用
多图输入模型或页面拼接策略
,支持跨图像推理。
优势:提升系统泛化能力和灵活性;根据查询复杂度智能调度,提高性能和资源利用率。
2.4、数据集:视觉问答 (visual question answering,VQA) 数据集 + 合成数据
详见论文
2.5、研究结果
详见论文
三、项目实战
- VisRAG-Ret:基于
MiniCPM-V 2.0
构建的文档嵌入模型,它是一种视觉语言模型,集成了SigLIP作为视觉编码器和MiniCPM-2B作为语言模型。 - VisRAG-Gen:使用
MiniCPM-V 2.0、MiniCPM-V 2.6和GPT-4o
作为生成器。实际上,可以使用任何喜欢的 VLM!
3.1、虚拟环境
- 【深度学习环境配置】Anaconda + PyCharm + CUDA + cuDNN + PyTorch + OpenCV(资源已上传)
- 【Conda虚拟环境】新建 + 激活 + 安装 + 查看 + 退出 + 删除 + 复制 + 导出 + 导入 + 更改
3.2、环境配置
源码地址:OpenBMB/VisRAG
Python版本:Python 3.9 或 3.10(不建议使用3.11以上)
git clone https://github.com/OpenBMB/VisRAG.git # 克隆源码仓库
####################################################
conda create --name VisRAG310 python==3.10.8 -y # 创建Conda环境
conda activate VisRAG310 # 激活Conda环境
cd D:\VisRAG
pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple # 安装依赖
# 如果使用GPU,安装对应的PyTorch版本
# pip install torch==2.1.2 torchvision==0.16.2 --index-url https://download.pytorch.org/whl/cu118 -i https://pypi.tuna.tsinghua.edu.cn/simple
####################################################
# 在requirements.txt中将某些依赖项前加上井号(#)进行注释,这些依赖不会被安装。
"""【requirements.txt】
accelerate==0.27.0
cffi
decord==0.6.0
deepspeed==0.14.4
editdistance
jmespath
Levenshtein
numpy==1.26.4
openai
Pillow==10.1.0
protobuf==4.25.0
PyMuPDF
pytrec_eval==0.5
sentencepiece==0.1.99
torch==2.1.2
torchvision==0.16.2
transformers==4.40.2
"""
3.3、硬件要求
项目 | 最低要求 | 推荐配置 |
---|---|---|
GPU | ≥16GB 显存(如A5000、3090) | ≥24GB 显存(A100、H100) |
CPU | ≥4核 Intel/AMD | ≥8核,支持AVX加速 |
内存 | ≥32GB | ≥64GB |
硬盘 | ≥100GB SSD | ≥500GB NVMe SSD |
说明:若使用多图输入或大规模图像检索,建议支持多卡分布式训练或推理。