RAG通识

Posted on 2025-11-24 11:30  吾以观复  阅读(0)  评论(0)    收藏  举报

关联知识库:RAG通识

起源:Meta发布RAG论文

2020年,Meta发布 Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks

https://arxiv.org/abs/2005.11401

why RAG?

  • 数据滞后
  • 企业知识库向量化,提供特定上下文的大模型增强搜索

定义

将结构化知识的精准性与生成式AI的创造力相结合。

搜索发展历程

  • 精确匹配 与或非 / 全文搜索
  • NLP自然语言处理 CNN,RNN (Transfomer架构之前)
  • Transfomer架构构建的LLM和RAG结合搜索实现:

实现思路 LLM+动态数据源

  • 检索阶段 从外部数据源检索与用户查询相关信息 【语义向量搜索】数据前置处理
    外部数据源:API,数据库,文档库等等

  • 生成阶段
    将检索信息和用户promot一起输入大模型,生成增强的回答。

模块化RAG —— 工程化

  • 搜索模块 在不同的数据源上搜索

技术栈

LangChain

  • 模块化设计,提供构建动态信息检索的组件

LammaIndex

  • 提供高效索引机制

RAG挑战

  • 数据隐私和安全
  • 系统性能
  • 多样化查询需求产生的查询路由功能 (似乎有点往agent上靠了)
  • 数据审计和监控

Embedding 向量化

计算多个向量之间的相似度并排序

  • 余弦相似度,向量夹角越小越相似

1 完全相同
0 没有相似性
-1 完全相反

数据索引和检索

索引

  • 倒排索引,全文检索
  • B树索引
  • 哈希索引

检索

  • 布尔模型

  • 向量检索

    • 余弦相似度
  • 概率模型(BM25 + 语言模型)

  • 神经网络模型agent开发指数

  • 相似度计算(向量模型和神经网络模型的实例化)

    • 余弦相似度 向量夹角越小越相似
    • 欧式距离:向量实际值
    • 点积 点积值越大越相似

技术实现

  • ElasticSearch
  • Annoy 向量化数据快速搜索
  • FAISS 为大规模向量数据设计 支持GPU加速

Transfomer自注意力机制

  • 输入嵌入(输入向量化)
  • 线性变换,得到查询,键,值三个向量
  • 注意力得分计算 计算查询向量和键向量的点积,得到注意力的得分(表示当前词对其他词的相关性)
  • 注意力权重计算

RAG工作范式

  • 朴素RAG 描述了RAG工作流程的基础框架
  1. 文档库向量化
  2. 根据查询条件向量化检索文档库
  3. 将查询和检索结果扔给大模型
  • 进阶RAG 基于朴素RAG的优化
  1. 文档向量化的精细控制 (分割策略,编码方法) 最佳实践?
  2. 检索前的用户查询优化(自动优化用户promot) + 检索后的文档重排序(权重机制 ,评分模型)当前最佳实践?
  3. 结果校验(生成内容语义一致性和事实准确性校验)
  • 模块化RAG
  1. 专用查询向量数据库 我怎么觉得这是基本条件呢?
  2. 回答融合,使用多个模型或多次回答,最终融合结果,适用于多角度解答和多源信息场景
  3. 微调 , 强化学习 (底层大模型的定制化)
  4. RAG模式编排,适用不同场景

RAG优势

  • 动态知识库更新
  • 专业性(eg:医学领域,结合最新的研究论文,临床指南,药品说明书,提供更加科学可信的建议,提升回答质量,增强用户对系统的信任感)

RAG应用场景

  • 基于规则的客户服务 到 RAG增强的客户服务 (动态检索知识库,产品手册,常见问题问答)

检索系统横评

基于知识图谱 wikidata, dbpedia
基于关系型数据库
基于向量数据库

向量数据量横评

es 生态

faiss gpu 多索引

milvus gpu 多索引 多模态友好 ai生态(langchain, llamaindex, hugging face)

嵌入模型选型

MTEB

  • 性能与资源消耗
  • 多语言
  • 本地部署/云托管