当前位置: 首页 > news >正文

【datawhale组队学习】RAG技术 - TASK01

教程地址:https://github.com/datawhalechina/all-in-rag/tree/main
感谢datawhale的教程和贡献者们

文章目录

  • 如何上手RAG
      • 基础工具链:
      • 四步构建最小可行系统(MVP)【 Minimum Viable Product】
        • 嵌入和向量化
    • 新手友好方案
  • 什么是RAG
    • 技术原理
    • 技术演进
  • 为什么要使用RAG
    • 解决LLM的核心局限
    • 关键优势
    • 使用场景风险分级

如何上手RAG

基础工具链:

开发框架

  • LangChain:提供预置RAG链(如rag_chain),支持快速集成LLM与向量库
  • LlamaIndex:专为知识库索引优化,简化文档分块与嵌入流程(索引:将非结构化文档(PDF/Word等)分割为片段,通过嵌入模型转换为向量数据。)

向量数据库

  • Milvus:开源高性能向量数据库
  • FAISS:轻量级向量搜索库
  • Pinecone:云服务向量数据库

四步构建最小可行系统(MVP)【 Minimum Viable Product】

  1. 数据准备
    格式支持:PDF、Word、网页文本等
    分块策略:按语义(如段落)或固定长度切分,避免信息碎片化
  2. 索引构建
    嵌入模型:选取开源模型(如text-embedding-ada-002)或微调领域专用模型
    向量化:将文本分块转换为向量存入数据库
  3. 检索优化
    混合检索:结合关键词(BM25)与语义搜索(向量相似度)提升召回率
    重排序(Rerank):用小模型筛选Top-K相关片段(如Cohere Reranker)
  4. 生成集成
    提示工程:设计模板引导LLM融合检索内容
    LLM选型:GPT、Claude、Ollama等(按成本/性能权衡)
嵌入和向量化

嵌入模型(Embedding Model)的核心作用是将文本、图像、音频等非结构化数据转换为计算机可理解的低维稠密向量(Embedding),这些向量能够捕捉原始数据的语义信息或特征,使得机器可以通过向量运算(如余弦相似度、距离计算)来理解数据间的关联。

嵌入模型是向量化的一种高级实现:所有嵌入模型的输出都是向量(即完成了向量化),但并非所有向量化都依赖嵌入模型(如 One-Hot 编码、像素矩阵等简单向量化无需模型)。核心区别在 “语义 / 特征保留”:普通向量化仅解决 “可计算性”,而嵌入模型在此基础上额外解决了 “语义 / 特征关联性”,这也是嵌入模型在 NLP、推荐系统等领域广泛应用的原因。嵌入模型生成包含语义 / 特征关联的向量,使向量运算能反映数据的内在关系。必须通过深度学习模型训练实现(如 Word2Vec、BERT、CLIP 等)。适用于需要语义理解的场景(如检索、推荐、问答、聚类)。专门设计用于捕捉关联(如 “苹果” 和 “水果” 的嵌入向量距离更近)。

  1. 语义映射
    将文本(如单词、句子、文档)转换为向量,使得语义相似的文本对应向量的余弦相似度更高。
    例如:“猫” 和 “狗” 的向量距离较近,而 “猫” 和 “汽车” 的向量距离较远。
  2. 特征提取
    从复杂数据中提取关键特征,将高维、稀疏的原始数据(如文本的 one-hot 编码)压缩为低维、稠密的向量,减少数据维度同时保留核心信息。
  3. 跨模态关联
    部分嵌入模型支持跨模态转换(如 CLIP 模型),能将文本和图像映射到同一向量空间,实现 “用文字搜索图片” 或 “用图片搜索文字”。
  4. 支撑下游任务
    生成的向量可直接用于机器学习或深度学习任务,如:
    • 文本检索(如搜索引擎、问答系统)
    • 相似度计算(如重复内容检测)
    • 分类与聚类(如文本情感分析、用户分群)
    • 推荐系统(如基于内容的商品推荐)

新手友好方案

LangChain4j Easy RAG:仅需上传文档,自动处理索引与检索
FastGPT:开源知识库平台,可视化配置RAG流程
GitHub模板:如"TinyRAG"项目,提供完整代码 tinyrag地址

进阶方向:
检索质量:上下文相关性(Context Relevance)
生成质量:答案忠实度(Faithfulness)、事实准确性
性能优化:
索引分层:对高频数据启用缓存机制
多模态扩展:支持图像/表格检索

什么是RAG

融合信息检索与文本生成的技术范式。其核心逻辑是:在大型语言模型(LLM)生成文本前,先通过检索机制从外部知识库中动态获取相关信息,并将检索结果融入生成过程,从而提升输出的准确性和时效性

在LLM生成文本之前,先从外部知识库中检索相关信息,作为上下文辅助生成更准确的回答。

技术原理

双阶段架构:
在这里插入图片描述
关键组件:

  • 索引:将非结构化文档(PDF/Word等)分割为片段,通过嵌入模型转换为向量数据。

  • 检索:基于查询语义,从向量数据库召回最相关的文档片段(Context)。

  • 生成:将检索结果作为上下文输入LLM,生成自然语言响应。

技术演进

  • 初级RAG

    • 基础“索引-检索-生成”流程
    • 简单文档分块
    • 基本向量检索机制
  • 高级RAG

    • 增加数据清洗流程
    • 元数据优化
    • 多轮检索策略
    • 提升准确性和效率
  • 模块化RAG

    • 灵活集成搜索引擎
    • 强化学习优化
    • 知识图谱增强
    • 支持复杂业务场景

在这里插入图片描述

为什么要使用RAG

解决LLM的核心局限

问题RAG的解决方案
静态知识局限实时检索外部知识库,支持动态更新
幻觉(Hallucination)基于检索内容生成,错误率降低
领域专业性不足引入领域特定知识库(如医疗/法律)
数据隐私风险本地化部署知识库,避免敏感数据泄露

关键优势

准确性提升

  • 知识基础扩展
  • 降低幻觉现象
  • 可溯源引用
    实时性保障
    动态知识更新,减少时滞性
    成本效益
  • 避免频繁微调
  • 降低推理成本
  • 资源消耗优化
  • 快速适应变化
    可扩展性
  • 多源集成
  • 模块化设计

使用场景风险分级

在这里插入图片描述

http://www.dtcms.com/a/337646.html

相关文章:

  • SQLsever基本操作
  • 可实时交互的AI生成世界,腾讯发布的AI框架Yan
  • keil报错:ERROR :FILE DOES NOT EXIST
  • SAP ERP移动类型 MovementType (|MM|SD|PP|FICO)
  • STL库——string(类函数学习)
  • Lucene 8.5.0 的 `.pos` 文件**逻辑结构**
  • Mybatis执行sql流程(二)之加载Mapper
  • SQL详细语法教程(六)存储+索引
  • 高效长尾关键词SEO优化
  • 汽车企业顾客满意度调查:全周期反馈解码方案(市场调研实践)
  • Redis 哨兵模式与主从架构对比
  • 江苏单电感M401A-晶晨S905L3A_频率1.5ghz赫兹_2+16G_安卓9_线刷固件包
  • iOS 应用上架全流程实践,从开发内测到正式发布的多工具组合方案
  • 决策树-信息增益(第二十三节课内容总结)
  • 上网行为安全管理与组网方案
  • 第四十天(Vue)
  • 【VUE】解决Vue路由重复导航报错
  • 嵌入式软件开发笔试题练习
  • 微算法科技(NASDAQ: MLGO)研究分片技术:重塑区块链可扩展性新范式
  • 智能代码助手革新开发效率
  • 【VUE】用EmailJS自动发送邮件到网易邮箱
  • JVM学习笔记-----类加载
  • 【深度学习4】神经网络-激活函数
  • 最短路spfa和多层图(P1073 [NOIP 2009 提高组] 最优贸易)题解
  • Linux系统等保三级安全加固执行手册(ReahtCentosKylin)
  • mq存量消息如何处理
  • STM32G4 Park及反Park变换(一)matlab建模
  • Spark 运行流程核心组件(三)任务执行
  • C语言基础:变量与进制详解
  • 直播美颜SDK架构揭秘:动态贴纸功能的实现原理与性能优化