大模型入门:从Transformer到GPT-4的进化之路
大模型入门从Transformer到GPT-4的进化之路从2017年Transformer架构的诞生到2023年GPT-4的震撼发布大语言模型LLM在短短几年间彻底改变了人工智能的格局。本文将带你系统梳理这条波澜壮阔的技术进化之路。一、Transformer革命性的起点2017年Google团队在论文《Attention Is All You Need》中提出了Transformer架构这无疑是现代自然语言处理领域最重要的里程碑。与之前的RNN循环神经网络和LSTM长短期记忆网络不同Transformer完全基于自注意力机制Self-Attention彻底摆脱了序列计算的限制。1.1 自注意力机制的核心思想自注意力机制允许模型在处理每个词时同时关注输入序列中的所有位置并为每个位置分配不同的权重。这种全局视野使得模型能够捕捉长距离依赖关系而不会因为序列长度增加而丢失信息。import torch import torch.nn as nn import math class SelfAttention(nn.Module): def __init__(self, embed_dim, num_heads): super().__init__() self.num_heads num_heads self.head_dim embed_dim // num_heads self.q_proj nn.Linear(embed_dim, embed_dim) self.k_proj nn.Linear(embed_dim, embed_dim) self.v_proj nn.Linear(embed_dim, embed_dim) self.out_proj nn.Linear(embed_dim, embed_dim) def forward(self, x, maskNone): batch_size, seq_len, embed_dim x.size() # 生成Q、K、V矩阵 Q self.q_proj(x).view(batch_size, seq_len, self.num_heads, self.head_dim).transpose(1, 2) K self.k_proj(x).view(batch_size, seq_len, self.num_heads, self.head_dim).transpose(1, 2) V self.v_proj(x).view(batch_size, seq_len, self.num_heads, self.head_dim).transpose(1, 2) # 计算注意力分数 scores torch.matmul(Q, K.transpose(-2, -1)) / math.sqrt(self.head_dim) if mask is not None: scores scores.masked_fill(mask 0, float(-inf)) attn_weights torch.softmax(scores, dim-1) output torch.matmul(attn_weights, V) # 合并多头输出 output output.transpose(1, 2).contiguous().view(batch_size, seq_len, embed_dim) return self.out_proj(output)1.2 Transformer架构的关键组件| 组件 | 功能 | 创新点 | |------|------|--------| | 多头注意力 | 并行计算多组注意力捕捉不同语义关系 | 信息来源多样化 | | 位置编码 | 为词嵌入添加位置信息 | 无需递归即可感知顺序 | | 前馈网络 | 对每个位置独立进行非线性变换 | 增强模型表达能力 | | 残差连接 | 缓解梯度消失加速训练 | 支持深层网络构建 | | Layer Norm | 稳定训练过程 | 提升收敛速度 |二、从BERT到GPT预训练范式的分化Transformer架构诞生后研究者们迅速探索其在预训练任务上的潜力。两条主要的技术路线应运而生2.1 BERT双向编码的王者Google于2018年推出的BERTBidirectional Encoder Representations from Transformers采用双向编码器结构通过Masked Language ModelMLM和Next Sentence PredictionNSP两个预训练任务学会深度理解上下文语义。BERT的核心优势在于双向上下文理解同时利用左右两侧信息强大的迁移能力下游任务只需微调即可预训练微调范式降低标注数据需求2.2 GPT系列生成式预训练的崛起与BERT不同OpenAI的GPTGenerative Pre-trained Transformer系列选择了单向解码器架构专注于自回归语言建模。这种选择看似浪费了双向信息却为后来的生成能力爆发埋下了伏笔。GPT技术演进一览表| 模型 | 发布时间 | 参数量 | 训练数据 | 关键突破 | |------|----------|--------|----