RAG的基础认识
RAG(检索增强生成)技术通过结合信息检索与语言模型生成能力,解决大模型知识过时和"幻觉"问题。其工作流程分为检索和生成两阶段:首先将用户问题转换为向量并在知识库中检索相关文档,然后将检索结果与问题一起输入语言模型生成答案。核心组件包括文档加载器、嵌入模型、检索器、大语言模型和提示模板,通过语义向量转换实现智能检索。RAG技术让AI具备"查资料"能力,基于最
RAG(Retrieval-Augmented Generation,检索增强生成) 是一种结合信息检索与大语言模型生成能力的技术框架,旨在让 AI 在回答问题时,基于真实、最新、特定领域的外部知识,而非仅依赖其训练时学到的静态参数知识。因为现在的知识更新迭代很快的,每天都有成千上万个人在网络上发问或者发布东西,当初用于训练ai的知识可能早已过时,想象一下,你请了一位学识渊博的老教授做顾问。他记忆力惊人,几乎无所不知——但仅限于他读书时学到的知识。2021年之后的事情?他只能摇摇头:"这个我不太清楚。"
这就是今天大多数大语言模型的真实写照。它们拥有海量的预训练知识,但知识截止日期一过,就变成了"老学究"。更麻烦的是,当被问到不知道的事情时,它们可能不会诚实地说"我不懂",而是开始编造听起来很专业的谎话——这叫做"幻觉"。
所以RAG就可以解决这个问题。
---------------------------------------------------------------------------------------------------------------------------------
一、RAG是啥
RAG的全称是Retrieval-Augmented Generation,中文叫"检索增强生成"。名字听起来很技术,但理念非常直观:让AI在回答问题前,先学会"查资料"。
让我用一个比喻来解释:
普通的AI对话,就像让学生闭卷考试。问题来了,只能从自己的记忆中搜索答案。记对了得分,记错了丢分,没见过的问题只能瞎猜。
而RAG系统,就像让学生开卷考试。遇到问题,先允许他去图书馆查相关资料,然后基于查到的资料写出答案。他不需要记住所有知识,只需要知道如何查找和理解信息。
二、RAG如何发挥作用
基本结构(两阶段流程):
1.检索阶段(Retrieval)
当用户提出问题时,系统首先从外部知识库(如文档、数据库、企业知识库等)中检索与问题最相关的若干片段(称为“上下文”或“证据”)。检索通常使用向量数据库 + 嵌入模型(Embedding Model)实现语义搜索。
2.生成阶段(Generation)
将用户问题 + 检索到的相关文档片段一起作为提示(Prompt)输入给大语言模型(LLM)。LLM 基于这些实时、可信的上下文生成答案,并可引用来源。
其实就是先建立知识库,它不是简单地将你喂给它的文档存储为文字,而是转换成数学向量,以便于后期检索,第二步就是在用户提问时去此知识库里检索,会把用户问题转换为向量,检索知识库里与此向量最相近的反馈给用户,也就是最后一步--->生成答案。
三、啥是什么是向量表示(Embeddings)
上面提到一个名词:向量,他是啥?
3.1
向量表示(Embeddings) 是将离散的符号信息(如图像、文档等)转换为连续的数值向量的技术。它是现代人工智能,尤其是自然语言处理(NLP)、计算机视觉和推荐系统的核心基础。
说白了,人类可能知道小猫是什么,长什么样子,虽然ai也能识别哪个是猫,但是它们思考的方式跟人类不一样,它们只能处理数字。
Embedding就让语义相近的东西,在向量空间中距离也近:
向量("国王") - 向量("男人") + 向量("女人") ≈ 向量("女王")
所以ai识别出猫的过程类似于:将图片/文字中的信息转换为向量-----去知识库中找和此向量最最相近的向量-----将此向量作为答案输出给用户
3.2向量数据库
知识库和向量数据库:一个是图书馆,一个是智能检索系统
知识库就像整座图书馆建筑,里面收藏着所有的书籍、期刊、文档,向量数据库不是另一个图书馆,而是图书馆里那位最懂书的智能检索员,上面说到的向量都存储在这里,俩库各司其职,分工明确。
3.3混合检索与RAG-Fusion
长话短说,普通检索各有缺点,混合检索能更好地取各自的精华而融之。RAG-Fusion通过大语言模型(LLM)将原始查询“扩展”为多个视角的子查询,分别检索后再融合结果,提升召回多样性与深度。
四、RAG的五大核心组件
4.1文档加载器
它的工作是从各种地方获取原始资料
用工具从文档中提取文本并将其清洗分块成语义完整的chunks。
4.2嵌入模型
Embedding使用嵌入模型(如 BGE, text-embedding-ada-002)将每个文本块转为高维向量.
比如它把"苹果很好吃"和"苹果是一种水果"这两句话,转换成两个数学向量。在向量空间里,这两个向量的距离会很近,因为它们都关于"苹果"这个主题。而"汽车"这个向量的位置就会离得很远。
这种转换的妙处在于,它捕捉的是语义,不是字面。即使两句话没有一个相同的词,只要意思相近,它们的向量就会靠近。比如"如何重置密码"和"忘记密码怎么办",虽然用词不同,但向量会很相似。
4.3检索器
将 query 用相同 embedding 模型转为向量;在向量库中搜索向量最相似的文本块
这个组件需要平衡召回率和精确率。召回率太低,可能漏掉重要信息;精确率太低,会混入无关信息,干扰AI判断。好的检索器就像一位经验丰富的侦探,既不会漏掉关键线索,也不会被无关信息误导。
4.4大语言模型
这是团队的最终输出者。他接收检索器提供的相关资料和用户的原始问题,然后生成回答。这个组件最怕的是"幻觉"——当资料不足时开始编造听起来合理但实际上错误的信息。好的RAG系统会通过Prompt工程给AI明确的指令:"请严格基于提供的资料回答,不要添加资料之外的信息。"
- 本地:Qwen、Llama3(通过 Ollama/vLLM)
- 云端:GPT-4、通义千问、Claude
4.5Prompt模板
使用清晰的结构:背景 + 任务 + 要求 + 格式
-
"(背景)这是我能给你的相关资料:xxxxxxx"
-
"(任务)这是用户问题:xxxxxxxxx"
-
"请基于资料回答问题,以表格形式输出(格式),不要乱编(要求)"
-
"如果资料不够,请说明"
更多推荐


所有评论(0)