本文字数:3460 字,阅读约需 12 分钟。
ChatGPT、Claude这些AI助手能理解我们说的话,还能给出像样的回答。做到这点,靠的是Embedding技术。
没有它,大语言模型根本没法处理文字输入。Embedding把人类语言变成数字,让机器能"读懂"。
Embedding就是把词语、句子变成一串数字。听起来简单,但背后的想法很有意思。
我们说"北京"这个词时,脑子里会想到:城市、首都、政治中心、文化古都。这些概念连在一起,构成我们对"北京"的理解。Embedding做的,就是把这种理解映射到数学空间里。
每个词变成一个向量——一组数字。有意思的是,语义相近的词,向量也靠得近。"北京"和"上海"的向量距离很近,都是城市。但"北京"和"苹果"就离得远,语义完全不同。

这就让机器能通过距离来理解语义,不是简单匹配关键词。
举个通俗的例子。描述几个水果:
用数字表示这些特征,比如给每个特征打分(0到1):
真实的Embedding要复杂得多,通常是几百到几千维。但思路就是这样:用数字刻画特征。
模型怎么学会这些特征?它看上下文。就像通过朋友圈了解一个人,模型通过观察一个词周围经常出现什么词,理解这个词的含义。
比如"银行":
模型通过阅读海量文本,学会根据上下文判断词义。语义相近的词,向量也接近。
用余弦相似度。计算两个向量的夹角:
余弦相似度关注向量的方向,不是长度。在自然语言里,概念的相似性更多体现在"方向"上。

机器学习里有个更广的概念——张量(Tensor),就是N维数组:
Embedding向量是一维张量。在大语言模型里,虽然每个词的Embedding是向量,但批量处理时会组织成矩阵或更高维张量。
Embedding技术从简单到复杂,走了一段路。
Word2Vec是早期代表,关注单个词的向量化。思路是:通过上下文学习词的语义。
模型观察大量文本,学习哪些词经常出现在相似的语境中。"猫"和"老虎"都会出现在"动物园"、"宠物"这些上下文里。通过统计学习,这些词在向量空间中位置靠近。
这揭示了一个特性:语义相似性可以通过上下文分布的相似性来捕捉。
但Word2Vec有局限:每个词只有固定向量,处理不了一词多义。"苹果"可以指水果,也可以指科技公司,Word2Vec把它们映射到同一个向量。
Transformer引入的自注意力机制(Self-Attention)是重大突破。模型生成某个词的向量时,能同时考虑句子中所有其他词。
两个优势:
BERT(Bidirectional Encoder Representations from Transformers)实现了双向上下文理解。预训练时同时考虑一个词左右两侧的所有词。
以"很长"这个词组为例:
BERT根据不同上下文为"很长"生成不同向量。Embedding技术从静态表示迈向动态、上下文感知的语义理解。

Embedding是大语言模型(LLM)运转的基石。
用户向ChatGPT输入问题时,系统内部经历几个步骤:
Embedding把人类可读的语言变成机器可计算的数字。没有这一步,推理、理解、生成都无从谈起。

Embedding的重要性不只体现在输入阶段。在向量空间里,复杂语义操作通过数学运算实现:
这些数学操作让LLM进行推理和生成,不是简单模式匹配。
除了在LLM内部,Embedding在实际应用中也很重要,特别是在RAG(Retrieval-Augmented Generation,检索增强生成)框架中。
RAG把大语言模型和可搜索的外部知识库结合。核心想法:让模型访问训练时没见过的新信息,提升回答准确性和时效性。
传统LLM应用里,模型知识来自训练数据。GPT-4的训练数据截止到2023年,之后发生的事它不知道。RAG通过连接外部知识库,让模型实时获取最新信息。
在RAG框架中,Embedding连接外部知识库与大语言模型。工作流程:

RAG里有个原则必须遵守:导入数据和查询时,必须用同一个Embedding模型。
不同模型把相同文本映射到不同向量空间。导入和查询用不同模型,就像用英语语法规则理解中文句子,匹配会失败。保持模型一致,检索才准确。
Embedding模型性能直接决定RAG效果。高质量模型能准确捕捉文本语义,检索出最相关的信息。模型性能不佳会:
选合适的Embedding模型,是RAG系统成功的关键。
Embedding技术广泛应用后,专门存储和检索高维向量的向量数据库出现了。这类数据库的核心能力是相似性搜索,根据向量距离查找最相似的向量。

Elasticsearch通过dense_vector字段和kNN(最近邻)搜索功能,把Embedding转换、存储和检索封装在一起。用户可以直接把Elasticsearch作为RAG框架的向量存储:
这降低了技术门槛,开发者不用单独部署向量数据库,就能实现语义检索。
Embedding技术把语言变成数学,让计算机能"理解"人类语言。
从技术演进看,Embedding从简单的词向量发展到上下文感知的动态表示。从Word2Vec到BERT,再到如今的大语言模型,每次技术突破都伴随着Embedding能力提升。
从应用看,Embedding在LLM内部把自然语言转化为数学表示。在RAG等应用中,Embedding实现从关键词匹配到语义检索,大幅提升信息检索准确性。
未来,Embedding还会承担更多:
理解Embedding的原理和应用,有助于更好地使用AI工具,也为探索AI技术未来提供视角。在AI时代,Embedding将继续连接人类智慧与机器能力。
都看到这里了,如果觉得有帮助,还请您给我个小小的鼓励,动动手指,帮忙点个在看或者点个赞👍🏻!谢谢喽!!!
关注我,持续分享后端开发经验!