深度解析:大语言模型(LLM)的底层 Transformer 架构与计算机制摘要
从 GPT 到各类开源双语大模型,生成式人工智能(Generative AI)在自然语言处理领域取得了突破性进展。这些大模型(LLM)的核心基石无一例外都是 Transformer 架构。本文将深入探讨大模型从文本输入到 Token 序列的转化、自注意力机制(Self-Attention)的数学本质,以及决定推断期性能的关键技术——KV Cache 的工作原理。
一、 文本的数字化:Tokenization 与词嵌入
计算机无法直接理解人类的文本,大模型处理文本的第一步是将其转化为离散的数字序列,这一过程由 Tokenizer(分词器) 完成。
目前主流大模型多采用 BPE(Byte-Pair Encoding,字节对编码) 或 PieceWise 算法。Tokenizer 会维护一个庞大的词表(Vocabulary),通常包含数万到十几万个 Token。输入文本会被切分成词根或子词,并映射为词表中的索引整数。
Plaintext
原始文本: "Deep Learning"
Tokenizer 切分: ["Deep", " Learning"]
Token ID 序列: [23412, 8451]
进入模型后,这些离散的 Token ID 会通过一个嵌入矩阵(Embedding Matrix)转化为高维稠密向量。例如,在 LLaMA-7B 模型中,每个 Token 会被转化为一个 4096 维 的浮点数向量。这个向量不仅代表了词本身的语义,还会加上位置编码(Positional Encoding),以确保模型能够识别词语在句子中的先后顺序。
二、 核心引擎:自注意力机制(Self-Attention)的数学本质
Transformer 架构的核心是自注意力机制,它允许模型在处理某一个词时,动态地计算这个词与上下文中其他所有词的关联程度。
对于输入的向量序列,模型通过三个不同的权重矩阵
$$W_Q, W_K, W_V$$
展开线性变换,为每个 Token 生成三个向量:
-
Query (Q):查询向量——“当前词正在寻找什么?”
-
Key (K):键向量——“当前词包含什么线索,能匹配什么?”
-
Value (V):值向量——“当前词的实际语义内容是什么?”
其核心数学公式为经典的缩放点积注意力(Scaled Dot-Product Attention):
$$Attention(Q, K, V) = softmax\left(\frac{QK^T}{\sqrt{d_k}}\right)V$$
步骤拆解:
-
$QK^T$ (点积计算):计算所有 Query 与所有 Key 的点积,得到一个相似度矩阵。点积值越大,说明两个词之间的相关性越高。
-
$\sqrt{d_k}$ (缩放因子):$d_k$ 是向量的维度。除以 $\sqrt{d_k}$ 是为了防止梯度消失或梯度爆炸,让 Softmax 函数的梯度更稳定。
-
Softmax (归一化):将矩阵转化为概率分布,每一行的和为 1,即“注意力权重”。
-
乘以 $V$ (加权求和):用注意力权重对 Value 向量进行加权求和,输出最终的特征向量。这个向量已经深度融合了上下文的语义。
三、 自回归生成(Autoregressive)与推断期的性能瓶颈
大模型生成文本的过程是自回归的,即每次只能预测并输出一个 Token。每输出一个新的 Token,这个 Token 就会被当作输入的一部分,重新送入模型中来预测下一个 Token。
这种“逐字生成”的特性导致了训练和推断(推理)在计算模式上的巨大差异:
-
训练期(并行计算):由于目标文本是已知的,模型可以使用 Causal Mask(因果掩码) 遮挡未来的词,实现整句话的并行训练,充分释放 GPU 的算力。
-
推断期(序列计算):每生成一个新词,都要重新计算整条序列,属于典型的 内存带宽受限型(Memory-Bound) 任务。
四、 关键优化:KV Cache(键值缓存)机制
在推断阶段,由于前文已经生成的 Token 是固定不变的,每一次生成新 Token 时,重新去计算前文所有 Token 的 $K$ 和 $V$ 向量会造成极大的计算资源浪费。为了打破这一瓶颈,现代 LLM 推断引擎普遍采用了 KV Cache 技术。
KV Cache 的工作原理:
-
Prefill(预填充阶段):用户输入 Prompt 之后,模型一次性计算出 Prompt 中所有 Token 的 $Q, K, V$ 向量。此时,将所有的 $K$ 和 $V$ 向量缓存在显存中(KV Cache)。
-
Decoding(解码生成阶段):当生成第一个增量 Token 时,模型只需要为这单个新 Token 计算它的 $Q_{new}, K_{new}, V_{new}$。
-
拼接与计算:将新计算的 $K_{new}$ 和 $V_{new}$ 追加到显存中已有的 KV Cache 末尾。随后,让 $Q_{new}$ 与完整的 KV Cache 进行点积运算,生成下一个 Token。
技术代价:以显存换时间
KV Cache 极大地减少了每一步的矩阵乘法计算量(将 $O(N^2)$ 的计算降低到 $O(N)$),但它对显存提出了极高的挑战。随着上下文长度(Context Length)的增加以及并发请求(Batch Size)的增大,KV Cache 占用的显存会呈线性暴增,甚至超过模型权重本身占用的显存。这也是为什么大模型长文本处理需要引入 PagedAttention(如 vLLM 框架)等内存管理技术的原因。
五、 总结
-
大语言模型通过 Tokenizer 将文本特征化,并利用高维嵌入向量和位置编码建立底层的空间语义表示。
-
Transformer 架构通过 $Q, K, V$ 的矩阵运算,实现了自注意力机制,能够精准捕获长距离的上下文依赖关系。
-
自回归的生成模式使得大模型在推理上面临严峻的内存带宽挑战,而 KV Cache 机制通过缓存历史键值向量,成功用显存空间换取了推理时间,是现代大模型工程落地的核心优化手段。
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐

所有评论(0)