RAG技术与应用---0426

news2025/4/27 8:16:41

大语言模型>=3.10

课程中会用到python 工具箱:

faiss,modelscope,langchain,langchain_community,PyPDF2

1)大模型应用开发的三种模式

提示词没多少工作量,微调又花费时间费用,RAG是很多公司招聘用来对LLM进行应用开发的

 什么是RAG 

RAG(Retrieval-Augmented Generation):

检索增强生成,是一种结合信息检索(Retrieval)和文本生成(Generation)的技术

RAG技术通过实时检索相关文档或信息,并将其作为上下文输入到生成模型中,从而提高生成结果的时效性和准确性

RAG的优势是什么?

解决知识时效性问题:大模型的训练数据通常是静止的,无法涵盖最新信息,而RAG可以搜索外部知识库实时更新信息。

减少模型幻觉:通过引入外部知识,RAG能够减少模型生成虚假或不准确内容的可能性

提升专业领域回答质量:RAG能够结合垂直领域的专业知识库,生成更专业深度的回答

2)RAG的核心原理与流程

Step1,数据预处理

知识库构建:收集并整理文档,网页,数据库等多源数据,构建外部知识库
文档分块:将文档切分为适当大小的片段(chunk),以便后续检索。分块策略需要在语义完整性与检索效率之间取得平衡
向量化处理:使用嵌入模型(如BGE,M3E,Chinese-AIpaca-2)将文本块转为向量,并存储在向量数据库中

Step2,检索阶段

查询处理:将用户输入的问题转换为向量,并在向量数据库中进行相似度检索,找到最相关的文本片段
重排序:对检索结果进行相关性排序,选择最相关的片段作为生成阶段的输入

Step3,生成阶段

上下文组装:将检索到的文本片段与用户问题结合,形成增强的上下文输入
生成回答:大语言模型基于增强的上下文生成最终回答

Q1企业原始知识整理有什么特殊的格式吗?比如统一知识文档格式啥的
对于AI来说,Markdown是最友好的格式
        如果想要将PPT转化为Markdown,
        1)对PPT里面的内容进行extract
        2)对抽取出来的内容 放到Markdown中
        如果是图像 =>使用 Qwen-VL进行理解
Q2知识是存储在向量库还是其他库
向量数据库=>原文,embedding(相似度检索,找到最优价值的chunks)
Q3 原始文档切分chunk怎么做
        a)指定规则,比如chunk size = 1000,overlap =10%,包含句子,标定
        b)语义上的切分
        c)对数据质量提升,和文档总结还需要多关注

NativeRAG

NoteBookLM使用(推荐工具)

需要在外网使用,https://notebooklm.google.com/

现成RAG产品 Cherry Studio,ima compilot,notebooklm ,钉钉助理很像coze
 

Embedding模型选择

Embedding嵌入向量中表达方式
Q1:Embedding模型选择:huggingface有打榜排名(开源和闭源)
Q2:在哪里找到embedding模型:https//modelscope.cn/

偏向知识类

偏向指令驱动和复杂任务模型

BGM3,Qwen不错,Jina适合端侧推理

Q1)在modescope下载很快

Q2)用户的Query指令:
1)instruction指令
2)知识
多模态的embedding
Q3)知识分为2阶段
在向量数据库中,可以有2个阶段
1)召回:快速采用多种策略进行粗筛过程,策略1基于关键词匹配100,策略2基于相似策略匹配
2)重排
向量数据库中保存的chunk可能会有1000万个=>召回快速筛出1000个=>重排序Top10

CASE:DeepSeek+Faiss搭建本地知识库检索

# 创建文本分割器,用于将长文本分割成小块
text_splitter =RecursiveCharacterTextSplitter(
        separators=["\n\n","\n"," "],
        chunk size=1000,#chunk大小的上限
        chunk_overlap=200,#每个chunk之间重叠的比例
        length function=len,

读取pdf然后用分割函数进行分隔,再从文本块创建知识库放入knowledge =FAISS.from_texts(chunks,embeddings)中,后面process_text_splitter 处理文本并创建向量存储
用langchai回答提示词promt的query

总结:
chatpdf- faiss代码中,使用2个模型
1)推理模型 qwen-turbo
2)Embedding模型text-embedding-v1

chunk策略:
        chunk_size =1000, overlap = 200,分割是按照标定符号进行分割(句号,换行)
        docs = knowledgeBase.similarity_search(query)
为什么要分块:
        如果不分块,整个文件作为一个基本单元,那么文件里面的内容会比较多=>3072维的向量中不清晰
chunks是原文,chunk_embedding 3072维

可以进行新增知识库软件
        1)扣子 coze软件 ,
        上传文件,
        创建设置:文档解析,分段策略,分段层级,配置存储
        数据解析
        2)Dify开源
        3)LangChain实现了qa_chain,可以用fassis做向量数据库
 

知识库回答不了的,再调用推理模型吗?
知识库的作用是上下文,可能上下文中没有用户提到的问题,可以在prompt中说明,是否让LLM自己来进行回答,如果llm中没有相关知识,rag是不是就没有效果了。

LangChain中的问答链

RAG的意义 

RAG 是一种Filter过滤,检索过程透明(根据参考文献)

RAG常见问题--如何提升RAG质量

rag 准备阶段---检索阶段---生成阶段

layoutLM和layoutLLM

改进词提示模板

1)人工规则=>针对常见的Query,但是能设置的规则有限
2)LLM自己来思考

通过think=>优化了用户的提示词,让回答质量回答很高

RAG和Chunk关联是什么-->RAG 知识检索系统,chunk分块,是知识的最小单位
向量数据库是存储在本地文件夹下:knowledgeBase.save_local('./faiss-1')

如果文档里,有文字和图片,怎么保证图片跟相关文字不会拆成2个chunk呢?
如果PDF中有图片,需要先做预处理(将图片转化为文本),=>转化为全部文本
再做chunk(chunk_size =1000,overlap = 100)

总结=>概要级的

        LangChain更灵活,个性化 dify更方便
不同的维度向量能计算相似度吗?还是会补充维度
        需要变成统一维度
向量数据库和embedding模型是什么关系
        向量数据库是一个软件,存储了很多chunk的embedding,给你提供了save,load,find_similarity的接口
        embedding是一种向量格式
LLM可以兼容RAG吗.rag的优势怎么集成在LLM中
        LLM(推理引擎)+RAG(外挂知识库)

私有化RAG用来数据安全性,如果知识来自于网络,用notebookLM是方便的(Gemini-embedding,Gemini2.5,召回和重拍的策略,以及对每篇文章做了预处理:文档的概览+关键词)
质量好=>开发工作少不了,使用开源Qwent-Agent=>RAG 质量不错的,但是会用token换取质量高

Thinking:个人想构建知识库,用于教学,资料主要是PPT,Word,Excel和PDF,如何低成本构建,并且可以保护知识产权?
先试试Qwen-Agent(效果还不错,而且是开源的)
Thinking:
结构化的数据可以用Qwen-Agent吗,免得做传统的SQL开发
Text2SOL.可以在Qwen-Agent中设置 Tool,Qwen-Agent不光是可以用于RAG,还可以让AI Agent
调用各种Tool,针对结构化的数据可以使用Text2SQL工具

Thinking:如果QWEN-AGENT非常的成熟的话,简单易做,那我们学RAG如何体现出我们自己的价值现阶段 没有很成熟的RAG系统
Qwen-Agent只是一种Agent框架,(集成了一部分 RAG的策略,召回、重排、以及生成的策略)
=>Qwen-Agent 回答质量还可以(比钉钉助理略好),但是不如 notebookLM自己使用Qwen-Agent的话,也可以加很多其他的策略,比如对数据的预处理

(开源)LayoutLM=>LayoutLLM=>进行提问和理解=>整理出来PDF和PPT理解,用于完善对应的知识markdown

Thinking:知识图谱和知识库有什么区别
        知识图谱 是用Graph的方式,将知识链接起来。map=node,edge
        我们就可以在知识图谱上,对知识进行计算,比如姚明的女儿的身高是多少?
        chunk1:姚明的女儿叫 ABC
        chunk2: ABC的身高是多少

Thinking:cherry studio和qwen-agent哪个RAG策略好?
        cherry studio本身是个套壳产品,只是链接各种工具(LLM,MCP,RAG知识库)
        qwen-agent:开源的框架,提供了一些tool,提供一些RAG策略

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2343896.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

element-ui多个form同时验证,以及动态循环表单注意事项

多个form同时验证: validateForm(refs) {if (!refs) {return false}return new Promise((resolve, reject) > {refs.validate().then((valid) > {resolve(valid)}).catch((val) > {resolve(false)})}) }, async handleConfirm() {Promise.all([this.valid…

k8s学习记录(四):节点亲和性

一、前言 在上一篇文章里,我们了解了 Pod 中的nodeName和nodeSelector这两个属性,通过它们能够指定 Pod 调度到哪个 Node 上。今天,我们将进一步深入探索 Pod 相关知识。这部分内容不仅信息量较大,理解起来也有一定难度&#xff0…

文本预处理(NLTK)

1. 自然语言处理基础概念 1.1 什么是自然语言处理 自然语言处理( Natural Language Processing, NLP)是计算机科学领域与人工智能领域中的一个重要方向。它研究能实现人与计算机之间用自然语言进行有效通信的各种理论和方法。自然语言处理是一门融语言学、计算机科学、数学于…

Neo4j 可观测性最佳实践

Neo4j 介绍 Neo4j 是一款领先的图数据库管理系统,采用图数据模型来表示和存储数据。它以节点、关系和属性的形式组织数据,节点代表实体,关系表示节点间的连接,属性则为节点和关系附加信息。Neo4j 使用 Cypher 查询语言&#xff0…

【教程】Windows通过网线共享网络给其它设备

转载请注明出处:小锋学长生活大爆炸[xfxuezhagn.cn] 如果本文帮助到了你,欢迎[点赞、收藏、关注]哦~ 1、打开“控制面板”。 2、点击“网络和共享中心”。 3、点击“更改适配器设置”。 4、选中要共享的网络适配器,右击选中“属性”。 5、勾选…

百度AI开发者大会:连发多款AI应用,覆盖AI数字人等热门赛道

4月25日,Create2025百度AI开发者大会在武汉隆重举办。百度创始人李彦宏发表了题为《模型的世界 应用的天下》的演讲。60分钟的演讲中,李彦宏发布了两大模型,多款热门AI应用,并宣布将帮助开发者全面拥抱MCP。 当天发布的文心大模型…

Java 线程的六种状态与完整生命周期详解

🚀 Java 线程的几种状态详解 在 Java 中,线程状态(Thread State)是由 Thread.State 枚举定义的,总共有六种: 状态含义典型场景示例NEW新建状态,线程对象刚创建,还未调用 start() 方…

05--Altium Designer(AD)的详细安装

一、软件的下载 Altium Designer官网下载 1、临近五一的假期,想着搞个项目,且这个项目与PCB有关系,所以就下这个软件来玩玩。下面保姆级教大家安装。 2、选择适合自己的版本下载(我安装的是24的) 3、软件安装 1.下…

Java 队列与阻塞队列全面解析:从 Queue 到 TransferQueue 的实现与应用

文章目录 Queue队列QueueDeque 阻塞队列BlockingQueueArrayBlockingQueueLinkedBlockingQueuePriorityBlockingQueueSynchronousQueueDelayQueue BlockingDequeLinkedBlockingDeque TransferQueueLinkedTransferQueue Queue Queue(队列)是一种特殊的线性…

【蓝桥杯省赛真题56】Scratch抓不住的蜜蜂 蓝桥杯scratch图形化编程 中小学生蓝桥杯省赛真题讲解

目录 scratch抓不住的蜜蜂 一、题目要求 1、准备工作 2、功能实现 二、案例分析 1、角色分析 2、背景分析 3、前期准备 三、解题思路 四、程序编写 五、考点分析 六、推荐资料 1、scratch资料 2、python资料 3、C++资料 scratch抓不住的蜜蜂 第十五届青少年蓝桥…

《TCP/IP详解 卷1:协议》之第七、八章:Ping Traceroute

目录 一、ICMP回显请求和回显应答 1、ICMP回显请求 2、ICMP回显应答 二、ARP高速缓存 三、IP记录路由选项(Record Route,RR) 1、记录路由选项的工作过程 2、RR 选项的 IP 头部格式 2.1、RR 请求 2.2、RR响应 四、ping 的去返路径 五…

NtripShare 2025第一季度主要技术进展

GNSS方面 1、开源GNSS接收机配置软件基础版本。 2、商业版本GNSS接收机配置软件,增加PPP、文件保存、前端解算(静态、RTK-Static),前端坐标转换。 3、GNSS接收机配置软件全面适配米尔T133i硬件方案。 视觉检测方面 1、做出第…

头歌实训之存储过程、函数与触发器

🌟 各位看官好,我是maomi_9526! 🌍 种一棵树最好是十年前,其次是现在! 🚀 今天来学习C语言的相关知识。 👍 如果觉得这篇文章有帮助,欢迎您一键三连,分享给更…

【华为】防火墙双击热备-之-主备模式-单外网线路-分享

FW1和FW2的业务接口都工作在三层,上行连接二层交换机。上行交换机连接运营商的接入点,运营商为企业分配的IP地址为100.100.100.2。现在希望FW1和FW2以主备备份方式工作。正常情况下,流量通过FW1转发;当FW1出现故障时,流…

川翔云电脑32G大显存集群机器上线!

川翔云电脑今日重磅推出32G 大显存机型,为游戏玩家、设计师、AI 开发者等提供极致云端算力体验! 一、两大核心配置,突破性能天花板 ✅ 32G 超大显存机型 行业领先:搭载 NVIDIA 专业显卡,单卡可分配 32G 独立显存&am…

加里·基尔代尔:CP/M之父与个人计算时代的先驱

名人说:路漫漫其修远兮,吾将上下而求索。—— 屈原《离骚》 创作者:Code_流苏(CSDN)(一个喜欢古诗词和编程的Coder😊) 加里基尔代尔:CP/M之父与个人计算时代的先驱 一、早年生活与教育背景 1.…

静态多态和动态多态的区别

C多态机制深度解析 多态是面向对象编程的核心特性,允许通过统一接口执行不同实现。在C中,多态表现为基类指针或引用调用虚函数时,根据实际对象类型执行对应派生类的函数逻辑。 基础实现示例 定义基类与派生类,演示动态绑定…

Burp靶场JWT学习笔记1

JWT(JSON Web Token) 从其名字就可以看出来,它具有表示身份的作用,其本质是将用户信息储存到一串json字符串中再将其编码得到一串token JWT由三部分组成,分别是 Header,Payload,Signatrue JWTBase64(Header).Base6…

C++?类和对象(下)!!!

一、前言 在之前我们已经讨论过了有关类和对象的前置知识以及类中的六大默认成员函数,在本期我们继续再讨论类和对象中剩余的友元、初始化列表等相关知识,如果需要再了解之前的知识的话,链接奉上:C?类和对象&#xff0…

FastAPI 零基础入门指南:10 分钟搭建高性能 API

一、为什么选择 FastAPI? 想象一下,用 Python 写 API 可以像搭积木一样简单,同时还能拥有媲美 Go 语言的性能,这个框架凭借三大核心优势迅速风靡全球: 开发效率提升 3 倍:类型注解 自动文档,…