1. 语言模型进化简史
2003年Bengio团队提出的神经网络语言模型(NNLM)首次将深度学习引入自然语言处理领域。这个看似简单的三层前馈网络,实际上奠定了现代语言模型的三大核心要素:词嵌入、上下文表征和概率预测。我当时复现这个模型时,发现其隐藏层维度仅有30-100维,与现在动辄上万的维度形成鲜明对比。
2013年Mikolov提出的Word2Vec让词嵌入技术真正走向实用。我至今记得第一次用Skip-gram模型训练出的词向量,居然能通过"国王-男人+女人≈女王"这样的向量运算展现语义关系,这在当时堪称魔法。不过这类静态词向量有个致命缺陷:同一个词在不同语境下总是相同表示,比如"苹果"在水果和科技公司场景下无法区分。
2017年6月,Transformer架构的论文《Attention Is All You Need》悄然发布。当时我正在做机器翻译项目,第一次读到这篇论文时,注意力机制的可视化让我恍然大悟——模型确实在自动学习源语言和目标语言间的对应关系。自注意力机制的核心在于计算QKV矩阵,公式看似简单:
code复制Attention(Q,K,V)=softmax(QK^T/√d_k)V
但正是这个√d_k的缩放因子,解决了梯度消失的关键问题。我在早期实现时曾漏掉这个细节,导致模型完全无法收敛。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. Transformer架构精要
2.1 编码器堆叠设计
原始Transformer的编码器由6个相同层堆叠而成(后来模型普遍增加到12-24层),每层包含两个核心子层:
- 多头自注意力机制:8个注意力头并行计算
- 前馈神经网络:通常采用2048维的隐藏层
这两个子层都采用残差连接+层归一化的设计。我在调试模型时发现,将归一化放在残差之前(Pre-LN)比原始论文的Post-LN更易于训练,这后来成为行业共识。
2.2 位置编码的玄机
由于Transformer抛弃了RNN的时序结构,必须通过位置编码注入序列顺序信息。原始论文使用不同频率的正余弦函数:
code复制PE(pos,2i)=sin(pos/10000^(2i/d_model))
PE(pos,2i+1)=cos(pos/10000^(2i/d_model))
有趣的是,后来的T5模型改用简单的相对位置编码,而GPT-3干脆用可学习
