1. 大语言模型的核心原理拆解
大语言模型(LLM)本质上是一个基于概率的文本生成系统,其核心任务是根据已有文本预测下一个最可能出现的词元(Token)。这种预测能力建立在三个关键技术之上:词嵌入表示、Transformer架构和预训练微调机制。
1.1 词嵌入:从符号到语义空间
传统NLP处理方法(如one-hot编码)存在维度灾难和语义缺失问题。以"猫"、"狗"、"电脑"三个词为例:
- one-hot编码:
python复制这种表示无法体现"猫"与"狗"的语义相似性。[1,0,0] # 猫 [0,1,0] # 狗 [0,0,1] # 电脑
现代词嵌入技术(如Word2Vec、GloVe)通过分布式表示解决了这个问题。典型实现过程:
- 构建包含数十万词的词汇表
- 为每个词随机初始化300-1024维的向量
- 通过上下文预测任务训练网络,调整向量值
- 最终得到的向量满足:
python复制sim(猫,狗) = 0.82 # 高相似度 sim(猫,电脑) = 0.15 # 低相似度
实际应用中,现代大模型更多使用子词切分(Subword Tokenization)技术,如Byte Pair Encoding(BPE)。例如:
- "unhappiness" → ["un", "happi", "ness"]
- "大模型" → ["大", "模型"]
这种处理方式显著降低了词汇表大小(通常3万-10万Token),同时能处理未见过的词汇组合。
1.2 Transformer架构解析
Transformer的核心创新在于完全基于注意力机制处理序列数据,其架构包含以下关键组件:
1.2.1 自注意力机制
计算过程可分为四步:
- 将输入向量转换为Q(Query)、K(Key)、V(Value)三组矩阵
- 计算注意力分数:$Attention(Q,K,V)=softmax(\frac{QK^T}{\sqrt{d_k}})V$
- 多头注意力并行计算(典型8-16个头)
- 残差连接和层归一化
实际代码示例(简化版):
python复制class SelfAttention(nn.Module):
def __init__(self, embed_size, heads):
super().__init__()
self.embed_size = embed_size
self.heads = heads
self.head_dim = embed_size // heads
self.values = nn.Linear(self.head_dim, self.head_dim)
self.keys = nn.Linear(self.head_dim, self.head_dim)
self.queries =
