本文较长,建议点赞收藏。更多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、扩展插件,易用 |
| Qdrant | Rust 开发,性能稳定,支持混合搜索 |
| Vespa (雅虎) | 面向大规模内容检索的搜索平台 |
2)商业 SaaS / 云厂商
| 产品 | 特点 |
|---|---|
| Pinecone | SaaS向量数据库,免维护 |
| OpenSearch Vector Engine | AWS生态中集成 |
| 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(回复一句话) |
| 核心结构 | Encoder | Decoder |
| 是否做 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。