波波算法笔记

Bob Peng

语言模型的前世今生

2025-04-17
语言模型的前世今生

统计类语言模型

语言模型的发展最开始是从统计类语言模型开始的。这是一种统计类算法,通过计算序列中每一个词的概率来预测一整个序列出现的概率。

image

进而有马尔克夫链的思想,出现了n元统计概率模型。但这种方式存在数据稀疏问题:零频率并不代表0概率,尽管后面有一些平滑策略,但这不是根本解决方法。

神经语言模型

进而衍生出想通过向量之间的距离,来表示相关性。也就是神经语言模型NNLM。

神经语言模型

神经语言模型的初代,通过读热编码和词嵌入向量矩阵,拿到向量之后经过全连接与softmax得到概率。本质上任务是做预测,但出现一个副产物,也就是词嵌入向量W。发现这个矩阵可以用来表达词的含义,进而开启了词向量的研究。

Word2Vec

Word2vec发展了两种训练模式,CBOW与Skip-gram:

  • 前者是通过上下文预测中间词
  • 后者则反之

从任务上来说,是训练W词向量矩阵。

Word2Vec

但是出现了两个问题:

  1. 没有考虑序列信息
  2. 没办法处理多义词

RNN与LSTM

针对第1个问题,对NNLM进行改进引入历史中间隐藏状态,发展出了RNN,及其变体LSTM,有效解决了序列信息的问题。

ELMo模型

针对第2个问题,通过继续改进LSTM,引入了双向、多层(ELMo是两层)LSTM的机制,也就得到了ELMo模型。

ELMo模型

Transformer架构

尽管如此,模型对于长上下文信息特征抽取一般,当时就有人提出了attention机制与Transformer的框架。

此架构由向量嵌入、Encoder、Decoder、输出层组成。在编码与解码时,引入了查询(Query)、键(Key)、值(Value)三种权重,通过查询与键进行相似度计算,也就是注意力分配,最后与值相乘来处理不同token之间的注意力信息。

Transformer架构

BERT与GPT

进而又出现了由Transformer改变而来的BERT与GPT模型架构。

BERT

BERT可以说是NLP发展中的集大成者,它引用了:

  • ELMo的双向注意力思想
  • CBOW的训练思想
  • Attention Block的应用

尤其在处理语义理解方面很有优势,这是由它的训练机制决定的。

BERT模型

GPT

而GPT则改造了Transformer的decoder,带掩码的注意力以及前馈网络层,多层堆叠而成,掩码注意力决定了它更适合生成式任务。

GPT模型

再后来,GPT-1/2/3模型发展探讨了使用什么优化函数,以及怎么把模型迁移到多种任务,还有提高模型泛化性的能力,改进了很多训练逻辑。

InstructGPT与RLHF

InstructGPT论文揭示了这些,使用人工标注的数据对预训练的模型微调得到SFT模型。利用SFT模型进行多轮推理,人工排序标注来训练RM模型。再利用RM模型对SFT模型进行PPO算法优化。

image-TZrw.png
指引现阶段大模型训练的三阶段:

  1. 预训练
  2. 指令微调SFT
  3. 强化学习RL

最新进展:DeepSeek

在走到今天的DeepSeek已经对GPT模型做了很大改进:

  • 为了扩展上下文,使用了旋转位置编码RoPE
  • 为了节省资源且提高性能,使用了MLA、RMS、MOE、SwiGLU、MTP、无损负载均衡
  • 训练算法方面使用GRPO

image-KnYQ.png