GitHub:
https://github.com/Rivflyyy/HappyTorch

很多人在学习深度学习时都会遇到一个问题:

论文看懂了,但代码不会写。

例如:

  • 你知道 Softmax 的公式,但让你手写实现时却不太确定细节

  • 你理解 Transformer 的 Attention 机制,但从零实现会很吃力

  • 你听说过 LoRA、RoPE、KV Cache,却不知道它们在代码中长什么样

这些问题的本质其实很简单:

很多知识只停留在“理解”,却没有经过“实现”。

为了让学习过程更系统,我整理并扩展了一个 PyTorch 练习项目 —— HappyTorch

简单来说,它就是一个:

专门用来练习深度学习组件实现的刷题平台。

可以理解为:

LeetCode for Deep Learning.


HappyTorch 是什么

HappyTorch 是一个 PyTorch 编码练习平台,用于帮助学习者理解深度学习模型的核心组件。

项目提供了一组练习题,每道题都需要自己实现某个模块,例如:

  • Softmax

  • LayerNorm

  • MultiHeadAttention

  • LoRA

  • RoPE

  • KV Cache

写完代码之后,可以运行自动评测系统,查看结果是否正确。

整个流程非常类似刷题网站:

  1. 阅读题目说明

  2. 实现函数

  3. 运行测试

  4. 查看结果

项目支持两种练习方式:

1️⃣ Jupyter Notebook

适合边调试边学习。

2️⃣ Web 模式

浏览器直接写代码,体验类似刷题网站。


为什么要做这个项目

在准备机器学习面试或者学习大模型时,很多人会遇到类似的问题:

  • 论文看了很多,但不知道如何实现

  • 面试被要求手写 Attention,结果卡住

  • 想理解 LLM 或 Diffusion,但缺少系统练习

这些问题其实说明了一点:

深度学习不仅是理解算法,更是实现算法。

因此 HappyTorch 的目标很简单:

提供一组循序渐进的实践题目,让学习者真正理解模型结构。


项目包含哪些练习

目前 HappyTorch 共包含 24 个练习题目,难度从基础到进阶逐步提升。


1 基础算子

这一部分主要是深度学习最常见的基础组件,例如:

  • ReLU

  • Softmax

  • Linear Layer

  • LayerNorm

  • BatchNorm

  • RMSNorm

这些算子看起来简单,但如果不用 torch.nn,自己实现其实很考验理解。

例如 Softmax 的实现,需要考虑 数值稳定性问题


2 Attention 机制

Attention 是现代深度学习模型的核心。

这一部分包括:

  • Scaled Dot Product Attention

  • Multi Head Attention

  • Causal Attention

  • Grouped Query Attention

  • Sliding Window Attention

  • Linear Attention

通过这些练习,可以逐步理解 Transformer 的内部结构。


3 完整 Transformer 模块

在理解 Attention 之后,可以进一步实现完整模块,例如:

GPT-2 Block

其中包括:

  • LayerNorm

  • Causal Attention

  • MLP

  • Residual Connection

这一步基本可以串起 Transformer 的核心结构。


4 现代模型组件

HappyTorch 还包含一些现代深度学习系统中常见的模块,例如:

激活函数

  • GELU

  • SiLU

  • SwiGLU

参数高效微调

  • LoRA

  • DoRA

Diffusion 模型组件

  • AdaLN

  • AdaLN-Zero

  • FiLM

LLM 推理优化

  • RoPE

  • KV Cache

这些组件在当前的大模型和 Diffusion 模型中非常常见。


自动评测系统

HappyTorch 提供了一个简单的自动评测工具。

在 Notebook 中实现函数后,可以运行:

from torch_judge import check

check("relu")

系统会自动运行测试,并显示每个测试是否通过。

如果卡住,也可以获取提示:

hint("causal_attention")

这样既可以自己思考,又不会完全没有方向。


Web 练习界面

为了让练习体验更像刷题网站,项目还提供了一个 Web 界面

主要特性包括:

  • 浏览器代码编辑器(Monaco Editor)

  • 一键运行测试

  • 题目列表

  • 学习进度统计

启动方式非常简单:

python start_web.py

然后打开浏览器:

http://localhost:8000

即可开始练习。


如何快速开始

项目启动非常简单:

conda create -n torchcode python=3.11
conda activate torchcode

pip install torch --index-url https://download.pytorch.org/whl/cpu
pip install jupyterlab numpy
pip install -e .

python prepare_notebooks.py

之后可以选择:

Jupyter 模式

python start_jupyter.py

或者

Web 模式

python start_web.py

总结

HappyTorch 并不是一个深度学习教程,也不是一个面试宝典。

它只是一个简单的练习平台。

但如果你亲手实现这些模块,你会更清楚:

  • Transformer 是如何工作的

  • LLM 推理为什么需要 KV Cache

  • LoRA 为什么可以减少参数量

  • Diffusion 模型如何进行条件调制

很多原本抽象的概念,会在代码中变得非常清晰。

如果你正在学习深度学习,或者准备机器学习相关岗位,这样的实践会非常有帮助。

项目地址:

https://github.com/Rivflyyy/HappyTorch

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐