```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}
```