描述
nanoGPT 是一个 GitHub 仓库,旨在成为训练和微调中等规模生成式预训练 Transformer (GPT) 模型最简单、最快速的方法。它由 Andrej Karpathy 开发,优先考虑清晰度和效率,使其成为初学者和经验丰富的深度学习从业者的绝佳资源。
nanoGPT 的核心理念是提供一个干净、易于理解的代码库,让用户能够快速掌握 GPT 训练的基础知识。该仓库包含一个简洁的训练脚本(约 300 行)和一个 GPT 模型定义(也约 300 行),可以选择性地加载来自 OpenAI 的 GPT-2 检查点的权重。这种简洁性便于修改和实验。
nanoGPT 的主要功能包括从头开始训练模型或微调现有的预训练检查点。该仓库提供了在 OpenWebText 等数据集上复现 GPT-2(1.24 亿参数)的示例,证明了其有效性。它支持在单个 GPU、多 GPU 设置甚至仅 CPU 环境下进行训练,并针对不同的硬件能力提供了特定的配置。
nanoGPT 面向希望深入了解大型语言模型训练实际方面的 AI 研究人员、机器学习工程师和学生。其直接的实现使其成为教育目的的理想选择,使用户能够在不被复杂框架压倒的情况下理解 GPT 的内部工作原理。其价值主张在于其可访问性、速度以及以相对适度的计算资源取得显著成果的能力。
该仓库还包括数据准备、从训练模型中采样以及基准测试的脚本。它强调使用现代 PyTorch 功能进行性能优化,例如 `torch.compile()`。虽然 nanoGPT 本身现在被认为已弃用,取而代之的是 nanochat 等新项目,但它仍然是理解基础 GPT 训练技术的宝贵资源。
nanoGPT的核心功能
用于训练/微调 GPT 的极简快速仓库
简单易读的代码库,用于理解 GPT 架构
在 OpenWebText 上复现 GPT-2 (1.24 亿参数) 的性能
支持从头开始训练或微调预训练模型
包含数据准备、训练和采样脚本
使用 PyTorch 2.0 功能优化性能
可在单个 GPU、多 GPU 节点和 CPU 上运行
便于进行超参数和模型大小的实验
可加载 OpenAI GPT-2 检查点
提供字符级 GPT 训练示例
包含模型性能分析的基准测试脚本
nanoGPT入门
克隆:从 GitHub 获取 nanoGPT 仓库。
安装:使用 pip 设置必要的 Python 依赖项。
准备数据:为选定的数据集(例如,莎士比亚、OpenWebText)运行数据准备脚本。
配置:在配置文件中调整训练参数(例如,批大小、学习率、模型大小)。
训练:使用您的配置执行训练脚本。
采样:使用采样脚本从您的训练模型中生成文本。
微调:使用较小的学习率从预训练的检查点初始化训练。
nanoGPT的使用案例
- GPT 模型训练
- 语言模型研究
- 复现研究
- 教育工具
- 文本生成
- 模型微调








