掘金 人工智能 05月28日 10:18
LLM模型是怎么知道1+1等于2的?是预测还是查找数据库?
index_new5.html
../../../zaker_core/zaker_tpl_static/wap/tpl_guoji1.html

 

本文深入探讨了大型语言模型(LLM)如ChatGPT理解“1+1=2”的机制,并非通过数据库查询,而是基于海量语料训练后对统计规律的记忆和预测。文章还介绍了在处理公司内部知识等LLM不熟悉的问题时,如何利用RAG(Retrieval-Augmented Generation)技术,通过向量数据库检索相关文档,为LLM提供外部知识补充,从而更准确地回答问题。同时,还详细解释了向量索引和embedding模型在RAG中的作用,以及常见的向量数据库和索引技术。

🧠LLM大模型(GPT)在回答问题时,并非查询数据库,而是基于预训练知识和提示词进行预测,核心原理是预测下一个最可能输出的token。例如,对于“1+1等于多少”的问题,LLM会搜索该词条下最常出现的下一个词,即“2”。

📚当LLM遇到不确定的问题,特别是涉及公司内部知识等情况时,会启用RAG(向量检索)。RAG通过将问题embedding成向量,在向量数据库中查找最相似的语义文档段落,并将问题与找到的文档拼接成prompt,再送入LLM生成回答,从而补充LLM未知的资料。

🗂️RAG中的向量索引是一种快速查找语义相似内容的工具,它通过将文本转换为向量,并构建索引,实现百万级数据中秒级找出最相关的记录。Embedding模型则用于将用户问题转化为向量,以便在向量数据库中进行相似性搜索。

💡Embedding模型通过预训练语言模型,如GPT,学习在不同上下文中预测词或生成句子,从而将每个词、每个句子表示成一个高维向量。语义相近的句子,在高维空间中的向量会靠得近,而意思不同的向量则会离得远。

AI是怎么知道1+1 = 2的?是靠搜索数据库还是预测?

ChatGPT 是一个大型语言模型(LLM) ,训练方式如下:

输入海量语料:包含书籍、网页、维基百科、GitHub代码、新闻、问答网站(如 StackOverflow)……

训练目标:给定一句话的前缀,让模型预测下一个词

比如输入:

“1+1 等于”

训练时,模型看到海量场景里“1+1 等于 2”出现最多,它就学会了输出“2”。

所以它知道“1+1=2”是记住的统计数量,不是查数据库

从统计规律中“预测”出下一个最有可能的词或答案。

接下来的问题是,他怎么预测出来的?谁给他的知识体系去预测呢?

还有如果有些问题是公司内部的内容,他怎么预测呢?

先给答案:

当用户给LLM大模型(GPT)输入问题的时候,会之间根据之前预训练的知识加上你的提示词(propmt)数据结果,整个过程是预测的过程,不是查数据库,比如1+1等于多少这个问题,他不是去查1+1等于几,而是去搜这个词条下,最常出现的下一个词是什么?结果是2,这就是他的结果。

核心原理永远是:预测下一个最可能输出的 token。

但是当你问他一些你们公司内部的问题的时候,他就会不太自信,比如你开始深度思考看见他回答的过程中包含“我不确定”、“可能是”,这样的词条的时候,或者概率置信度很低(如 OpenAI API 的 logprobs 评分很弱),甚至直接输出“我无法回答”的情况,就会触发RAG向量检索

RAG经典使用场景

问题类型是否需要 RAG原因
通用常识不需要模型知道
技术概念解释不需要模型知道
某公司内部政策需要模型没学过
某企业产品使用手册内容需要模型没看过
某个冷门 PDF 文件内容需要模型完全不懂

一般情况都不会去启用RAG(向量数据库),因为毕竟使用了数据库,肯定会拖慢一些速度点,只有在关键时候才会启用

回顾一下正常情况不启用RAG(向量数据库)的时候:

用户提问 → 直接送入 LLM → 模型回答(基于预训练知识 + prompt)

如果回答不了或者不确定就会启用向量数据库:

用户提问

将问题 embedding 成向量 使用 OpenAI embedding 模型等)

向量数据库中查找“最相似的语义文档段落”

将「问题 + 找到的文档」拼成 prompt

送入 GPT-4 等模型生成回答

但是如果没有向量数据库,它怎么回答你不知道的问题的时候会怎么样呢?

它可能无法回答,或者胡乱编(hallucination):

模型只能基于自己“训练时见过的数据”来预测回答

如果它没见过,你又不给它“外部资料”,它就容易瞎说(hallucination)

所以 RAG 的本质就是:给它补充“它不知道的资料”

所以为了让他知道你公司内部的一些知识体系,就需要启用向量数据库

我理解的整个流程就是把你公司的一些文档或者整个项目给到embedding模型,这种模型会把你整个文档给向量化,变成一个一个向量,然后把所有向量存入向量数据库,当LLM大模型(类似chatGPT)遇到了不太确定的问题的时候,就会启用RAG,把你的问题切割成一个一个向量,通过向量去查找最相关的文档,然后把问题和文档变成Prompt(提示词)给LLM生成回答,这样就是RAG的完整过程。

总体来说向量数据库就是查“语义最相近的文档”,生成提示词给LLM模型,然后LLM预测出结果。

结构图:

RAG到底是什么?他里面的向量索引有什么作用呢?

RAG是LLM模型回答问题的一种方式,当LLM回答一些他不知道的问题的时候会通过RAG去通过喂给他的知识库来搜索回答问题,有点像查数据库,但不准确,因为他是通过向量去搜索的,后续会解释为什么?先来弄清楚向量索引和向量数据库是什么?

一句话理解向量索引

向量索引 = 用来快速查找语义上相似内容的工具,支持在百万级数据中“秒级”找出最相关的几条记录。

简单来说就是把文本变成一个向量(坐标),可以加上索引之后可以快速的找到跟这个向量相关的向量

背后逻辑:文本变向量、查相似向量

1、文本 → 向量:

首先我们用 embedding 模型(如 OpenAI 的 text-embedding-ada-002、BGE)把一段文本变成一个向量(比如维度是 1536float 数组)。**后续会解释什么是embedding模型**向量的特点是:语义相似的文本会变成空间中靠得近的向量。

2、存储向量 → 构建向量索引:

把这些向量存进一个向量数据库(如 FAISS、Milvus、Weaviate、Qdrant)。用向量索引(如 HNSW、IVF、Annoy 等)加速搜索:不然每次都全量比对,太慢。

3、用户提问 → 提问向量 → 相似文档向量 → 检索:

用户提问后也会被转成向量,然后用这个向量去查找数据库中“最相似”的几个向量,找到相关文档后,喂给 LLM 去生成有知识的回答。

举个例子

比如有一段文档:

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

这段话会被转成向量 [0.21, 0.03, ..., -0.17]。

用户提问:

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

也会变成向量 [0.19, 0.04, ..., -0.18]。

然后用向量索引从数据库中找到“最接近”的几个段落,供 LLM 回答问题。

总结一句话就是:向量索引就像是“语义搜索引擎”的大脑,让机器不再只看关键词,而是理解你说了什么、想找什么,然后快速找出最相关的内容。

什么是embedding模型?

刚刚上面提到了embedding模型,这个模型主要就是用来把用户提的问题转化成向量。

举个例子

输入句子:

“我想去北京旅游。”

Embedding 模型会输出一个维度很高的向量(比如 1536 维):

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

这个向量表示了这句话的语义信息。同样语义的句子,会变成“接近”的向量。

那你可能会有疑问:为什么可以把一段话变成向量?这个向量是怎么得来的?

本质解释:向量是“语义位置”的一种数学表示

每段话都可以表达一种语义含义。

我们希望用数学的方式捕捉语义:让“意思相近”的句子,在高维空间中的向量“靠得近”,意思不同的向量“离得远”。

怎么做到的?靠的是「预训练语言模型」!

以 GPT 为例,它们是这样训练的: 用海量语料(如 Wikipedia、GitHub、论坛、新闻等)训练模型,让它学会在不同上下文中预测词或生成句子。

举个例子:

训练目标:遮掉一句话中的词,让模型猜出来。

原句:

今天我去超市买了一个🍎。

遮挡后:

今天我去[MASK]买了一个🍎。

模型学会了:「‘超市’」出现在这个上下文里更合理。

这种预测任务重复训练几十亿句,模型逐渐学会:哪些词语出现在一起?哪些句子表达的意思相近?

最终效果: 把“每个词、每个句子”表示成一个高维向量(比如 768、1024、1536维)。

类比理解: 你可以把“句子”想成“城市”,“embedding”就是给每个城市定位坐标。

比如:

“我爱北京” → 坐标 [100, 50]

“我喜欢北京” → [101, 51]

“Python 是一种语言” → [10, 90]

这样你就能用坐标之间的距离,来判断句子的语义相似度了。

常见的 Embedding 模型有哪些?

模型名称提供方特点
text-embedding-ada-002OpenAI高精度、易用、广泛支持
bge-large-en/v2bge-base-zhBAAI 北京智源中文效果优秀,开源
E5-small/base/largeMTEB benchmark多语言、兼容性好
Instructor, MiniLM, MPNetHuggingFace开源、轻量模型丰富

常见的向量数据库和索引技术

技术 / 库简介
FAISSFacebook 开源,支持 IVF、HNSW 索引,适合本地嵌入式向量搜索
MilvusZilliz 推出的云原生向量数据库,支持大规模生产部署
QdrantRust 写的高性能向量库,支持嵌入过滤等
Weaviate支持混合搜索(关键词+向量)和 GraphQL 接口
HNSW(索引结构)小世界图结构,支持高效近似最近邻搜索(ANN)

Fish AI Reader

Fish AI Reader

AI辅助创作,多种专业模板,深度分析,高质量内容生成。从观点提取到深度思考,FishAI为您提供全方位的创作支持。新版本引入自定义参数,让您的创作更加个性化和精准。

FishAI

FishAI

鱼阅,AI 时代的下一个智能信息助手,助你摆脱信息焦虑

联系邮箱 441953276@qq.com

相关标签

LLM RAG 向量数据库 Embedding模型
相关文章