Skip to content

向量空间

向量空间和张量计算,属于 LLM产业的内核原理,是Transformer架构和Self-Attention计算范式的数学根。

一、逻辑架构

从上层看价值输出,看到的逻辑架构是应用层(人机交互)→上下文管理层(推理)→内核层(知识产品),但内观知识模型的实现,是计算(算法架构)→符号表示(空间建模)→参数(训练结果)。

python
应用层 # 会话管理、提示工程
  ⬆️
上下文管理层 # KV Cache、上下文窗口管理  
  ⬆️
算法层 # Transformer、Self-Attention 
  ⬇️
表示层 # 向量维度、嵌入空间
  ⬇️
参数层 # 权重矩阵、训练优化

核心

LLM的物种级设计,只管 Transformer 本身的架构与注意力机制,即神经网络的结构和全连接能力。

在具体实现层面,向量维度是产品级架构设计决策 - 在训练前就固定,决定了模型能表达多复杂的语义关系表示层。维度空间是语义容器,参数值是填充结果。

LLM产业的核心创新是Transformer+Self-Attention,相当于指令集架构在计算机领域的中心地位但这一切都建立在二进制相关的数学根上。

二、表示层

向量维度表示空间的容量,例如 d_model = 768 意味着每个 token 用 768 维向量表示。

ChatGPT、Claude等在设计之初,只会定义诸如768维这个数量,但不存在预设哪768维的说法,纬度只是基向量,不是语义索引,因为值在向量空间中不代表语义,只代表坐标。

python
# 每一个token,都对应一个768维的数组,代表了这个token在空间中的位置
# 在不断的训练过程中,token的空间位置会不断调整,使之更符合预测需要。
"男性" = [0.23, -0.81, ..., 0.67]
"女性" = [0.19, -0.79, ..., 0.71]
"父亲" = [0.25, -0.83, ..., 0.64]

# 通过距离/角度体现关系
cos_similarity("男性", "女性") ≈ 0.85  # 相关但有方向差异
cos_similarity("男性", "父亲") ≈ 0.92  # 更相似
cos_similarity("男性", "汽车") ≈ 0.12  # 不相关

但反过来说,向量空间、张量计算这门数学是LLM核心算法创新的可行性根源,因此也会带来一定刚性约束。为什么LLM从一开始就需要确定多少维,因为在中途将d_model = 768改成d_model = 1280,几乎不存在可行性,因为矩阵计算无法对齐,已训练的知识无法迁移。

三、词表

计算是向量空间的数学问题,但推理的过程还涉及token此表,以及token→向量向量→token的转换,这部分需要传统索引。

token→向量

  • 输入阶段:模型有一个 embedding 矩阵(词表大小 × 768)。
  • 每个 token 在词表里有一个索引,例如 "男性" → 12345。
  • Embedding 矩阵的第 12345 行,就是它的 768 维向量。

虽然基于计算效率需要,embedding矩阵是采用特定格式的二进制数组来存储的,但索引业务和业务流程,跟传统sql数据库实现并无不同。这个过程就是查表:token 索引 → 对应的一行向量。

四、计算原理

LLM 向量空间

  • 输入:token 序列
  • 映射:embedding 矩阵 → 初始高维向量
  • 计算:多层 Transformer → self-attention + 前馈网络 → 实际推理出的是一个目标语义坐标,只是因为相比原始信息,隐含更完整的上下文信息和注意力关系,通常又称为隐藏表示
  • 决策:隐藏表示 × 输出 embedding → 计算相似度 → softmax 得到下一个 token 的概率
  • 输出:采样或取最大概率 token,并附加到输出序列中,参与下一轮的决策。输出 token 的概率分布本质上是“隐藏表示在输出 embedding 空间里的相似度投影

RAG 向量空间

  • 输入:用户 query(文本序列)
  • 映射:embedding 模型 → query 向量
  • 计算:query 向量 与 预先计算好的文档/段落向量 做相似度(cosine/内积)
  • 决策:找到最相似的知识片段
  • 输出:原文文本片段 → 送入 LLM 生成响应

整个过程,都是输入→映射→相似度计算→反向映射→输出,技术流程原理完全一致,只不过参与运算的粒度不同,且后者不动态生成,不依赖上下文。