|EVOR: Evolving Retrieval for Code Generation
论文链接:https://arxiv.org/abs/2402.12317v2
代码地址:https://arks-codegen.github.io/
检索增强生成(RAG)技术无需额外训练即可与大语言模型(LLM)无缝集成,已在代码生成领域展现出应用潜力。然而,当前的检索增强代码生成(RACG)系统多依赖于单一类型的静态知识源,如语法文档或代码仓库,这限制了LLM在面对新库或不常见编程语言时的表现,可能导致代码生成不够准确。针对这些情况,论文提出EVOR,核心内容包括:
查询进化:从给定的自然语言问题出发,在首轮迭代中,直接将问题作为查询用于检索。随后,基于问题、检索到的知识、LLM 生成的草稿程序以及执行反馈,利用另一个 LLM生成新的查询。在后续迭代中,新查询将替代上一轮查询进行检索操作,通过不断调整查询内容,使检索模型能够更精准地获取与当前任务相关的信息,从而提高 LLM 生成代码的质量。
知识库构建与进化:知识汤是 EVOR 方法的核心组成部分,包含四种类型的知识。网络搜索是传统 RAG 应用中常用的资源,通过 Python API 获取谷歌搜索排名靠前的网站内容,并转换为 markdown 格式,为解决编码问题提供丰富的参考资料;知识库的进化主要依赖于执行反馈和代码片段。在每次迭代中,使用样本输入执行生成的程序,如果程序执行成功,将其标记为 “语法正确” 的代码片段并纳入知识库,作为后续任务的有效参考;若执行失败,则将(代码片段,错误消息)对添加到知识库中。
EVOR 管道:包括查询制定、知识检索、程序生成、执行反馈和知识库更新等步骤,设置最大迭代次数和终止条件。
在该场景下 EVOR 表现优于传统 RAG,与 SWE-Agent 相当且可融合提升性能。在不同 Token 水平下 EVOR 性能均高于 DocPrompting,token 增加时优势更明显。与基于 LLM 的代码生成、检索增强生成、代码执行相关工作紧密相连,且 EVOR 在利用外部知识的代码生成设置上有创新。
|HtmlRAG: HTML is Better Than Plain Text for Modeling Retrieval Results in RAG Systems
论文链接:https://arxiv.org/abs/2411.02959
代码地址:https://github.com/plageon/HtmlRAG
在传统的RAG系统中,HTML文档被转换为纯文本输入给LLM,这导致了结构化信息丢失、语义信息削弱和冗余信息增加等问题。例如,表格变得无序,关键的HTML标签语义被忽略,且非语义内容如CSS和JavaScript增加了LLM的处理负担。提出了一种创新的HtmlRAG系统,直接在RAG中使用HTML格式来保持内容的结构和语义信息,核心内容包括:
HTML 清理模块:去除 CSS 样式、注释、JavaScript 以及冗长的 HTML 标签属性,因为这些内容对 LLMs 理解帮助有限。合并多层单嵌套标签和删除空标签,在不损失语义信息的情况下压缩 HTML 结构。
块树构建与修剪:将检索到的所有 HTML 文档连接并解析为 DOM 树,再转换为块树。通过设置每个块的最大字数来调整块树的粒度,合并节点形成块,以降低计算成本。用现成的嵌入模型计算块与用户查询的相似度得分,采用贪心算法删除低相似度块。但该方法对细粒度块效果不佳,且缺乏全局视野。利用生成式模型对进一步修剪块树。通过训练模型计算块的得分,该得分基于从根标签到块标签和文本的路径生成概率。在推理过程中,采用高效的树状推理和动态跳步策略来降低计算成本。
在六个QA数据集上进行了实验,全面评估了该系统在准确率和生成质量上的表现。实验结果显示,与传统的纯文本RAG系统相比,HtmlRAG在保持信息结构和提升内容相关性上均表现出色。
|Video-RAG: Visually-aligned Retrieval-Augmented Long Video Comprehensio
论文链接:https://arxiv.org/abs/2411.13093
代码地址:https://github.com/Leon1207/Video-RAG-master
当前 LVLMs 在理解短视频上表现尚可,但长视频理解仍具挑战。扩展 LVLMs 上下文长度的微调方法需大量数据和 GPU 资源,基于 GPT 的Agent方法则依赖专有模型且有诸多局限,检索增强生成(RAG)技术被应用于视频任务,即利用工具处理长视频后送 Proprietary Model(如 GPT-4o)生成结果。但这些方法大多将视频转为文本,缺乏与视觉上下文的对齐,导致视觉信息丢失,且在多轮交互中资源消耗大,依赖强大的 LLMs,灵活性和生成能力受限。因此,论文提出Video-RAG,核心内容如下:
查询分解:当 LVLM 接收到用户关于视频的查询后,在无视频帧信息的情况下处理文本信息,借助解耦提示生成检索请求,格式为 JSON。请求涵盖语音识别、物理实体识别和实体细节等方面,这些请求可能为空值,随后被解析并传递到辅助文本检索阶段。
辅助文本生成:从视频中并行构建三个数据库。利用 EasyOCR 从采样视频帧提取文本构建 OCR 数据库,并用 Contriever 编码文本嵌入存储;从视频提取音频并通过 Whisper 转录为文本构建 ASR 数据库,同样编码存储;基于对象检测请求和 CLIP 相似度筛选关键帧,用 APE 模型检测对象信息,以自然语言表示存储构建 DET 数据库。
检索:用 Contriever 框架编码用户查询和 OCR、ASR 解析请求为文本嵌入,通过 FAISS 工具从相应数据库检索辅助文本。对于 DET 数据库,先对原始检测信息用场景图预处理为更易被 LVLM 理解的格式,再依据 LVLM 的请求选择确定最终的对象辅助信息。
集成与生成:将不同类型辅助文本按时间顺序用自然语言组织成统一辅助输入,与用户查询和采样视频帧一起输入 LVLM 生成最终结果。
使用 Video-MME、MLVU 和 LongVideoBench 等长视频基准数据集。在 Video-MME 上,对六个开源 LVLMs 应用 Video-RAG 平均性能提升 8.0%,72B 模型下性能优于 Gemini 1.5-Pro;在 MLVU 和 LongVideoBench 上也有不同程度的性能提升。
|TableRAG: Million-Token Table Understanding with Language Models
论文链接:https://arxiv.org/abs/2410.04739
代码地址:https://github.com/google-research/google-research/tree/master/table_rag
大语言模型受到上下文长度的限制,长上下文还会降低模型的推理能力,产生所谓的“中间迷失”现象。同时,表格规模的增加还会显著提升计算成本和处理延迟。简单的解决方案,比如截断表格或仅读取表格模式,通常会导致关键信息的缺失。为此,已有的研究尝试通过检索关键行和列来构建子表,从而提取回答查询所需的重要信息。这些方法将整行或整列编码为稀疏或密集向量,以减少LM的token使用量,但在处理极大规模的表格时,依然面临计算效率和性能方面的挑战。因为要编码整行或整列,需要处理整个表格,这对于包含数百万个单元格的表格来说是不现实的。论文提出了一种新的可扩展框架TableRAG,核心内容如下:
表格查询扩展:为模式和单元格值生成单独查询,如对于 “What is the average price for wallets?” 会生成针对列名(如 “product”“price”)和相关单元格值(如 “wallet”)的查询。
模式检索:使用预训练编码器根据查询获取相关列名及数据类型、示例值等信息,对列进行类型转换和示例值展示,并结合 top-K 检索结果进行排序。
单元格检索:构建包含不同列值对的数据库,提取回答问题所需的特定单元格值,可实现单元格识别和单元格-列关联,在必要时引入单元格编码以提高效率。
程序辅助求解器:使语言模型能利用检索到的信息与表格进行交互,文中采用 ReAct 方法,通过示例展示了其工作流程。
构建了 ArcadeQA 和 BirdQA 两个大规模表格问答数据集,分别源自 Arcade 和 BIRD-SQL 数据集,还扩展了 TabFact 数据集以生成不同规模的合成表格,与 ReadTable、ReadSchema、RandRowSampling、RowColRetrieval 四种方法进行比较,均基于相同的 PyReAct 求解器实现。结合模式检索和单元格检索,利用查询扩展来提取表格中的关键信息,减少提示长度和信息损失,使语言模型能有效处理大规模表格。
|CodeGRAG: Bridging the Gap between Natural Language and Programming Language via Graphical Retrieval Augmented Generation
论文链接:https://arxiv.org/abs/2405.02355
模型地址:https://anonymous.4open.science/r/Code-5970/
大语言模型在代码生成方面有潜力,但自然语言和编程语言之间存在语法差距和词汇不匹配问题,影响了代码生成性能。例如,编程语言有特殊标记且结构复杂,与自然语言的顺序结构不同。论文提出了CodeGRAG 框架,核心内容包括:
图形知识库准备:提取代码块的数据流图和控制流图,并结合读写信号组成复合语法图,以更好地表示代码,同时保留语义和逻辑信息。
知识查询:根据任务生成查询,从知识库中检索图形知识,通过特定的编码和距离计算来匹配查询与知识库内容。
图形知识增强生成:针对无调优模型提出元图模板将图形视图转换为知识,针对可调优模型提出软提示技术,利用预训练的 GNN 专家模型将编程领域知识注入 LLMs 参数。
CodeGRAG 相比基础模型有性能提升,元图引导的模型比原始代码块引导的模型表现更好,软提示调优比简单监督调优更有效。同时研究了 GNN 专家预训练目标的影响,发现对齐和结构保留目标都有助于提升模型性能;分析了图形视图组件的影响,表明边缘特征、节点类型和整体结构都对构建代码结构视图有作用。在图形视图的兼容性上,其提取过程适用范围广且提取率较高。
|RECAP: Retrieval-Augmented Audio Captioning
论文链接:https://arxiv.org/abs/2309.09836
代码地址:https://github.com/Sreyan88/RECAP
音频字幕旨在用自然语言描述音频内容,与语音识别不同,它侧重于环境声音。过去的音频字幕模型多采用编码器 - 解码器架构,但在跨域设置中表现不佳。主要原因是不同域中独特音频事件的出现情况不同,且新音频概念不断涌现。
论文提出一种新的音频字幕系统 RECAP,它基于检索增强生成技术,能有效解决音频字幕领域的域转移问题,并在多个数据集上取得优异性能。核心内容包括:
总体架构:采用 CLAP 作为音频编码器,GPT-2 作为语言解码器。通过 CLAP 提取音频的最后隐藏状态,并利用随机初始化的交叉注意力模块连接音频嵌入和解码器。训练时冻结 GPT-2 和 CLAP,仅训练交叉注意力层。
提示构建:利用 CLAP 从数据存储中检索与音频最相似的前 k 个字幕来构建提示,计算当前音频嵌入与数据存储中所有字幕嵌入的余弦相似度,选择相似度最高的字幕。
在处理组合音频和新音频事件时,RECAP 相比当前最优方法(SOTA)表现更好,如在 Clotho 和 AudioCaps 测试集的组合实例中,SOTA 只能描述一个音频事件,而 RECAP 能捕捉多个,同时训练成本低且能利用文本字幕数据存储提升性能。
|Retrieval-Augmented Score Distillation for Text-to-3D Generation
论文链接:https://arxiv.org/abs/2402.02972
代码地址:https://ku-cvlab.github.io/ReDream/
文本到 3D 生成虽借助 2D 扩散模型取得进展,但 3D 先验知识不足导致几何不一致。现有解决方法如在多视图数据集上微调扩散模型受 3D 数据质量和多样性限制,基于分数蒸馏的方法虽能生成高质量 3D 模型,但缺乏 3D 几何知识会产生伪影和不一致问题。论文提出ReDream,核心内容包括:
公式化:基于粒子变分推理框架,使粒子从检索资源吸收信息,通过检索模块和新方法优化粒子速度,促进分布优化。
初始化分布作为几何先验:利用检索邻居初始化粒子,使其成为变分分布的引导,通过辅助目标使变分分布与检索资源经验分布相似,实验证明可确保粒子 3D 结构稳健性和一致性2。
2D 先验的轻量级适应:针对分数蒸馏中 2D 先验模型的视点偏差问题,利用检索到的 3D 资产在测试时进行轻量级适应,平衡视点概率密度,有效减少偏差且不降低模型质量。
3D 资源检索:从 Objaverse 1.0 数据集检索 3D 资源及对应字幕,用 ScaNN 算法基于 CLIP 嵌入检索,结合图像和文本嵌入,检索时间短,未检索到完全匹配资产时也能提供参考。
与多种方法比较,在处理复杂提示和生成高质量纹理方面表现更好,通过 CLIP 分数和 A-LPIPS 指标证明在文本-3D 对齐和视图一致性上更优,用户研究中约 75% 参与者更偏好本文方法。
|MMed-RAG: Versatile Multimodal RAG System for Medical Vision Language Models
论文链接:https://arxiv.org/abs/2410.13085
代码地址:https://github.com/richard-peng-xia/MMed-RAG
人工智能在医疗领域有潜力,但 Med-LVLMs 存在事实性幻觉问题。微调受数据量和分布限制,现有基于检索增强生成(RAG)的方法缺乏通用性且存在对齐问题。论文提出MMed-RAG,核心内容包括:
领域感知检索机制:通过领域识别模块为输入医学图像分配标签,选择对应的检索模型,其多模态检索器经对比学习训练,为 Med-LVLMs 提供知识检索。
自适应检索上下文选择:根据检索上下文的相似度分数动态选择合适数量的上下文,避免信息过多或过少导致的幻觉,利用相似性比率优化检索结果。
基于 RAG 的偏好微调:构建偏好对解决跨模态和整体对齐问题,包括鼓励模型利用图像信息和正确处理检索知识的不同情况,通过直接偏好优化微调模型。
在多个数据集的医学视觉问答和报告生成任务中,MMed-RAG 优于基线方法和其他开源 Med-LVLMs,在不同任务上分别有显著提升,且在报告生成任务提升更明显。
|LaB-RAG: Label Boosted Retrieval Augmented Generation for Radiology Report Generation
论文链接:https://arxiv.org/abs/2411.16523
代码地址:https://github.com/uc-cdis/label-boosted-RAG-for-RRG
放射学报告对疾病诊断和治疗至关重要,但放射科医生面临着工作量大的问题,同时人工智能在医学领域的应用受到关注。放射学报告生成(RRG)是从图像自动生成报告的任务,当前方法存在需大量计算资源或数据泄露等问题。RRG 作为图像字幕的一种特殊形式,检索增强生成(RAG)等无需模型训练的方法受到关注,但 RRG 作为图像到文本任务,如何有效应用这些方法仍需研究。同时,医疗领域有多种特定模态的基础模型,如何组合使用这些未联合训练的模型以提升 RRG 性能是一个开放问题。因此,本文提出的 LaB-RAG,核心内容包括:
框架概述:使用标签增强的 RAG 算法和上下文学习(ICL)进行图像字幕生成,包括图像、文本和标签数据集的准备,使用 BioViL-T 提取图像特征,训练 LaB-Classifiers 进行标签预测等步骤。
标签增强的 RAG 算法:通过图像嵌入相似性检索示例文本,利用分类标签对检索和增强步骤进行改进,包括标签增强过滤(如 “Exact”“Partial” 等过滤方式)和标签增强格式与提示(如 “Naive”“Simple” 等格式)。
与其他检索式和直接微调模型相比,LaB - RAG 在某些指标上表现更好或相当,对模型组件的实验表明标签的使用和模型选择对结果有影响。
|Path-RAG: Knowledge-Guided Key Region Retrieval for Open-ended Pathology Visual Question Answering
论文链接:https://arxiv.org/abs/2411.17073
代码地址:https://github.com/embedded-robotics/path-rag
病理图像分析对癌症诊断和治疗至关重要,但深度学习方法常忽略组织结构和细胞组成等领域知识。在开放式病理视觉问答中,现有视觉语言模型表现不佳,如 LLAVA 召回率仅 38%。因此需借助病理文献领域知识确定关键区域,并利用 VLM 检索信息。论文提出Path-RAG,核心内容包括:
H&E 染色病理图像识别:用 HistoCartography 工具检测图像中细胞核数量,以 5 个细胞核为阈值区分病理与非病理图像,非病理图像直接用 LLaVA - Med 处理,病理图像则进行下一步操作。
病理图像分解:利用 HistoCartography 中的工具进行染色归一化、细胞核检测、特征提取等操作构建细胞核图,将图像分为 9 个有 20% 重叠的补丁,按细胞核中心数量排名选取补丁,并通过随机补丁消融研究验证方法有效性。
补丁标注和候选答案提取:用 LLaVA - Med 为每个补丁生成文本描述和候选答案,非病理图像只用输入图像生成描述。
基于补丁知识的推理:用 GPT - 4 对问题及补丁答案 / 描述进行推理,病理图像有 Path-RAG(answer)和 Path-RAG(description)两种方式,同时设置了不使用 GPT - 4 的基线方法。
使用 PathVQA 和自建的 ARCH-Open 数据集,使用 LLaVa - Med 模型及在 PathVQA 训练集上微调的模型,在 NVIDIA RTX A6000 GPU 上进行推理,用 GPT4 生成最终答案,Path-RAG 通过检索领域知识选择相关补丁,显著提升了召回率,在有无 GPT-4 时均有性能提升,且对未微调的 LLaVa-Med 也有改善。