从 1+1=2 开始理解大模型(LLM)、Embedding 和 RAG

440 阅读5分钟

AI 是怎么知道 1 + 1 = 2 的?

很多人第一次接触 AI 时,都会有一个疑问:

ChatGPT 到底是真的“理解”了 1+1=2,还是只是去数据库里查答案?

答案其实是:

大部分情况下,它不是在“查数据库”,而是在“预测”。


大语言模型本质上是在“预测下一个词”

像 ChatGPT 这样的 LLM(Large Language Model,大语言模型),训练方式其实非常简单粗暴:

给它海量文本,让它不断学习:

“一句话后面,下一个最可能出现的词是什么?”

比如训练时它看到了无数这样的内容:

1+1 等于 2
one plus one equals two
一加一等于二

久而久之,它就会形成一种概率认知:

当看到:

1+1 等于

后面最可能出现的 token(词元)就是:

2

所以它输出了 2。


它不是“搜索答案”,而是在做概率预测

这一点特别重要。

很多人会误以为:

AI 回答问题时,是不是后台有个超级数据库在查?

实际上,大多数情况下并不是。

它更像这样:

用户输入问题
↓
模型根据训练中学到的规律
↓
预测下一个最合理的 token
↓
一个 token 一个 token 往后生成

比如:

“今天北京天气”

模型会预测:

“不错”
“晴天”
“有雨”

哪个概率最高,它就优先输出哪个。

本质上:

GPT 是一个“超大规模的概率预测器”。


那它为什么能“懂”这么多东西?

因为它训练时看过的数据太多了。

训练数据可能包括:

  • 书籍
  • Wikipedia
  • GitHub
  • 新闻
  • 论坛
  • StackOverflow
  • 技术文档
  • 问答网站

这些内容加起来是一个极其恐怖的数据量。

模型在不断训练过程中,会逐渐学会:

  • 哪些词经常一起出现
  • 哪些句子语义接近
  • 什么上下文应该接什么内容
  • 什么回答更符合人类语言习惯

所以它看起来像“懂了”。

但实际上:

它的底层仍然是“预测”。


那 AI 怎么回答公司内部的问题?

这里就进入了一个非常关键的概念:

RAG(检索增强生成)

因为:

模型训练时,并没有看过你公司的内部文档。

所以当你问:

“我们公司的退款逻辑是什么?”

模型可能会:

  • 不确定
  • 开始猜
  • 胡乱编(幻觉 hallucination)

这时候,就需要 RAG 来帮它。


RAG 是怎么工作的?

简单来说:

先帮 AI “查资料”,再让 AI 回答。

流程大概是这样:

用户提问
↓
把问题转成向量(Embedding)
↓
去向量数据库里搜索最相关内容
↓
把搜索结果拼进 Prompt
↓
再交给 LLM 生成回答

所以:

RAG 本质上是“给 AI 临时开卷考试”。


为什么不用普通数据库,而要用“向量数据库”?

因为人类提问时:

很多时候不会用完全一致的关键词。

例如:

文档里写的是:

“用户签署租赁协议”

用户问的是:

“小明什么时候签的租房合同?”

关键词根本对不上。

传统数据库可能搜不到。

但向量数据库不是看关键词,而是看:

“语义是否相近”。


什么是 Embedding(向量化)?

Embedding 模型的作用:

把一句话转换成一个“数学向量”。

比如:

“我想去北京旅游”

可能会被转换成:

[0.12, -0.34, 0.89, ...]

这个数组就是“向量”。

重点是:

语义相近的句子,向量距离也会接近。

比如:

“我喜欢北京”
“我想去北京玩”

它们的向量会非常靠近。

而:

“MySQL 索引优化”

就会离得很远。


向量索引是什么?

如果数据库里有几百万条向量:

每次都全量比较:

这个向量和所有向量是否接近

速度会非常慢。

所以需要:

向量索引

它的作用类似:

“给语义搜索建立高速导航系统”。

常见算法:

  • HNSW
  • IVF
  • Annoy

本质都是:

快速找到“最相似的向量”。


举个完整例子

假设知识库里有一段文档:

“小明于 2023 年在北京签署了房屋租赁合同。”

系统会先把它转成向量:

[0.21, 0.03, ..., -0.17]

用户提问:

“小明在哪年签的租房合同?”

也会被转成向量:

[0.19, 0.04, ..., -0.18]

因为两个向量距离很近。

于是系统就能找到这段文档。

然后把:

问题 + 文档内容

一起喂给 GPT。

最后 GPT 再生成:

“小明于 2023 年签署了房屋租赁合同。”


所以 AI 到底是“搜索”还是“预测”?

答案是:

两者都有,但核心始终是“预测”。

区别在于:

不使用 RAG 时

用户问题
↓
直接交给 LLM
↓
模型基于训练记忆预测答案

使用 RAG 时

用户问题
↓
先检索相关资料
↓
把资料塞进 Prompt
↓
LLM 再基于这些内容预测答案

所以:

RAG 不负责“回答”,它只负责“找资料”。

真正生成答案的,仍然是 LLM。


最后一句话总结

可以把整个 AI 系统理解成:

LLM

负责:

“像人一样组织语言和生成答案”

Embedding

负责:

“把语义转换成数学向量”

向量数据库

负责:

“按语义搜索最相关资料”

RAG

负责:

“把搜索结果喂给 LLM”

而 GPT 的核心本质始终只有一句话:

预测下一个最可能出现的 token。