专栏名称: AI生成未来
AIGC最新技术及资讯
目录
相关文章推荐
广州PLUS+  ·  稀缺升级!浓缩版123㎡,刷新超配感大宅! ·  23 小时前  
广州PLUS+  ·  稀缺升级!浓缩版123㎡,刷新超配感大宅! ·  23 小时前  
51好读  ›  专栏  ›  AI生成未来

LLM大模型之Rag检索增强生成演变成GraphRAG

AI生成未来  · 公众号  ·  · 2024-08-08 00:10

正文

点击下方 卡片 ,关注“ AI生成未来


RefAug:prompt增强训练LLM

https://github.com/ytyz1307zzh/RefAug

Learn Beyond The Answer: Training Language Models with Reflection for Mathematical Reasoning

论文提出了一种新的训练策略,名为“reflective augmentation”(简称RefAug),旨在通过在数学问题解答训练实例中嵌入问题反思,来培养语言模型(LMs)更深层次的理解能力。这种方法不仅提高了模型在标准单轮问答(QA)设置中的性能,也显著提升了模型在需要反思性思考的更复杂场景中的性能,如处理后续问题、纠正错误或利用外部反馈。


从项目代码中查看训练数据文件为


在答案中增加反思过程,通过训练以引导LLM主动反思,增强推理能力。在推理时,将reflective的部分进行字符串删除即可。

SeaKR:自我感知RAG

SeaKR: Self-aware Knowledge Retrieval for Adaptive Retrieval Augmented Generation

https://github.com/THU-KEG/SeaKR

自适应RAG是动态确定LLM是否需要RAG的策略。SeaKR能从低成本模型的内部状态中提取其自身的不确定性,自适应的激活检索功能。性能优化现有的自适应RAG方案。

SeaKR


通常来说,使用RAG时,会默认从知识库中检索输入相关内容,而不关心输入数据或者模型内部是否已经包含了足以回答的信息量。对这种场景来说,不但徒增了耗时,还有可能因为检索到的内容导致模型生成质量降低。

因此自适应RAG应运而生。根据输入数据动态判断是否需要检索。有根据模型输出判断是否需要检索的方法,但SEAKR是第一个利用LLMS内部状态的自我意识来动态确定何时检索和有效整合检索到的知识的框架。具体地说,从对应于最后生成的令牌的每一层的前馈网络(FFN)的内部状态中提取LLM的自感知不确定性。

The overall framework of SEAKR.


SEAKR包含三部分:1、LLM。2、根据LLM内部状态的不确定性估计器。3、搜索引擎。

  • 首先对输入prompt直接进行推理,得到LLM的内部状态;

  • 通过不确定性估计器估计是否需要RAG处理。

  • 将搜索到下相关内容和原始prompt按照模板拼接起来,LLM推理生成最终回答。


评测效果如下

Experiment results on complex QA datasets in percentage (%)


Experiment results on simple QA datasets in percentage (%)


12 RAG Pain Points and Proposed Solutions

RAG 系统开发中的 12 大痛点及解决方案 [译]

总结有如下几点:

  1. 数据缺失找不到;(整理数据)

  2. 找到了错误数据;(数据清洗)

  3. 找到正确数据,但是整合顺序有问题;(优化相似度计算等)

  4. 找到正确数据,但是超出上下文长度;(chunk size,上下文压缩、LongContextReorder(长内容优先排序))

  5. 数据格式错误,提取困难or信息不对;(优化相关文档的解析)

  6. 回答不够详细;

  7. 回答不够全面;

  8. 回答的安全性;

  9. 数据查询的效率问题;

  10. 结构化数据读取效率;

  11. 模型回复效率;

Memory3:外挂KV知识库

Memory3: Language Modeling with Explicit Memory

院士领衔推出大模型的第3种记忆:比参数存储和RAG都便宜,2.4B模型越级打13B

Memory3是一种把知识最大程度外置的方法,LM 可以享受更小的参数大小、训练成本和推理成本,实现比更大的模型和RAG更好的性能,并享有更快的速度。

这种记忆是继隐性记忆(模型参数)和工作记忆(模型输入,RAG的结果也是输入)之后的第三种记忆形式。

Memory 3模型将文本转化为显性记忆,然后在推理过程中调用这些记忆。显性记忆可以看作是可检索的模型参数、外化知识或稀疏激活的神经回路。


其实就是在原始的外挂知识库的场景上,将知识库预先通过LLM处理得到全部的kv值,把kv值存储下来替换文本知识库。(这部分操作是前预处理)在推理时,根据当前输入的kv值去知识kv库中查找相关的kv,一起进行attention计算即可。



但如果将全部知识库的kv cache存下来,内存消耗也是极大的。需要压缩。

  • 1、只将注意力层的前半部分设置为记忆层,即产生和关注显性记忆的层。只存储部分kv值。

  • 2、通过GQA减少kv值

  • 3、由于注意力会集中在少部分token中,因此只存储这部分的kv cache。

  • 4、通过残差量化压缩kv cache。

论文中提到最终将46T的数据压缩到了4T。

从评分上看也还不错,2.4B的模型性能堪比最强的Qwen1.5-7B

Few-shot evaluation of general abilities. The model sizes only include non-embedding parameters.


多模态RAG:ColPali

ColPali: Efficient Document Retrieval with Vision Language Models

目前文本的RAG已经有不错的成果,而图像RAG效果还有很大的提升空间。通常的图像RAG流程为:

  • 1、PDF解析器或光学字符识别(OCR)系统用于从页面中提取单词。

  • 2、运行文档布局检测模型来分割段落、标题和其他页面对象,如表格、图形和标题。

  • 3、定义一个组块策略来对具有一定语义连贯性的文本段落进行分组

但经试验发现,优化图像信息输入方法比优化文本模型的性能提升更加明显。因此提出了ViDoRe,一个新的全面的测试基准,考虑更多的视觉信息。提出了ColPali,一个新的VLM模型,纯粹以图像特征中索引相关文档。

graphrag

GitHub - microsoft/graphrag: A modular graph-based Retrieval-Augmented Generation (RAG) system

From Local to Global: A Graph RAG Approach to Query-Focused Summarization

GraphRAG: A new approach for discovery using complex information

源码解读 - 微软GraphRAG框架

通过RAG技术可以使LLM准确回答从未见过的内容。目前大多数 RAG 方法都使用向量相似度作为搜索技术。GraphRAG是微软提出来的RAG+graph框架, 使用 LLM 生成的知识图谱 ,在对复杂信息进行文档分析时显著提高问答性能。

基础RAG的缺点:

  • 基线 RAG 难以将各个点连接起来。当回答问题需要通过共享属性遍历不同的信息片段以提供新的综合见解时,就会发生这种情况。

  • 当被要求全面理解大型数据集合甚至单个大型文档中的总结语义概念时,基线 RAG 的表现不佳。 (比如让模型回答未训练过的《西游记》一书的内容,若问孙悟空被天庭封为什么官,那么RAG到相似的文档即可回答。若问西游戏整本书在讲什么,那么RAG的效果就很差,取任何chunk都没办法总结全书的内容)

From Local to Global: A Graph RAG Approach to Query-Focused Summarization

Graph RAG方法的数据流如下所示

Graph RAG pipeline


  • 1:Source Documents→Text Chunks🌹

首先,讲输入文本分割成chunk进行处理,每个chunk都传入一组LLM中,从中提取组成graph的元素。将文档分割成更长的文本可以降低LLM的调用次数。可以观察到,在chunk size为600个token的时候,从整个文档中提取到的entity references 几乎是2400token长度的两倍。虽然references 越多越好,但任何提取过程都需要平衡精度和召回率。







请到「今天看啥」查看全文