共计 2220 个字符,预计需要花费 6 分钟才能阅读完成。
统计语言模型时代(1990s-2000s)
语言建模最初通过统计方法实现,核心思想是基于马尔可夫假设:一个词的出现概率仅依赖前面有限的 n - 1 个词(n-gram 模型)。典型代表包括:

- 二元语法模型(Bigram):基于前一个词预测当前词,概率公式为 $P(w_i|w_{i-1})$
- 平滑技术 :解决零概率问题的拉普拉斯平滑(Add-one Smoothing)和 Katz 回退
主要局限:
1. 无法建模长距离依赖(n 取值通常不超过 5)
2. 面临维度灾难(vocabulary_size^n 参数空间)
神经网络语言模型突破(2003-2013)
Bengio 在 2003 年提出首个神经网络语言模型(NNLM),关键技术演进:
- 分布式表示 :通过词嵌入(Word2Vec 前身)解决 one-hot 稀疏性问题
- 三层前馈网络结构 :
# 简化版 NNLM 架构(PyTorch 风格伪代码)class NNLM(nn.Module): def __init__(self, vocab_size, embed_dim, hidden_dim): super().__init__() self.embedding = nn.Embedding(vocab_size, embed_dim) self.fc1 = nn.Linear(embed_dim * context_size, hidden_dim) self.fc2 = nn.Linear(hidden_dim, vocab_size) def forward(self, x): embeds = self.embedding(x).view(-1) # 拼接上下文词向量 out = F.relu(self.fc1(embeds)) return self.fc2(out)
里程碑:Mikolov 等人提出的 Word2Vec(2013)通过 Skip-gram 和 CBOW 模型实现高效词向量训练
RNN/CNN 时代(2014-2017)
循环神经网络方案
- LSTM/GRU:解决长序列梯度消失问题
- 双向架构 :如 BiLSTM 同时考虑前后文信息
典型应用:
– Google 的 Seq2Seq(2014)机器翻译系统
– 多层 LSTM 语言模型(如 Graves 2013)
卷积网络方案
- TextCNN(Kim 2014):并行处理 n -gram 特征
- Dilated CNN:扩大感受野(如 WaveNet 2016)
共同缺陷:
1. RNN 的序列依赖性限制并行能力
2. CNN 难以建模全局依赖关系
Transformer 革命(2017- 至今)
Vaswani 等人在《Attention Is All You Need》中提出 Transformer 架构,核心组件:
- 自注意力机制 :计算复杂度 $O(n^2·d)$,n 为序列长度,d 为维度
- 多头注意力 :并行多个注意力头捕获不同特征
关键实现(PyTorch 示例):
class MultiHeadAttention(nn.Module):
def __init__(self, d_model, num_heads):
super().__init__()
self.d_k = d_model // num_heads
self.num_heads = num_heads
self.q_linear = nn.Linear(d_model, d_model)
self.k_linear = nn.Linear(d_model, d_model)
self.v_linear = nn.Linear(d_model, d_model)
def forward(self, q, k, v, mask=None):
# 线性变换后分割多头
q = split_heads(self.q_linear(q), self.num_heads) # [B, H, L, D/H]
k = split_heads(self.k_linear(k), self.num_heads)
v = split_heads(self.v_linear(v), self.num_heads)
# 缩放点积注意力
scores = torch.matmul(q, k.transpose(-2, -1)) / math.sqrt(self.d_k)
if mask is not None:
scores = scores.masked_fill(mask == 0, -1e9)
attn = F.softmax(scores, dim=-1)
return combine_heads(torch.matmul(attn, v))
技术对比分析
| 技术阶段 | 代表模型 | 参数量级 | 训练效率 | 长程依赖能力 |
|---|---|---|---|---|
| 统计语言模型 | Trigram | 1e6-1e7 | ★★★★ | ★ |
| 神经网络语言模型 | Word2Vec | 1e7-1e8 | ★★★☆ | ★★ |
| RNN 时代 | 3 层 LSTM | 1e8-1e9 | ★★☆ | ★★★ |
| Transformer | BERT-base | 1e8-1e9 | ★★ | ★★★★ |
| 现代 LLM | GPT-3 | 1e11+ | ★ | ★★★★ |
生产环境考量
- 计算资源需求
- 175B 参数的 GPT- 3 需要数千张 GPU 训练
-
推理时显存占用公式:$4\times\text{参数量}\times\text{序列长度}$(FP32)
-
延迟优化方案
- 量化:FP16/INT8 降低带宽需求
- 模型裁剪:Head/Layer 剪枝
- 缓存机制:KV Cache 复用
模型选型指南
- 轻量级场景 (移动端):ALBERT/TinyBERT
- 平衡型任务 (对话系统):GPT-2/BlenderBot
- 知识密集型 :GPT-3/PaLM
- 多语言需求 :mT5/BLOOM
当前趋势表明,模型架构仍在快速演进中,稀疏化、模块化设计将成为下一代 LLM 的重要方向。
正文完
发表至: 未分类
近两天内
