Embedding和向量数据库是什么?5分钟搞懂AI记忆的底层原理(2026入门)

从一个小数字说起

我之前写过一篇RAG的入门文章,讲AI怎么先查资料再回答。评论区被同一个问题刷屏了:

"文章说AI查资料前要把文档变成向量存进数据库。向量是啥?数据库又是哪个数据库?MySQL行不行?"

今天就把这两个词讲透:Embedding(向量化)和向量数据库。看懂这篇,RAG那篇文章里的黑话就全部解锁了。

Embedding:把文字变成坐标

计算机算不了"苹果和香蕉像不像",但它很擅长算数字之间的距离。

Embedding干的就是这件事:把一段文字变成一串数字(向量),让意思相近的文字,对应的数字也彼此靠近。

打个比方。把"国王""女王""苹果""香蕉"放进一张地图:

  • 国王和女王会站在相邻的位置
  • 苹果和香蕉站另一片区域,也挨在一起
  • "国王"和"香蕉"隔得老远

这张"地图"就是向量空间。真实模型的地图比三维复杂得多,nomic-embed-text是768维,bge-m3是1024维,但原理一样:意思越近,坐标越近。

有了这张地图,"搜索"就从"关键词匹配"变成了"距离计算"。你搜"怎么退货",哪怕商品详情里从头到尾没出现"退货"俩字,只要它讲了"七天无理由""退换流程",坐标够近,照样能被找到。这是传统关键词搜索做不到的。

向量数据库:专门存这张地图的仓库

向量有了,存哪?

理论上MySQL也能存,把向量塞进一列就行。但算距离太慢:一万条数据还能暴力遍历,一千万条就崩了,每条都要算一遍相似度。

向量数据库的核心本事是一种叫ANN的近似最近邻检索:先给向量建索引,搜索时不用逐条比对,直接跳到最可能相近的那片区域。就像字典按拼音排过序,找字不用从第一页翻到最后一页。速度从秒级降到毫秒级,代价是偶尔漏掉一两个结果,对搜索场景完全够用。

另外它天生支持过滤:先按用户ID、时间这些标签筛一遍,再在小范围里算相似度。这个组合很常用。

四个常见选项,怎么选

Milvus:开源里的老大哥,功能全,能扛十亿级数据,部署偏重。企业级知识库首选。

Chroma:轻量,几行Python就能跑起来,适合个人项目和学习实验。入门从这里开始。

pgvector:PostgreSQL的插件,不用引入新组件,现有PG加个插件就有向量能力。业务数据已经在PG里的,直接选它。

云服务(阿里云、腾讯云都有托管版):不想管运维就买托管,花钱省心。

我的建议:自己学着玩,用Chroma;公司项目数据量不大,pgvector最省事;上规模再考虑Milvus。

想本地动手试一试?

两行命令,在你自己电脑上就能把向量化跑起来。

第一步,装Ollama(之前写过完整教程,5分钟能搞定)。

第二步,拉一个专门的向量化模型:

ollama pull nomic-embed-text   # 英文为主,768维
ollama pull bge-m3             # 智源出品,中文更强,100多种语言

第三步,跑一句:

ollama run nomic-embed-text "今天天气真好"

你会看到一长串数字输出。那串数字,就是这句话在这张768维地图上的坐标。用Python把两句话各自向量化,再算一下距离,你会直观看到"意思近的句子距离近"是什么感觉。

顺带一提,别拿聊天模型做向量化。Qwen、Llama这类生成模型不产向量,要用nomic-embed-text、bge-m3这种专门的embedding模型,这也是新手最常见的错误。

一句话收尾

Embedding负责"把意思变成距离",向量数据库负责"在海量距离里快速找到最近的那个"。这俩凑一起,AI才能真正做到"先查资料再说话"。

有条件的话,强烈建议跑一遍上面那三行命令。看一次真实输出的向量,比读十篇文章都记得牢。

发表评论