人工智能领域--RAG技术

今天带大家来学习一下RAG技术,尤其在在大模型中应用广泛。

人工智能领域--RAG技术_第1张图片

一.RAG(Retrieval Augmented Generation)检索增强生成

        RAG,即Retrieval-Augmented Generation(检索增强的生成),是一种结合了检索(Retrieval)和生成(Generation)机制的人工智能技术,常用于提升自然语言处理(NLP)任务的性能,尤其是在问答系统、文本摘要、对话系统等领域。

简述RAG技术的几个关键点:

  1. 检索组件:RAG模型包含一个检索组件,通常使用向量检索技术(如FAISS或Annoy库)来从大规模的文档集合中快速检索出与输入查询最相关的文档或文档片段。

  2. 上下文融合:检索到的相关文档片段被用作上下文信息,与原始查询一起输入到生成组件。

  3. 生成组件:生成组件通常是一个预训练的语言模型,如T5、GPT等,它能够根据融合了检索信息的上下文生成回答或续写文本。

  4. 端到端优化:RAG模型通过端到端的方式进行训练,即同时优化检索组件和生成组件,以提高整体性能。

  5. 灵活性和扩展性:RAG模型可以根据不同的任务需求进行定制和扩展,例如通过微调语言模型来适应特定的问答领域。

  6. 减少对预训练数据的依赖:与传统的纯生成模型相比,RAG模型可以减少对大规模预训练数据的依赖,因为它能够利用检索到的外部知识来增强生成能力。

  7. 提高准确性和丰富性:通过结合检索到的相关信息,RAG模型能够生成更加准确、丰富和相关的输出。

RAG技术的核心优势在于它结合了检索系统的快速定位能力和生成模型的灵活生成能力,从而在处理需要广泛知识背景和深度理解的任务时表现出色。

        现在大模型遇到的问题:

        1.实时更新信息,无法使用

        2.训练成本极高,并且效果预期不明朗

        3.垂直领域

       

二.基础架构 

        大模型:聪明,推理能力强,但是知识欠缺

        知识库:辅助记忆力,人类历史遗留下来的

        人工智能 = 推理能力 + 记忆力 

        简单看一下整个流程

        简单来说,就是我们用户的问题进过模型转为向量矩阵,还有我们的知识文本也进过Embedding模型去转为向量矩阵。接着进入向量库,又知识库进行检索和整改得出最终结果,最后将整合的结果返回给用户。

人工智能领域--RAG技术_第2张图片

三.难点

        难点:文本数据 大模型的辅助记忆力

        为什么这么艰难呢?

        1.文档种类多

        有ppt、word、excel、pdf等格式的文档,需要不同的方式要去理解。

        

        2.切分方式(为什么切分,大模型的输入长度有限)

        段落(常见)、句子、Token、知识点

        3.内部知识的特殊性

四.向量检索(基础篇)


        检索技术recall

相似度检索:包括欧氏距离、曼哈顿距离、余弦等
关键词检索:tf-idf
SQL检索:更加传统的检索算法。

        重排序(Rerank)

        相关度、匹配度等因素做一些重新调整,得到更符合业务场景的排序。
        用户的问题找到对应的知识 

五.向量检索 (高级篇)


        图关系检索

        即引入知识图谱,将实体变成node,把它们之间的关系变成relation,就可以利用知识之间的关系做更准确的回答。特别是针对一些多跳问题,利用图数据索引会让检索的相关度变得更高。


        子查询

        可以在不同的场景中使用各种查询策略,比如可以使用Llamalndex等框架提供的查询器,
采用树查询(从叶子结点,一步步查询,合并),采用向量查询,或者最原始的顺序查询chunks等;

        还有树索引、关键词索引、知识图谱索引(构建成本很高)。

        一般来说树索引、关键词索引就可以了。

向量检索 (高级篇)
        HyDE:这是一种抄作业的方式. 生成相似的或者更标准的 prompt 模板。
step1:用LLM根据用户query生成k个“假答案"。
假答案:单纯的大模型对query的理解
step2:利用向量化模型,将生成的k的假答案和用户的query变成向量。
step3:根据如下公式,将k+1个向量取平均
人工智能领域--RAG技术_第3张图片
step4:利用融合向量v从文档库中召回答案。融合向量中既有用户问题的
信息,也有想要答案的模式信息,可以增强召回效果。 

你可能感兴趣的:(机器学习,人工智能,python,学习,算法)