RAG技术探索

458 阅读3分钟

什么是RAG

1 RAG原理

RAG(Retrieval Augmented Generation, 检索增强生成),即LLM在回答问题或生成文本时,先会从大量文档中检索出相关的信息,然后基于这些信息生成回答或文本,从而提高预测质量。RAG模型尤其适合知识密集型的任务。

LLM vs RAG检索:

RGA.PNG

RAG 方法使得开发者不必为每一个特定的任务重新训练整个大模型,只需要外挂上知识库,即可为模型提供额外的信息输入,提高其回答的准确性。

RAG典型案例

ChatPDF

实现原理:

image.png

实现流程:

1 ChatPDF首先读取PDF文件,将其转换为可处理的文本格式,例如txt格式;
2 对提取出来的文本进行清理和标准化,例如去除特殊字符、分段、分句等;
3 使用OpenAI的Embeddings API将每个分段转换为向量,这个向量将对文本中的语义进行编码,以便于与问题的向量进行比较;
4 当用户提出问题时,ChatPDF使用OpenAI的Embeddings API将问题转换为一个向量,并与每个分段的向量进行比较,以找到最相似的分段;
5 ChatPDF将找到的最相似的分段与问题作为prompt,调用OpenAI的Completion API,让ChatGPT学习分段内容后,再回答对应的问题;
6 ChatPDF会将ChatGPT生成的答案返回给用户,完成一次查询.

BaiChuan

百川大模型的搜索增强系统融合了多个模块,包括指令意图理解、智能搜索和结果增强等组件。 该体系通过深入理解用户指令,精确驱动查询词的搜索,并结合大语言模型技术来优化模型结果生成的可靠性。通过这一系列协同作用,大模型实现了更精确、智能的模型结果回答。

Multi-modal retrieval-based LMs

RA-CM3 是一个检索增强的多模态模型,其包含了一个信息检索框架来从外部存储库中获取知识,具体来说,作者首先使用预训练的 CLIP 模型来实现一个检索器(retriever),然后使用 CM3 Transformer 架构来构成一个生成器(generator),其中检索器用来辅助模型从外部存储库中搜索有关于当前提示文本中的精确信息,然后将该信息连同文本送入到生成器中进行图像合成,这样设计的模型的准确性就会大大提高。

LeanDojo

通过检索增强进行数学证明的案例,其中 Lean是公式数学的编码语言.

image.png

实现方法

RAG 的实现主要包括三个主要步骤:数据索引、检索和生成。

数据索引

原始数据处理成为便于检索的格式(通常为embedding),该过程又可以进一步分为:

  • 数据提取
  • 分块(Chunking)
  • embedding及索引
检索

检索环节是获取有效信息的关键环节,主要包含:

  • 元数据过滤
  • 图关系检索:引入知识图谱,将实体变成node,把它们之间的关系变成relation,就可以利用知识之间的关系做更准确的回答。
  • 检索技术:相似度检索、关键词检索、SQL检索
  • 重排序:相关度、匹配度等重调整
  • 查询轮换:子查询、HyDE等;
文本生成

原始query 和检索得到的文本组合起来输入模型得到结果的过程。

参考:
zhuanlan.zhihu.com/p/661465330
mp.weixin.qq.com/s/FqyaTK2Mb… www.hopsworks.ai/dictionary/…
leandojo.org/