Skip to content

zhao030709/TransformerLearning

Repository files navigation

Transformer 和自注意力机制学习指南

欢迎来到 Transformer 学习之旅!这个项目将带你从零开始理解和实现 Transformer 架构。

📚 学习路径

第一阶段:理解自注意力机制

  1. 理论学习: 阅读 docs/01_自注意力机制原理.md
  2. 代码实践: 运行 code/01_self_attention.py
  3. 练习: 修改参数,观察注意力权重的变化

第二阶段:掌握多头注意力

  1. 理论学习: 阅读 docs/02_多头注意力机制.md
  2. 代码实践: 运行 code/02_multi_head_attention.py
  3. 可视化: 使用提供的可视化工具理解多头机制

第三阶段:完整 Transformer 架构

  1. 理论学习: 阅读 docs/03_Transformer架构详解.md
  2. 代码实践: 运行 code/03_transformer_model.py
  3. 理解组件: 编码器、解码器、位置编码

第四阶段:实战应用

  1. 项目实践: projects/machine_translation/
  2. 训练模型: 在简单数据集上训练 Transformer
  3. 评估优化: 理解训练技巧和优化方法

📁 项目结构

TransformerLearning/
├── README.md                          # 主学习指南
├── docs/                              # 原理讲解文档
│   ├── 01_自注意力机制原理.md
│   ├── 02_多头注意力机制.md
│   ├── 03_Transformer架构详解.md
│   └── 04_位置编码详解.md
├── code/                              # 代码实现
│   ├── 01_self_attention.py          # 自注意力机制实现
│   ├── 02_multi_head_attention.py    # 多头注意力实现
│   ├── 03_transformer_model.py       # 完整Transformer实现
│   └── utils/                         # 工具函数
│       ├── visualization.py           # 可视化工具
│       └── data_utils.py              # 数据处理工具
├── projects/                          # 实战项目
│   └── machine_translation/           # 机器翻译项目
│       ├── train.py
│       ├── inference.py
│       └── data/
└── requirements.txt                   # 依赖包

🛠️ 环境设置

安装依赖

pip install -r requirements.txt

必需的包

  • Python 3.8+
  • PyTorch 2.0+
  • NumPy
  • Matplotlib (用于可视化)
  • seaborn (用于美化图表)

🎯 学习目标

完成本指南后,你将能够:

  • ✅ 深刻理解自注意力机制的数学原理
  • ✅ 掌握多头注意力的工作机制
  • ✅ 理解 Transformer 的完整架构
  • ✅ 从零实现一个完整的 Transformer 模型
  • ✅ 应用 Transformer 解决实际问题

📖 推荐学习资源

必读论文

  1. Attention Is All You Need (Vaswani et al., 2017)
    • 原始 Transformer 论文
    • 链接

推荐博客

  1. The Illustrated Transformer - Jay Alammar
  2. Attention? Attention! - Lilian Weng

视频教程

  1. Stanford CS224N - Transformers and Self-Attention
  2. 3Blue1Brown - Attention in Transformers

💡 学习建议

  1. 循序渐进: 按照第一阶段→第四阶段的顺序学习
  2. 动手实践: 每个理论章节后都要运行对应代码
  3. 调试观察: 使用 print 语句观察张量的形状和数值
  4. 可视化: 多使用可视化工具理解注意力权重
  5. 修改实验: 尝试修改参数,观察模型行为变化

🚀 快速开始

# 运行第一个例子:自注意力机制
python code/01_self_attention.py

# 你会看到注意力权重的可视化
# 以及每一步的详细计算过程

🤝 如何使用本指南

  1. 先阅读对应的 docs/ 文件夹中的理论文档
  2. 理解核心概念和数学公式
  3. 运行 code/ 文件夹中的对应代码
  4. 阅读代码注释,理解实现细节
  5. 修改代码参数,做实验
  6. 完成每个阶段的小练习

📝 学习笔记

建议在学习过程中记录:

  • 难以理解的概念
  • 代码中的关键实现
  • 实验结果和观察
  • 自己的思考和总结

⚠️ 常见问题

Q: 需要什么基础知识?

A:

  • Python 编程基础
  • 线性代数(矩阵运算)
  • 深度学习基础(神经网络、反向传播)
  • PyTorch 基本使用

Q: 学完需要多长时间?

A:

  • 理论理解: 2-3天
  • 代码实践: 3-4天
  • 项目实战: 1-2周

Q: 遇到问题怎么办?

A:

  • 检查张量形状是否匹配
  • 使用可视化工具观察中间结果
  • 对照论文和代码理解
  • 查看代码注释和文档说明

📈 进阶学习

掌握基础后,可以探索:

  • BERT、GPT 等预训练模型
  • Vision Transformer (ViT)
  • Efficient Transformers
  • 长序列处理技术

开始你的 Transformer 学习之旅吧! 🎓

About

TransformerLearning

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages