语言模型的前世今生
编辑
统计类语言模型
语言模型的发展最开始是从统计类语言模型开始的。这是一种统计类算法,通过计算序列中每一个词的概率来预测一整个序列出现的概率。
进而有马尔克夫链的思想,出现了n元统计概率模型。但这种方式存在数据稀疏问题:零频率并不代表0概率,尽管后面有一些平滑策略,但这不是根本解决方法。
神经语言模型
进而衍生出想通过向量之间的距离,来表示相关性。也就是神经语言模型NNLM。
神经语言模型的初代,通过读热编码和词嵌入向量矩阵,拿到向量之后经过全连接与softmax得到概率。本质上任务是做预测,但出现一个副产物,也就是词嵌入向量W。发现这个矩阵可以用来表达词的含义,进而开启了词向量的研究。
Word2Vec
Word2vec发展了两种训练模式,CBOW与Skip-gram:
- 前者是通过上下文预测中间词
- 后者则反之
从任务上来说,是训练W词向量矩阵。
但是出现了两个问题:
- 没有考虑序列信息
- 没办法处理多义词
RNN与LSTM
针对第1个问题,对NNLM进行改进引入历史中间隐藏状态,发展出了RNN,及其变体LSTM,有效解决了序列信息的问题。
ELMo模型
针对第2个问题,通过继续改进LSTM,引入了双向、多层(ELMo是两层)LSTM的机制,也就得到了ELMo模型。
Transformer架构
尽管如此,模型对于长上下文信息特征抽取一般,当时就有人提出了attention机制与Transformer的框架。
此架构由向量嵌入、Encoder、Decoder、输出层组成。在编码与解码时,引入了查询(Query)、键(Key)、值(Value)三种权重,通过查询与键进行相似度计算,也就是注意力分配,最后与值相乘来处理不同token之间的注意力信息。
BERT与GPT
进而又出现了由Transformer改变而来的BERT与GPT模型架构。
BERT
BERT可以说是NLP发展中的集大成者,它引用了:
- ELMo的双向注意力思想
- CBOW的训练思想
- Attention Block的应用
尤其在处理语义理解方面很有优势,这是由它的训练机制决定的。
GPT
而GPT则改造了Transformer的decoder,带掩码的注意力以及前馈网络层,多层堆叠而成,掩码注意力决定了它更适合生成式任务。
再后来,GPT-1/2/3模型发展探讨了使用什么优化函数,以及怎么把模型迁移到多种任务,还有提高模型泛化性的能力,改进了很多训练逻辑。
InstructGPT与RLHF
InstructGPT论文揭示了这些,使用人工标注的数据对预训练的模型微调得到SFT模型。利用SFT模型进行多轮推理,人工排序标注来训练RM模型。再利用RM模型对SFT模型进行PPO算法优化。
指引现阶段大模型训练的三阶段:
- 预训练
- 指令微调SFT
- 强化学习RL
最新进展:DeepSeek
在走到今天的DeepSeek已经对GPT模型做了很大改进:
- 为了扩展上下文,使用了旋转位置编码RoPE
- 为了节省资源且提高性能,使用了MLA、RMS、MOE、SwiGLU、MTP、无损负载均衡
- 训练算法方面使用GRPO
- 0
- 0
-
分享