P1-13.1 把文本(text)表示为向量(vector)意味着什么¶
Section ID:
P1-13.1Version:v2026.07.20
在第 12 章中,我们已经看过如何通过提示词(prompt)向 LLM 给出任务条件,也看到了仅靠提示词难以保证事实性(factuality)、依据性(evidence)与最新性(recency)。
于是自然会出现下一个问题:LLM 要怎样找到可以参考的外部资料?
要进入这个问题,首先需要理解文本是如何被转换成可计算形式的。这个起点就是嵌入(embedding)。
嵌入是一种把文本转换成模型可计算的向量表示(vector representation)的方法。
这里最重要的提醒是:嵌入并不等于“意义本身”。嵌入是依据文本在数据中的使用方式,以及模型的学习目标而生成的数值表示。
Part 1 会在这里先建立 嵌入(embedding)、向量(vector)、向量空间(vector space)、句子/段落/文档嵌入、嵌入 vs 提示词 之间的基本区分。11.1 已经从语言模型的历史脉络先看过嵌入的背景,12 章又整理了提示词如何指定输入条件。这里会从服务视角把这两条线连起来,说明:为什么在检索外部资料之前,要先把文本变成向量?
P1-11.1 已经在 LLM 的历史脉络中介绍过语言模型(language model)、n-gram、分布式表示(distributed representation)、word2vec。本节不重复那段历史。
嵌入、向量、向量空间、句子嵌入、文档嵌入 属于不同层次的表示。这里先把它们的作用区分如下:
| 术语 | 极简含义 | 本节中的作用 |
|---|---|---|
| 嵌入 | 把文本变成可计算向量的表示 | 第 13 章的起点 |
| 向量 | 由多个数字组成的位置或表示 | 理解嵌入结果的基本单位 |
| 向量空间 | 向量所在的比较空间 | 理解接近与远离的框架 |
| 句子/段落/文档嵌入 | 把更长文本单位变成向量的表示 | 检索与 RAG 的实际输入单位 |
| 嵌入 vs 提示词 | 检索用表示与任务指令输入之间的区分 | Part 1 后半服务流程中的关键边界 |
这里先把 嵌入是向量表示、向量空间是比较空间、它与提示词承担不同角色 作为基准线。
P1-13.1 关注的是:嵌入在现代 AI 服务流程中承担什么作用。
| 主题 | 本节要看的问题 |
|---|---|
| 文本表示 | 为什么要把句子和文档变成数字向量? |
| 向量空间(vector space) | 把文本像坐标一样放置是什么意思? |
| 嵌入的局限 | 为什么把向量当成意义本身会有风险? |
相似度(similarity)是如何计算的,以及如何找到接近的向量,会在 P1-13.2 说明;把检索结果接到 LLM 输入中的 RAG(retrieval-augmented generation) 会在 P1-13.3 说明。这里专注于 检索之前的表示转换阶段。
把文本放入向量空间的基准¶
- 把嵌入(embedding)理解为把文本转换成向量表示的方法。
- 把向量(vector)理解为由多个数字组成、可供计算的表示。
- 把向量空间(vector space)理解为让文本可以彼此比较的空间。
- 区分初次理解嵌入时所需的数学与概率知识层级。
- 区分嵌入是学习得到的表示(learned representation),而不是意义本身。
- 为进入 P1-13.2 的相似度搜索(similarity search)做准备。
三个基准¶
这里不会深入嵌入公式,而是专注于理解为什么要把文本变成向量。阅读本节时,可先抓住下面三个视角。
| 基准 | 为什么重要 | 本节所需的理解水平 |
|---|---|---|
| 嵌入是把文本变成可计算向量的表示 | 这是后续向量检索与 RAG 的基本前提。 | 只要理解成把句子变成类似数字坐标的表示即可。 |
| 接近的位置可能代表相似的使用语境 | 这能帮助建立“向量空间”的直觉。 | 只要理解成接近的是相似用法,而不是把意义本身装进向量里。 |
| 嵌入不是意义本身,而是用于计算的表示 | 这能减少把向量直接等同于人类意义的误解。 | 只要理解成它是处理意义相关任务的数值工具即可。 |
计算机不会像人一样直接比较句子¶
人可能会觉得下面两句话很相近:
AI 有助于自动化重复性工作。
人工智能可以用来减少反复进行的任务。
这两句话用词并不完全相同。AI 与 人工智能、重复性工作 与 反复进行的任务、自动化 与 减少 的说法不同,但整体意义接近。
简单的字符串比较并不擅长抓住这种关系。
字符串比较:
字面上有多少字符或词完全一致?基于嵌入的比较:
在模型学习到的表示空间里,这些文本彼此有多接近?
嵌入让第二个问题变得可行。文本一旦被转换成数字向量,模型或搜索系统就能计算这些向量之间的距离。
向量是由多个数字组成的表示¶
向量(vector)是由多个数字构成的值。这里可以把它理解成类似坐标的表示。
真实的嵌入向量可能包含几百甚至几千个数字。人不需要逐个读懂这些数字的含义。关键是:模型把文本变成了可计算的位置。
文本:
人可以阅读的表达向量:
模型和搜索系统用于计算的表达
这样转换之后,文本之间就能被比较。例如,可以计算某个文档是否接近一个问题,或者几句话是否在讨论相近主题。
这个地方可能会让人觉得数学负担变重,但理解 P1-13.1 并不要求先掌握线性代数(linear algebra)或概率(probability)公式。
| 知识 | 本节所需水平 |
|---|---|
| 向量(vector) | 直觉上理解为由多个数字组成的表示 |
| 维度(dimension) | 直觉上理解为数字被分成许多位置 |
| 距离(distance) | 直觉上理解为两个表示可以近也可以远 |
| 概率(probability) | 直觉上理解为模型会从数据中学习模式 |
真正的数学会在后面讲相似度(similarity)、点积(dot product)、余弦相似度(cosine similarity)时逐步出现。现在更重要的是先抓住这个流程:把文本变成多数字的位置,再利用这些位置去找接近的文本。
嵌入会把文本放进向量空间¶
向量空间(vector space)是向量所在的空间。它不像二维地图那样容易直接画出来,但直觉是相似的。
接近的位置:
模型认为表达方式相似的文本远离的位置:
模型认为表达方式不同的文本
例如,可以想下面这些句子:
| 句子 | 直觉主题 |
|---|---|
| AI 可以帮助总结文档。 | AI 应用 |
| LLM 可以把长文档压缩成摘要。 | AI 应用 |
| 咖啡豆会因烘焙程度不同而改变味道。 | 咖啡 |
如果嵌入模型训练得足够合适,也适用于当前任务,那么前两句话更有可能彼此靠近,而不是靠近第三句。
但这里的“更有可能”很重要。嵌入并不是绝对的意义地图(meaning map)。它的表现会受训练数据、学习目标、使用语言与领域影响。
单词、句子、文档都可以变成向量¶
P1-11.1 主要看的是单词嵌入(word embedding)。但在实际服务里,句子、段落、文档也都会被表示成向量。
| 单位 | 例子 | 用途 |
|---|---|---|
| 单词(word) | 人工智能 | 单词关系、语言模型输入 |
| token | 人、工智能 或更细的子词 | LLM 内部输入单位 |
| 句子(sentence) | AI 可以帮助总结文档。 | 语义搜索、重复检测 |
| 段落(paragraph) | 多句组成的说明 | 文档检索、问答 |
| 文档(document) | 长文章或文件 | 资料分类、检索候选生成 |
长文档也可以一次变成一个向量,但实际检索中常会把文档切成更小的片段(chunk)。这样更容易找到和问题直接相关的部分。
长文档
-> 拆成较小的段落或片段(chunk)
-> 把每个片段转换成嵌入向量
-> 找出与问题向量接近的片段
怎样切分片段并不简单。切得太小会缺少上下文,切得太大又会把无关内容混在一起。这个问题会在后面的 P1-13.3 RAG 流程,以及 Part 5 的 P5-12.2 检索结果与生成的结合中再次出现。
嵌入不是意义本身¶
讲嵌入时最需要小心的误解是:
误解:
嵌入把句子的真实意义完美地存进数字里。更安全的说明:
嵌入是模型依据学习到的标准,
把文本表示成可计算向量的方式。
嵌入很有用,但也有局限。
| 局限 | 说明 |
|---|---|
| 上下文损失 | 一个短向量很难装下长文档的全部意义。 |
| 多义词问题 | 同一个词会随上下文改变含义。 |
| 领域差异 | 用通用数据训练出的表示,在专业领域可能较弱。 |
| 语言差异 | 中文、韩文、英文或混合表达中的质量可能不同。 |
| 最新性问题 | 嵌入本身并不保证事实是最新的。 |
因此,更安全的看法是:嵌入不是“完全理解了意义”的结果,而是对检索与比较有用的表示。
提示词与嵌入承担不同角色¶
提示词(prompt)负责把当前任务条件交给 LLM。嵌入(embedding)负责把文本转换成向量,使比较与检索成为可能。
| 区分 | 作用 |
|---|---|
| 提示词(prompt) | 给模型输入指示、上下文、示例与约束。 |
| 嵌入(embedding) | 把文本变成向量,用于检索与比较。 |
例如,假设用户提问:
提示词的局限是什么?
如果只有提示词,LLM 会依据已有训练和当前对话上下文回答。但如果希望答案引用本书的特定章节,就必须先找到相关文档。这时,嵌入就可以用来寻找与问题接近的文档片段。
问题文本
-> 问题嵌入
-> 与文档片段嵌入比较
-> 选出接近的片段作为候选
-> 把选中的内容放进 LLM 输入
这条流程会在 P1-13.2 与 P1-13.3 继续展开。
检查清单¶
- 能把嵌入(embedding)解释为把文本变成向量表示的方法。
- 能把向量(vector)解释为由多个数字组成的可计算表示。
- 能把向量空间(vector space)解释为让文本可以彼此比较的空间。
- 能说明理解本节不需要先掌握复杂数学,而只要抓住“位置”和“接近”的直觉。
- 能说明嵌入不是意义本身,而是学习得到的表示。
- 能区分提示词(prompt)与嵌入(embedding)承担不同角色。
- 能说明这一节会自然连到 P1-13.2 的相似度搜索(similarity search)。
- 能说明为什么问题和文档要通过可计算表示来比较,而不能只停留在原始字符串上。
- 能区分
把文本变成向量、比较这些向量、提示词负责给任务条件。
来源与参考资料¶
- Daniel Jurafsky, James H. Martin, Speech and Language Processing, Chapter 6: Neural Networks and Neural Language Models, draft of 2026-01-06, 确认日期: 2026-06-23.
- Yoshua Bengio, Rejean Ducharme, Pascal Vincent, Christian Jauvin, A Neural Probabilistic Language Model, Journal of Machine Learning Research, 2003, 确认日期: 2026-06-23.
- Tomas Mikolov, Kai Chen, Greg Corrado, Jeffrey Dean, Efficient Estimation of Word Representations in Vector Space, arXiv, 2013, 确认日期: 2026-06-23.
- Tomas Mikolov, Ilya Sutskever, Kai Chen, Greg Corrado, Jeffrey Dean, Distributed Representations of Words and Phrases and their Compositionality, arXiv, 2013, 确认日期: 2026-06-23.
- Nils Reimers, Iryna Gurevych, Sentence-BERT: Sentence Embeddings using Siamese BERT-Networks, arXiv, 2019, 确认日期: 2026-07-19.