从理解到记忆再到回答:Embedding→向量数据库→RAG 的完整链路

0 阅读13分钟

本文较长,建议点赞收藏。更多AI大模型应用开发学习视频及资料,在智泊AI

在AI大模型技术爆火之前,"向量"、"相似度"、"召回"这些词还只是少数算法工程师的专业术语。 但自从以ChatGPT为代表的LLM技术爆火、RAG 爆发以及团队可以开始构建自己的知识库,这些概念突然变成了大家都在讨论的词汇。

在上一篇文章中,我们提到通过构建知识库,可以让大模型从“无状态”变成“有状态” 。所谓知识库,本质上是一种让大模型“在对话之外拥有记忆”的方式。它本身并不是固定的技术,而是一个抽象概念,可以根据场景和需求被具象化为不同的载体,比如:

文件系统(文档、PDF、Markdown、网页)

数据库(传统关系型数据库、NoSQL)

向量数据库(Milvus、Weaviate、Pinecone)

这些形式都可以承载知识,但它们的能力差异巨大,尤其是在语义检索时代,向量数据库正在成为事实标准。与此同时,大模型产品背后所依赖的基础模型也并非统一的“一种模型”。它们大致可以分成两大类:

LLM(大语言模型) :专门负责生成文本、推理、回答问题

Embedding 模型:负责把文本转成向量,让机器能够“理解语义”

如果想真正弄清楚知识库、Embedding、向量数据库以及 LLM 在一个完整 AI 系统中的角色,就需要先把它们之间的关系理清楚。

事实上,它们之间并不是孤立的,而是构成了一条完整的语义链路:

LLM 负责“回答”,Embedding 负责“理解”,向量数据库负责“记住并快速找到”,知识库则是它们共同服务的目标形态。

理解这条链路,你就能搞清楚:

向量数据库为什么突然火了?它和Embedding是什么关系?

LLM和Embedding又是什么关系?为什么 Embedding 是大模型应用的底层基础?

为什么 RAG 会成为最流行的大模型增强方案?

接下来,我们就沿着这条链路,把这些概念串联讲清楚。

向量数据库

为了便于理解,我们先从向量数据库讲起,这里可能会提到Embedding,我们姑且先把它理解成某种特定的序列化方式。

向量数据库是什么?

简单来讲向量数据库(Vector Database)  是一种专门为"向量数据"设计的数据库。

什么是"向量数据"?

在大模型中,文本、图片、代码等内容并不是直接用原始形式参与计算,而是通过 Embedding(向量化)  映射成几百维或几千维的浮点数组,向量数据库就是负责 存储这些Embedding向量,并提供 高效的相似度搜索(如余弦相似度 / L2距离)

它与传统数据库的区别:

功能传统数据库向量数据库
数据形式行/列、字符串、数值高维浮点向量
查询方式精确匹配(=、>、<)模糊语义匹配(相似度)
设计目的结构化查询海量向量的近似最近邻搜索(ANN)

一句话总结:向量数据库是为语义搜索而生的数据库,用于在大规模向量中快速找到“最相似”的内容。

为什么需要向量数据库?

因为大模型并不是无所不知,也不是永远记得所有信息。在实际业务中,我们常遇到这些问题:

1)大模型不能直接记住大量企业私有知识

例如公司内部文档、产品手册、FAQ客户知识库。这些内容通常非常多,大模型无法全部放入 Prompt,也不会长期记住。

2)全文搜索不能满足语义需求

传统搜索如ES、关键词搜索只根据文本匹配,而包含某个关键词不等于语义最相关。

3)大模型缺乏外部知识时,容易产生幻觉(hallucination)

RAG已经成为主流方案,大模型不提前学习所有知识,而是“按需查询”,知识的来源就是向量数据库。

4)海量数据 + 高频查询 ,必须依赖高性能ANN搜索

当数据量达到百万到亿级,而查询需要维持毫秒级响应时,传统的精确相似度计算已经无法满足性能需求。只有通过高性能 ANN 索引(如 HNSW、IVF、PQ 等),才能在保证较高召回率的同时,实现高 QPS 的实时检索能力。

向量数据库有哪些产品?

按照开源/商用可分为以下几类:

1)主流开源向量数据库

产品特点
Milvus (最流行)专为向量搜索设计,性能极强,生态完善
FAISS (Facebook)算法库,不是完整数据库,需要自己封装
HNSWlib高性能近邻搜索库,索引速度强
Weaviate带 REST API、schema、扩展插件,易用
QdrantRust 开发,性能稳定,支持混合搜索
Vespa (雅虎)面向大规模内容检索的搜索平台

2)商业 SaaS / 云厂商

产品特点
PineconeSaaS向量数据库,免维护
OpenSearch Vector EngineAWS生态中集成
Azure Cognitive Search与Azure AI紧密结合
MongoDB Atlas Vector Search在文档数据库上附加向量检索功能

3)传统数据库的“向量扩展”功能

PostgreSQL pgvector

Elasticsearch vector search

MySQL HeatWave Vector

适合中小规模场景,但不是专为大规模向量搜索设计。

总结一句话

向量数据库是构建大模型知识库(RAG系统)的核心技术,用来存储和检索语义向量,从而让大模型能够访问实时、企业级、准确的知识。

Embedding

Embedding在技术界的中文解释一般为“向量化”,顾名思义就是把常规内容转化为向量内容的一种方式。

Embedding 到底是什么?

Embedding 是把一段文本(或图片、音频等)转换成一个高维向量,并且这个向量在向量空间中具有“语义结构”。

例如一句话:

“如何提升接口性能”

Embedding 之后可能变成:

[-0.13, 0.04, 0.98, ...] (维度可能是 384/768/1024/1536/3072...)

这个向量越接近的,就说明两段文本越“语义相似” 。而比较向量的方式就是判断余弦相似度 。就是将两个数据转化成向量坐标后进行对比,对比的依据就是**方向一致度,不看长度,只看角度。角度越小,越相似。

这就是文本 Embedding 的本质,建立一个语义空间,把语义相似的文本放得很近,不相似的放得很远。

Embedding 的具体过程是什么?

真实 Embedding 过程分为 3 步:

步骤 1:文本 → Tokenize(分词 & 转成数字)

任何模型先把文本拆解成 token:

“如何提升接口性能”→ ["如何", "提升", "接口", "性能"][10342, 664, 9912, 2203]

步骤 2:放入 Transformer(Encoder 或者 LLM 的隐藏层)

文本经过 Transformer 网络处理。Transformer 做了:

a.Self-Attention(让模型理解词之间的关系)

b.多层前馈网络(提取语义)

c.残差、归一化等结构

此时模型已经“理解了语义关系”。

步骤 3:取隐藏状态 / Pooling,得到最终向量

Embedding 模型的关键在于它会对所有 token 的语义表示做 pooling(比如平均池化 mean pooling)得到一个固定维度的向量。

例如:

token embeddings: 768  × 20  token↓mean pooling↓输出一个 768 维的向量(整个句子的语义表示)

这就是 Embedding。

为什么有的模型可以做 Embedding,有的不能?

因为不是所有模型结构适合输出固定的向量语义表示。大语言模型(LLM)可以分类:

(1) Encoder-only 模型(专门做 Embedding 的)

例如:

  • sentence-transformers (mpnet)
  • BERT
  • Text-Embedding-3-small/large
  • MiniLM

它们结构上就是:

Encoder → Pooling → 一个向量

这种模型天生适合集合语义,输出 embedding

(2) Decoder-only 模型(像 GPT 模型)主要是生成模型

例如 GPT-4 / GPT-3.5 / Llama 等。

它们是:

Decoder-only Transformer → 负责做语言生成

Decoder-only 的隐藏层是“自回归”的,每个 token 负责预测下一个 token。

(3) Encoder-Decoder 模型

它的设计目标也是生成和翻译,不是做 embedding。

Embedding 模型 vs LLM的真正区别

对比点Embedding 模型大语言模型(LLM)
目标语义向量表示文本生成
输入文本文本
输出一个固定长度向量生成 token(回复一句话)
核心结构EncoderDecoder
是否做 pooling是,必须有通常没有
应用场景检索、向量数据库、相似度搜索、聚类、RAG对话、问答、生成内容、写代码等

一句话总结:Embedding 模型负责“理解内容”,LLM 负责“生成内容”。

为什么需要专门的 Embedding 模型,而不是让 LLM 来做?

(1) 计算效率

Embedding 模型一般只有 100M~1B 参数,非常轻量。

LLM 有几十亿~几千亿参数,拿它来算一个向量完全没必要。

(2) 质量更高

Embedding 模型是用对比学习(Contrastive Learning)训练的,目标就是把“语义相似”的句子放得更近。LLM 的训练目标只是预测下一个 token。

(3) 一致性强

Embedding 模型输出的向量分布非常稳定(适合向量库)。LLM 的隐藏层 embedding 会随提示词、上下文变化而波动,不适合作为稳定语义向量。

为什么 Embedding 这么重要

RAG 的核心三步:

1.用 Embedding 把知识库内容向量化

2.用 Embedding 把查询向量化

**3.检索“语义最相近”的文档

如果没有 Embedding,RAG 根本无法运行。这就是为什么:

RAG = Embedding + 向量数据库 + LLM

其中 Embedding 是地基。

Embedding和向量数据库有什么关系

这个问题可以一句话进行总结:

Embedding 是把文本转成向量的过程;向量数据库是存向量并做向量检索的地方。

Embedding 产生向量 → 向量存入向量数据库 → 大模型从数据库里用相似度检索找到相关知识 → 最后让 LLM 回答。

这就是 RAG 的基础工作流。

RAG

前面我们已经讲了 Embedding 如何把文本变成向量,以及向量数据库如何在海量向量中快速找到“最相似的知识”,这些都是基础设施,而 RAG(Retrieval-Augmented Generation)就是把它们组合成一个可工作的 AI 能力

如果说Embedding 是“编码”,向量数据库是“记忆”,那么 RAG 就是“用记忆回答问题的过程”

我们可以把 RAG 理解成一个执行链路:先找知识(Retrieve),再生成答案(Generate)

为什么需要 RAG?

LLM 很强,但它有两个硬伤:

1)它不知道你企业内部的知识(知识截止) 例如你的 SOP、财务制度、业务数据,这些大模型无法直接“知道”。

2)它会胡编(幻觉) 当模型不确定答案时,它会“想象一个”。

RAG 的目标就是解决这两个问题:缓解幻觉,引入实时、外部、私有的知识让模型给出更可靠、更贴合业务的答案

本质上:

RAG 让大模型从“猜答案”变成“查资料”。

RAG 的工作流到底是什么?

最简单的一句话:

Embedding → 向量召回 → 把知识塞给模型 → 让它回答

如果展开成技术流,会是这样的一条链路:

1)用户提问

2)对问题进行向量化(Query Embedding)

3)向量数据库中检索最相似的 Top-K 片段

4)把这些检索结果与 Prompt 拼接

5)交给 LLM,让它基于“提供的知识”生成答案

RAG 并不是“让模型变强”,而是让模型“用到外部知识”

很多人误以为 RAG 是增强模型能力。但本质上RAG 不改变模型本身,只改变它获得知识的方式。

LLM 的作用只变成“把检索到的信息组合起来,用自然语言表达出来”。知识不再藏在模型参数里,而是藏在向量数据库里,我们可以随时更新知识,而模型不需要重新训练。

RAG = 我们提供知识,模型负责表达

我们可以把 RAG 想象成一支团队:

  • 向量数据库:资料管理员
  • Embedding:文档编码员
  • LLM:负责写报告的实习生

工作流程就是:

把资料交给实习生 → 实习生看完 → 写成回答 → 给你

向量数据库 + RAG + 大模型整体架构图

下图展示了一个典型的  “向量数据库 + RAG + 大模型”  的完整工作流程,它描述了用户提问后,系统如何利用知识库增强大模型的回答质量。整个流程大致可分为四个阶段:

首先,用户提出问题,请求会先进入 RAG(检索增强生成)层。RAG 的第一步是使用 Embedding 模型 将用户的问题转换为向量(Query Embedding)。随后,系统根据这个向量到 向量数据库(Vector DB)  中进行相似度检索。向量数据库中事先存储了经过切片的文档内容及其对应的 Embedding 向量,并通过 HNSW、IVF 等 ANN(近似最近邻)算法来快速找到语义最相近的内容片段。

完成检索后,系统会进入到 Prompt 构建器 阶段。这个步骤非常关键,它会把用户原始问题与检索到的知识片段组合起来,构造成一条包含更多“上下文知识”的增强提示(Augmented Prompt),也就是给大模型提供更准确的背景信息。

最后,这条增强后的 Prompt 会被送入 LLM(大语言模型) ,如 GPT、Claude、Qwen 等。大模型基于提供的知识生成更可靠、更准确的回答,并最终返回给用户。

整体架构清晰呈现了一个核心思想:

RAG 用 Embedding 理解问题 → 向量数据库找到最相关知识 → Prompt 构建器把知识提供给大模型 → LLM 基于知识回答问题。

这是目前大模型应用中最主流、最可靠的知识增强方式。

小总结

如果把一个智能系统比作一个大脑,那么 Embedding 是理解世界的方式向量数据库是记忆世界的结构,而 RAG 则是让理解过的知识真正被使用起来的方式

Embedding 把原本混乱的文本世界编码成有意义的向量空间,让“相似”可以被数学化;向量数据库用高性能 ANN 架构为这些向量提供了可扩展的“长时记忆”;最终,RAG 作为桥梁,让大模型在回答每一个问题时,都能实时检索相关的知识片段,把“现学现用”变成现实。

换句话说,RAG 让模型不再仅仅依赖固定参数里的“死记硬背”,而是获得了 实时学习、即时查询、动态回答 的能力。

当这三者组合在一起,我们构建的就不再是一个简单的问答系统,而是一个真正能理解业务、吸收知识、持续进化的 AI 系统

学习资源推荐

如果你想更深入地学习大模型,以下是一些非常有价值的学习资源,这些资源将帮助你从不同角度学习大模型,提升你的实践能力。

本文较长,建议点赞收藏。更多AI大模型应用开发学习视频及资料,在智泊AI