# pyre-code
**Repository Path**: tj1652045/pyre-code
## Basic Information
- **Project Name**: pyre-code
- **Description**: No description available
- **Primary Language**: Unknown
- **License**: Not specified
- **Default Branch**: main
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2026-04-10
- **Last Updated**: 2026-04-10
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
[English](./README.md) | [中文](./README_CN.md)
🔥 Pyre Code
从零复现现代 AI 系统的内核——Transformers、vLLM、TRL,以及更多。
顶级 ML 工程团队面试中考察的核心技能。
---
## 这是什么?
68 道题。你写实现,本地评测服务跑测试,看哪里挂了。就这样。
题目覆盖 Transformers、vLLM、TRL 和扩散模型的实际内核——注意力变体、训练技巧、推理算法、对齐算法。无需 GPU。
### 特性
- **浏览器编辑器** — Monaco + Python 语法高亮,无需配置 IDE
- **即时反馈** — 提交后秒级返回每个测试用例的通过/失败
- **参考答案** — 自己做完再对比
- **进度追踪** — 解题数和尝试记录,跨会话持久化
- **完全本地** — 代码不离开你的机器
### 技术栈
| 层级 | 技术 |
|---|---|
| 前端 | Next.js + Monaco Editor + Tailwind CSS |
| 后端 | FastAPI 评测服务 |
| 评测引擎 | [torch_judge](https://github.com/duoan/TorchCode) — 执行并验证提交的代码 |
| 存储 | SQLite(进度追踪) |
---
## 快速开始
### 环境要求
- Python 3.11+
- Node.js 18+
### 安装
**方式 A — 一键安装(推荐)**
```bash
git clone https://github.com/whwangovo/pyre.git
cd pyre
./setup.sh
npm run dev
```
`setup.sh` 自动创建并激活 Python 环境(优先级:`uv` → `conda` → `venv`),安装所有依赖,完成后打印启动命令。
**方式 B — 手动安装**
```bash
git clone https://github.com/whwangovo/pyre.git
cd pyre
# 创建 Python 环境(二选一):
uv venv --python 3.11 .venv && source .venv/bin/activate && uv pip install -e .
# 或:python3 -m venv .venv && source .venv/bin/activate && pip install -e .
npm install
npm run dev
```
> **conda 用户:** `npm run dev` 默认使用 `.venv/bin/python`,如果你用 conda 则需要先激活环境再运行 `npm run dev`:
>
> ```bash
> conda create -n pyre python=3.11 -y && conda activate pyre
> pip install -e .
> npm install
> npm run dev # 需在 conda 环境激活状态下运行
> ```
启动后:
- **评测服务** → `http://localhost:8000`
- **Web 界面** → `http://localhost:3000`
**方式 C — Docker**
```bash
git clone https://github.com/whwangovo/pyre.git
cd pyre
docker compose up --build
```
打开 `http://localhost:3000`。进度保存在 Docker 卷中。运行 `docker compose down -v` 可重置数据。
---
## 题目列表
68 道题目,按类别分组:
| 类别 | 题目 |
|---|---|
| **基础** | ReLU、Softmax、GELU、SwiGLU、Dropout、Embedding、Linear、Kaiming 初始化、线性回归 |
| **归一化** | LayerNorm、BatchNorm、RMSNorm |
| **注意力** | 缩放点积、多头、因果、交叉、GQA、滑动窗口、线性、Flash、差分注意力、MLA |
| **位置编码** | 正弦编码、RoPE、ALiBi、NTK-aware RoPE |
| **架构** | SwiGLU MLP、GPT-2 Block、ViT Patch、ViT Block、Conv2D、Max Pool、深度可分离卷积、MoE、MoE 负载均衡 |
| **训练** | Adam、余弦学习率、梯度裁剪、梯度累积、混合精度、激活检查点 |
| **分布式** | 张量并行、FSDP、环形注意力 |
| **推理** | KV Cache、Top-k 采样、束搜索、推测解码、BPE、INT8 量化、分页注意力 |
| **损失与对齐** | 交叉熵、标签平滑、Focal Loss、对比损失、DPO、GRPO、PPO、奖励模型 |
| **扩散与 DiT** | 噪声调度、DDIM 步骤、流匹配、adaLN-Zero |
| **适配** | LoRA、QLoRA |
| **推理搜索** | MCTS、多 Token 预测 |
| **SSM** | Mamba SSM |
### 学习路径
按目标选一条:
| 路径 | 题目数 | 内容 |
|---|---|---|
| **Transformer 内部机制** | 12 | 激活函数 → 归一化 → 注意力 → GPT-2 Block |
| **注意力与位置编码** | 13 | 全部注意力变体 + RoPE、ALiBi、NTK-RoPE |
| **从零训练 GPT** | 15 | Embedding → 架构 → 损失 → 优化器 → 训练技巧 |
| **推理与分布式训练** | 9 | KV Cache、量化、采样、张量并行、FSDP |
| **对齐与智能体推理** | 6 | 奖励模型 → DPO → GRPO → PPO → MCTS |
| **Vision Transformer 流水线** | 7 | 卷积 → Patch Embedding → ViT Block |
| **扩散模型与 DiT** | 5 | 噪声调度 → DDIM → 流匹配 → adaLN-Zero |
| **LLM 前沿架构** | 7 | GQA、差分注意力、MLA、MoE、多 Token 预测 |
---
## 配置
| 环境变量 | 默认值 | 说明 |
|---|---|---|
| `GRADING_SERVICE_URL` | `http://localhost:8000` | 评测服务地址 |
| `DB_PATH` | `./data/pyre.db` | 进度追踪用 SQLite 数据库路径 |
在 `web/.env.local` 中设置以覆盖默认值。
---
## 项目结构
```
pyre/
├── web/ # Next.js 前端
│ ├── src/app/ # 页面和 API 路由
│ ├── src/components/ # UI 组件
│ └── src/lib/ # 工具函数、题目数据
├── grading_service/ # FastAPI 后端
├── torch_judge/ # 评测引擎(题目定义 + 测试运行器)
└── package.json # 开发脚本(同时启动前后端)
```
---
## 致谢
题库和评测引擎基于 [duoan](https://github.com/duoan) 的 [TorchCode](https://github.com/duoan/TorchCode),遵循 MIT 协议。
本项目在原版基础上新增了 Web 前端和 REST 评测服务,作为原 Jupyter 界面的替代方案。
---
## 许可证
本项目基于 MIT 许可证分发。详见 [LICENSE](LICENSE)。