```latex % Transformer 架构详解 Beamer 演示文稿 \documentclass[aspectratio=169]{beamer} % 主题设置 \usetheme{Madrid} \usecolortheme{default} % 中文支持 \usepackage{ctex} \usepackage{graphicx} \usepackage{amsmath} \usepackage{listings} \usepackage{tikz} % 代码样式 \lstset{ basicstyle=\ttfamily\small, breaklines=true, frame=single } % 标题信息 \title{Transformer 架构详解} \subtitle{从 RNN 到注意力机制的革命} \author{演讲者姓名} \institute{机构名称} \date{\today} \begin{document} % 标题页 \begin{frame} \titlepage \end{frame} % 目录页 \begin{frame}{目录} \tableofcontents \end{frame} % ==================== 第一部分:历史背景 ==================== \section{历史背景} \begin{frame}{Transformer 的诞生} \begin{block}{关键时刻} \begin{itemize} \item \textbf{2017年}:Google Brain + Google Research 团队 \item 论文:《Attention Is All You Need》 \item 首个实现:机器翻译模型(英-德、英-法) \end{itemize} \end{block} \begin{block}{核心创新} \begin{itemize} \item 完全摆脱 RNN/LSTM 的循环结构 \item 基于自注意力机制(Self-Attention) \item 实现真正的并行计算 \end{itemize} \end{block} \end{frame} \begin{frame}{发展脉络} \begin{columns} \column{0.5\textwidth} \textbf{2017-2018:奠基} \begin{itemize} \item 2017:Transformer 原始论文 \item 2018:GPT-1(OpenAI) \item 2018:BERT(Google) \end{itemize} \column{0.5\textwidth} \textbf{2019-至今:爆发} \begin{itemize} \item GPT-2/3/4 系列 \item T5、XLNet \item Vision Transformer \item ChatGPT、DALL-E \end{itemize} \end{columns} \end{frame} % ==================== 第二部分:核心概念 ==================== \section{核心概念} \begin{frame}{Transformer vs RNN:根本区别} \begin{columns} \column{0.5\textwidth} \textbf{RNN 的困境} \begin{itemize} \item 串行处理,无法并行 \item 长依赖梯度消失 \item 记忆容量有限 \item 训练速度慢 \end{itemize} \column{0.5\textwidth} \textbf{Transformer 的突破} \begin{itemize} \item 完全并行计算 \item 自注意力直接建模长距离依赖 \item 多头机制捕捉多维关系 \item 训练效率大幅提升 \end{itemize} \end{columns} \vspace{1em} \begin{alertblock}{形象比喻} RNN 像接力赛,信息逐步传递;Transformer 像电话会议,所有位置直接通信 \end{alertblock} \end{frame} \begin{frame}{三大核心机制} \begin{enumerate} \item \textbf{并行计算} \begin{itemize} \item 摆脱时序依赖,整个序列同时处理 \item 充分利用 GPU/TPU 并行能力 \end{itemize} \item \textbf{自注意力机制(Self-Attention)} \begin{itemize} \item Query、Key、Value 三元组 \item 点积注意力:$\text{Attention}(Q,K,V) = \text{softmax}(\frac{QK^T}{\sqrt{d_k}})V$ \item 动态权重分配 \end{itemize} \item \textbf{位置编码(Positional Encoding)} \begin{itemize} \item 弥补注意力机制的"位置无感" \item 正弦/余弦函数或可学习嵌入 \end{itemize} \end{enumerate} \end{frame} % ==================== 第三部分:架构详解 ==================== \section{架构详解} \begin{frame}{Transformer 完整架构} \begin{columns} \column{0.4\textwidth} \textbf{Encoder(编码器)} \begin{itemize} \item 双向注意力 \item 理解输入文本 \item N 层堆叠 \end{itemize} \vspace{1em} \textbf{Decoder(解码器)} \begin{itemize} \item 单向因果注意力 \item 交叉注意力 \item 生成输出序列 \end{itemize} \column{0.6\textwidth} \begin{block}{三种变体} \begin{enumerate} \item \textbf{Encoder-only}:BERT(理解任务) \item \textbf{Decoder-only}:GPT 系列(生成任务) \item \textbf{Encoder-Decoder}:T5、BART(翻译任务) \end{enumerate} \end{block} \end{columns} \end{frame} \begin{frame}[fragile]{训练流程:核心代码} \begin{lstlisting}[language=Python] def forward(self, idx, targets=None): # 1. Token Embedding + Position Embedding tok_emb = self.wte(idx) pos_emb = self.wpe(pos) x = self.drop(tok_emb + pos_emb) # 2. Transformer Blocks (N层) for block in self.h: x = block(x) # Self-Attention + FFN # 3. Layer Norm x = self.ln_f(x) # 4. 输出层:映射到词汇表 logits = self.lm_head(x) # 5. 计算损失 loss = F.cross_entropy(logits, targets) return logits, loss \end{lstlisting} \end{frame} \begin{frame}{Transformer Block 内部结构} 每个 Block 包含两个子层: \begin{enumerate} \item \textbf{多头自注意力(Multi-Head Attention)} \begin{itemize} \item 计算 Q、K、V 矩阵 \item 多头并行计算注意力 \item 拼接后通过线性层 \end{itemize} \item \textbf{前馈神经网络(FFN)} \begin{itemize} \item 两层线性变换 \item 中间层维度通常为 $4 \times d_{model}$ \item 激活函数:GELU 或 ReLU \end{itemize} \end{enumerate} \vspace{1em} \begin{alertblock}{关键技巧} 每个子层后添加 \textbf{残差连接 + Layer Norm},保证训练稳定性 \end{alertblock} \end{frame} % ==================== 第四部分:推理过程 ==================== \section{推理过程} \begin{frame}{自回归生成} \begin{block}{以翻译为例:"好久不见" → "long time no see"} \begin{enumerate} \item 输入:好久不见 + $\langle$BOS$\rangle$ → 输出:long \item 输入:好久不见 + $\langle$BOS$\rangle$ + long → 输出:time \item 输入:好久不见 + $\langle$BOS$\rangle$ + long time → 输出:no \item 输入:好久不见 + $\langle$BOS$\rangle$ + long time no → 输出:see \item 输入:好久不见 + $\langle$BOS$\rangle$ + long time no see → 输出:$\langle$EOS$\rangle$ \end{enumerate} \end{block} \begin{itemize} \item 每次生成一个 token \item 使用因果掩码(Causal Mask)防止"看到未来" \item 通过 softmax 得到概率分布,采样或取最大值 \end{itemize} \end{frame} \begin{frame}[fragile]{推理代码示例} \begin{lstlisting}[language=Python] @torch.no_grad() def generate(self, idx, max_new_tokens, temperature=1.0): for _ in range(max_new_tokens): # 1. 前向传播得到 logits logits, _ = self(idx) # 2. 取最后一个位置的 logits logits = logits[:, -1, :] / temperature # 3. Softmax 得到概率分布 probs = F.softmax(logits, dim=-1) # 4. 采样下一个 token idx_next = torch.multinomial(probs, num_samples=1) # 5. 拼接到序列中 idx = torch.cat((idx, idx_next), dim=1) return idx \end{lstlisting} \end{frame} % ==================== 第五部分:关键参数 ==================== \section{关键参数} \begin{frame}{模型参数解析} \begin{table} \centering \begin{tabular}{|l|l|p{6cm}|} \hline \textbf{参数} & \textbf{典型值} & \textbf{含义} \\ \hline vocab\_size & 50257 & 词汇表大小(token 总数) \\ \hline d\_model & 768/1024 & 模型维度(词向量维度) \\ \hline n\_head & 12/16 & 多头注意力的头数 \\ \hline n\_layer & 12/24/48 & Transformer Block 层数 \\ \hline d\_ff & 3072/4096 & FFN 中间层维度(通常 4× d\_model) \\ \hline max\_seq\_len & 512/2048 & 最大序列长度 \\ \hline \end{tabular} \end{table} \vspace{1em} \textbf{参数量计算}:主要来自 Token Embedding、多头注意力和 FFN \end{frame} % ==================== 第六部分:应用与发展 ==================== \section{应用与发展} \begin{frame}{三大架构变体的应用} \begin{table} \centering \small \begin{tabular}{|l|l|l|} \hline \textbf{架构类型} & \textbf{代表模型} & \textbf{适用任务} \\ \hline Encoder-only & BERT & 文本分类、NER、意图识别 \\ \hline Decoder-only & GPT/Llama/Qwen & 文本生成、对话、代码生成 \\ \hline Encoder-Decoder & T5/BART & 翻译、摘要、问答 \\ \hline \end{tabular} \end{table} \vspace{1em} \begin{block}{当前趋势} \begin{itemize} \item Decoder-only 成为主流(GPT、Llama 系列) \item 参数规模持续增长(7B → 70B → 100B+) \item 多模态扩展(Vision Transformer、DALL-E) \end{itemize} \end{block} \end{frame} \begin{frame}{Transformer 的影响} \begin{columns} \column{0.5\textwidth} \textbf{技术突破} \begin{itemize} \item 统一了 NLP 架构 \item 催生大模型时代 \item 扩展到计算机视觉 \item 推动 AI 产业化 \end{itemize} \column{0.5\textwidth} \textbf{产品应用} \begin{itemize} \item ChatGPT(对话) \item GitHub Copilot(代码) \item DALL-E(图像生成) \item AlphaFold(蛋白质预测) \end{itemize} \end{columns} \vspace{2em} \begin{center} \Large\textbf{"Attention Is All You Need" 改变了 AI 的历史} \end{center} \end{frame} % ==================== 第七部分:总结 ==================== \section{总结} \begin{frame}{核心要点回顾} \begin{enumerate} \item \textbf{突破点}:用自注意力替代 RNN,实现并行计算 \item \textbf{三大机制}:Self-Attention + 位置编码 + 多头注意力 \item \textbf{三种架构}:Encoder-only / Decoder-only / Encoder-Decoder \item \textbf{训练流程}:Embedding → Transformer Blocks → Output \item \textbf{推理方式}:自回归生成,逐 token 输出 \end{enumerate} \vspace{1em} \begin{alertblock}{关键洞察} Transformer 不是抽象的数学玩具,而是现代 AI 的骨干(backbone),支撑着从 ChatGPT 到 DALL-E 的所有大模型产品 \end{alertblock} \end{frame} \begin{frame}{学习建议} \begin{block}{进阶方向} \begin{enumerate} \item 从头实现一个 mini-GPT(推荐 Andrej Karpathy 的教程) \item 对比 Transformer 与 GNN/GCN 的内在联系 \item 研究不同注意力变体(Sparse、Linear、Flash Attention) \item 探索多模态 Transformer(ViT、CLIP) \end{enumerate} \end{block} \vspace{1em} \textbf{关键资源}: \begin{itemize} \item 原论文:《Attention Is All You Need》 \item 3Blue1Brown 的 Transformer 可视化视频 \item Hugging Face Transformers 库 \end{itemize} \end{frame} % 感谢页 \begin{frame} \begin{center} \Huge 感谢聆听! \vspace{2em} \Large 问题与讨论 \end{center} \end{frame} \end{document} ```