文本嵌入中的高维稠密向量
·
在文本嵌入(Text Embedding)模型中,“高维稠密向量”(High-Dimensional Dense Vector)是机器理解人类语言的核心方式。我们可以拆解这个概念,从高维、稠密和向量三个维度来理解。
1. 概念拆解
向量 (Vector):语言的“数字坐标”
在数学上,向量是一组有序的数字(如 [0.1,−0.5,0.8,...][0.1, -0.5, 0.8, ...][0.1,−0.5,0.8,...])。在 AI 看来,每一个词、每一段话都可以被映射到空间中的一个点。
- 语义相似性:如果两个词的意思相近(如“医生”和“护士”),它们在空间里的坐标点距离就会非常近。
高维 (High-Dimensional):语义的“精细程度”
这里的“维”代表了模型理解事物的特征维度。
- 低维(如 2D/3D):只能表达简单的关系。
- 高维(常见为 768, 1024 或 1536 维):每一维都代表了某种潜在的语义特征(虽然人类无法直观理解这些维度具体指什么,但它们可能分别代表了“性别”、“情感倾向”、“抽象程度”、“时态”等极其细微的差异)。
稠密 (Dense):信息的“压缩效率”
这是相对于“稀疏向量”(Sparse Vector)而言的:
- 稀疏向量 (One-Hot / TF-IDF):维度极高(通常等于词典大小,如 50,000 维),但绝大部分位置都是 0,只有少数位置是 1。这就像一张巨大的空网,效率低且无法表达词与词的关系。
- 稠密向量 (Embedding):维度适中(几百到几千),但每个位置都有非零的实数值。它将海量信息压缩在一个固定长度的数字序列中,信息密度极高。
2. 直观对比:稀疏 vs 稠密
假设我们要表达“猫”这个词:
| 特性 | 稀疏向量 (Sparse) | 稠密向量 (Dense) |
|---|---|---|
| 形式 | [0,0,0,1,0,0,...][0, 0, 0, 1, 0, 0, ...][0,0,0,1,0,0,...] | [0.12,−0.58,0.33,0.11,...][0.12, -0.58, 0.33, 0.11, ...][0.12,−0.58,0.33,0.11,...] |
| 维度 | 取决于词库大小(极高) | 固定维度(如 768) |
| 存储 | 浪费空间,全是 0 | 紧凑,每一位都有意义 |
| 语义理解 | 无法理解“猫”和“狗”的关系 | 能计算出“猫”和“狗”的距离很近 |
3. 为什么它对大模型(LLM)至关重要?
高维稠密向量本质上是将人类的感性语言转化为了计算机的线性代数。
- 统一表示:不管是中文、英文还是图像,只要转化成相同维度的向量,计算机就可以在同一个“语义空间”里进行比较。
- 检索增强 (RAG):当你问 AI 问题时,系统先把你的问题变成一个向量,然后在数据库里寻找向量距离最近的文档块。这就是为什么 RAG 引擎(如你之前提到的 LangChain 相关的向量数据库)能找到相关资料的原因。
- 泛化能力:因为它是基于语义坐标的,即使你输入的词不在数据库里,只要它在语义上接近某个词,模型依然能“猜”出你的意图。
4. 形象化的例子:水果空间
想象一个三维坐标系:
- X 轴代表:甜度
- Y 轴代表:硬度
- Z 轴代表:大小
“西瓜”的向量可能是 [0.9,0.2,0.9][0.9, 0.2, 0.9][0.9,0.2,0.9],而“哈密瓜”可能是 [0.8,0.3,0.7][0.8, 0.3, 0.7][0.8,0.3,0.7]。
因为坐标数值接近,计算机不需要认识汉字,仅凭数学计算就知道这两个东西很像。而在真正的嵌入模型中,这种轴有 1536 条。
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐


所有评论(0)