首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >理解 RAG:大模型的外部记忆系统是如何工作的

理解 RAG:大模型的外部记忆系统是如何工作的

作者头像
JanYork_简昀
发布2025-11-13 19:04:29
发布2025-11-13 19:04:29
820
举报

概览

RAG(Retrieval-Augmented Generation,检索增强生成)已经成为现代大语言模型(LLM)生态中最核心的技术之一。 无论是企业知识问答、智能客服,还是 Agent 记忆系统,几乎都离不开它的支持。

本文将系统介绍 RAG 的:

  • 历史与发展脉络
  • 原理与关键技术(包括“向量”的通俗解释)
  • 与传统检索技术(倒排索引、图索引)的区别
  • 在 LLM 记忆体系中的角色与局限
  • 常见的向量模型、组件与开源框架
  • 以及 RAG 的进化方向 —— 以 长期记忆系统为代表的"主动记忆系统"

RAG 的起源与发展

RAG 的概念最早出现在 Facebook AI(Meta AI) 2020 年的论文:

Lewis et al., “Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks” (2020)

他们提出:

大语言模型(如 GPT)在知识密集型任务上存在瓶颈 —— 模型参数无法覆盖所有外部知识,且训练数据存在时间限制,导致"幻觉(hallucination)"。

于是,研究者设计了一个混合架构:

  • 模型内部:负责理解、生成自然语言;
  • 模型外部:提供动态可更新的知识检索。

这就是 Retrieval-Augmented Generation(检索增强生成) 的雏形。

RAG 之所以重要,在于它让模型:

  • 拥有“外部记忆”(External Memory);
  • 可以实时访问新知识;
  • 在不重新训练的情况下获得信息更新。

什么是 RAG?

从结构上看,RAG 是这样一个流程:

查询问题 → 检索相关资料 → 将检索内容输入模型 → 模型生成最终回答

可以理解成:

“模型写作文前,先去查一查百度 / 知乎 / 公司文档。”


向量(Vector)是什么?

传统搜索靠“关键词匹配”; RAG 则靠“语义相似度”。

要实现语义搜索,文本必须变成模型能理解的“数字表示”:

也就是 向量(Vector)

举个例子:

文本

向量表示(简化)

"猫"

[0.21, 0.98, 0.13]

"狗"

[0.25, 0.91, 0.10]

"冰箱"

[0.02, 0.01, 0.95]

“猫”和“狗”的向量距离很近,因为它们语义相似; “冰箱”距离远,因为语义差别大。

这种向量化的过程由 Embedding 模型 实现。


RAG 的基本原理

RAG 的核心流程分为四步:

代码语言:javascript
复制
用户问题
   ↓
[1] 向量化(Embedding)
   ↓
[2] 检索(Retrieval)
   ↓
[3] 增强(Augmentation)
   ↓
[4] 生成(Generation)

1. 向量化(Embedding)

将查询(query)和知识库(documents)转化为高维向量。 常见模型包括:

  • OpenAI text-embedding-3-large
  • Cohere Embeddings
  • BAAI bge-large
  • Sentence-BERT(sentence-transformers)

2. 检索(Retrieval)

在向量空间中寻找"最相似"的内容。 常见实现:FAISSMilvusPGVector 等向量数据库。

语义相似度计算方式通常是 cosine similarity(余弦相似度),也可以使用点积(dot product)或欧氏距离(Euclidean distance)。


3. 增强(Augmentation)

把检索到的文档拼接进 prompt(提示词)中,例如:

代码语言:javascript
复制
问题:什么是RAG?
检索到的资料:
[RAG是一种结合检索与生成的技术,用于增强LLM知识能力。]
模型输入:
请根据以下资料回答问题:……

4. 生成(Generation)

LLM 在增强后的上下文中进行推理和生成回答。 这一步通常由 GPT-4、Claude、Gemini 等商业模型,或 LLaMA、Mistral 等开源模型负责。


不同数据类型的向量化方式

数据类型

向量化方式

示例模型

文本

文本嵌入(Text Embedding)

OpenAI Embeddings、BAAI bge、Sentence-BERT

图片

图像嵌入(Image Embedding)

CLIP、BLIP、ViT

音频

声学特征提取

Whisper、Wav2Vec

视频

帧特征 + 时间序列向量

CLIP + Temporal Encoder

结构化数据

模型生成描述后嵌入

“title + summary” 组合

这些不同模态的 embedding,可以统一存入一个多模态向量数据库中(如 Milvus、Weaviate)。


RAG 与传统检索的区别

技术

原理

优点

缺点

倒排索引(Inverted Index)

分词 + 精确匹配

快、准、可控

不理解语义

图索引(Graph Index)

基于关系节点跳转

擅长结构化数据

构建复杂

向量检索(Vector Search)

语义相似度搜索

语义理解强

向量计算成本高

一句话总结:

倒排索引是“按词搜”; 图索引是“按关系搜”; RAG 是“按意思搜”。


RAG 与 LLM 的关系:记忆与上下文的边界

机制

数据来源

生命周期

更新方式

LLM Context

Prompt

一次性

随输入变化

RAG

外部向量库

持久化

动态添加

参数记忆(parametric memory)

模型参数

固定

需要再训练

因此:

RAG 是 "外部持久记忆"; 它扩展了 LLM 的上下文,但不改变模型本身。


RAG 的局限与挑战

  1. 检索错误传播: 错误的文档可能导致错误的生成。
  2. 缺乏上下文理解: 传统 RAG 仅根据相似度匹配,不能理解“语境逻辑”。
  3. 碎片化知识问题: 多段检索内容可能彼此冲突。
  4. 长期记忆能力弱: 无法主动记住历史经验、用户偏好,只能被动检索。
  5. 成本问题: 大规模向量库(>百万文档)需要高性能存储和计算。

RAG 的典型技术组件

模块

说明

常见实现

向量数据库

存储和检索 embedding 向量

FAISS、Milvus、Weaviate、PGVector

Embedding 模型

文本向量化

OpenAI、BAAI bge、Cohere、Microsoft MiniLM

Chunking 模块

文档切块

LangChain TextSplitter

Retriever

检索接口层

LangChain、LlamaIndex

Augmenter

拼接 Prompt 的逻辑层

LangChain、Haystack

LLM 模型

生成回答

GPT、Claude、Gemini、Mistral

Evaluation

检索评估

RAGAS、TruLens、BLEU/ROUGE


RAG 的进化:从被动检索到主动记忆

随着 Agent 概念兴起,RAG 开始朝着"有意识的记忆系统"方向演化。 代表性技术包括 MemGPTLangGraph Memory 等,以及结合摘要、反思、遗忘机制的长期记忆系统概念。

系统/概念

特点

实现思路

MemGPT(Stanford)

长期 + 短期记忆系统

借鉴操作系统虚拟内存管理思想,实现层次化记忆(working memory 与 external memory)之间的动态交换

LangGraph Memory

有状态工作流记忆图

Graph-based Memory Store

长期记忆系统(概念)

RAG + 摘要 + 反思 + 遗忘机制

这一概念在 MemGPT 等系统中得到了具体实现,同时 LangChain 等框架也提供了构建此类系统的基础组件

AutoGen Memory

多 Agent 共享记忆

Microsoft AutoGen

这些系统在 RAG 的基础上加入了:

  • 主动选择要记忆的内容(Capture);
  • 压缩与总结(Summarize);
  • 反思与更新(Reflect);
  • 遗忘与淘汰(Forget)。

简而言之:

RAG 让模型"能查资料"; 这些记忆系统让模型"能记得事"。


总结

概念

功能

本质

RAG

检索增强生成

外部知识接入

倒排索引

关键词匹配

精确检索

图索引

关系跳转

结构检索

记忆系统(MemGPT等)

主动长期记忆

智能反思与记忆演化

RAG 让大模型具备了外部记忆与知识访问能力; 而 MemGPT、LangGraph Memory 等新一代系统,正让记忆变得主动、可反思、可演化

未来的智能体(Agent)将不再只是“查知识”, 而是真正地“拥有经验与认知”。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2025-11-02,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 木有枝枝 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 概览
  • RAG 的起源与发展
  • 什么是 RAG?
    • 向量(Vector)是什么?
  • RAG 的基本原理
    • 1. 向量化(Embedding)
    • 2. 检索(Retrieval)
    • 3. 增强(Augmentation)
    • 4. 生成(Generation)
  • 不同数据类型的向量化方式
  • RAG 与传统检索的区别
  • RAG 与 LLM 的关系:记忆与上下文的边界
  • RAG 的局限与挑战
  • RAG 的典型技术组件
  • RAG 的进化:从被动检索到主动记忆
  • 总结
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档