面向文本、视觉、音频和多模态的前沿机器学习模型定义框架,可用于推理和训练。
karpathy/nanochat
一个极简、易于修改的 LLM 训练框架,覆盖分词、预训练、微调、评估到对话推理全流程,可在单台 GPU 节点上运行。
- Star
- 58,786
- Fork
- 8,229
- 未关闭 Issue
- 122
- 最近提交
- 上个月
这是什么?
nanochat 是一个用于训练大语言模型的实验性框架,设计目标是在单个 GPU 节点上运行,代码量小、便于阅读和修改。它覆盖分词、预训练、微调、评估和推理各个阶段,并提供一个简单的命令行工具用于与训练好的模型对话。
项目的核心是一个复杂度旋钮 `--depth`,即 Transformer 的层数。模型宽度、注意力头数、学习率、训练步数和权重衰减等超参数都会根据深度自动计算,使不同规模的模型都接近计算最优。项目目标是在数十美元的云 GPU 开销内复现 GPT-2 级别的能力,并维护一个记录训练耗时的排行榜。
仓库提供了在 8 卡 H100 节点上快速训练的脚本、缩放律与模型系列实验脚本、基于 CPU 或 Apple Silicon 的小模型示例,并说明了 bf16、fp16、fp32 的精度管理方式。
核心功能
- 01在一套代码中覆盖分词、预训练、微调、评估和推理。
- 02通过单一 --depth 参数设定模型规模,其余超参数自动计算。
- 03提供命令行工具与训练好的模型对话。
- 04可在单张 GPU 上运行,只有一张卡时自动使用梯度累积。
- 05支持 CUDA GPU,也可在 CPU 与 MPS 上用小模型运行。
- 06提供 GPT-2 加速训练排行榜,记录实际训练耗时。
适用场景
- 通过阅读精简代码理解完整的大模型训练流程。
- 在单张 GPU 上进行小规模预训练实验。
- 用深度可控的快速训练验证架构或优化器改动。
- 在有限预算内端到端训练一个小型对话模型。
快速上手
- 1
使用 GPU 额外依赖安装 uv 依赖
uv sync --extra gpu - 2
激活虚拟环境
source .venv/bin/activate - 3
运行 speedrun 训练脚本(设计用于 8XH100 节点,约 1.5 小时)
bash runs/speedrun.sh - 4
通过命令行与训练好的模型对话
python -m scripts.chat_cli
使用前须知
- 完整的 GPT-2 速通流程设计用于 8XH100 GPU 节点,云端 GPU 费用约需 48 美元或更多。
- 预训练需要大量 GPU 资源;显存低于 80GB 的 GPU 需要调整批大小。
- 大部分代码基于 PyTorch,但作者尚未完整测试 MPS、XPU 等非 CUDA 后端。
标签
常见问题
- nanochat 是什么?
- 一个极简、易于修改的 LLM 训练框架,覆盖分词、预训练、微调、评估到对话推理全流程,可在单台 GPU 节点上运行。 nanochat 是一个用于训练大语言模型的实验性框架,设计目标是在单个 GPU 节点上运行,代码量小、便于阅读和修改。它覆盖分词、预训练、微调、评估和推理各个阶段,并提供一个简单的命令行工具用于与训练好的模型对话。
- nanochat 可以免费使用吗?用的什么许可证?
- nanochat 以 MIT 许可证开源。用于商业产品前,请先确认许可证条款。
- nanochat 还在维护吗?
- 半年内有更新。nanochat 最近一次提交是在 2026年9月7日。
- nanochat 适合用来做什么?
- 通过阅读精简代码理解完整的大模型训练流程。 在单张 GPU 上进行小规模预训练实验。 用深度可控的快速训练验证架构或优化器改动。 在有限预算内端到端训练一个小型对话模型。
- nanochat 怎么安装和运行?
- 使用 GPU 额外依赖安装 uv 依赖: uv sync --extra gpu 激活虚拟环境: source .venv/bin/activate 运行 speedrun 训练脚本(设计用于 8XH100 节点,约 1.5 小时): bash runs/speedrun.sh 通过命令行与训练好的模型对话: python -m scripts.chat_cli
- 在哪里获取 nanochat?
- 源代码和安装说明在 GitHub 上:https://github.com/karpathy/nanochat
概要由 AI 根据项目 README 生成;GitHub 数据每日更新。
相关项目
面向大模型分布式训练与推理的深度学习优化库,提升效率并降低使用门槛。
FlashAttention 官方实现,一种节省显存的精确注意力计算内核,用于 GPU 上 Transformer 模型的训练与推理。
一个免费开源的大语言模型微调与后训练框架,通过 YAML 文件进行配置。
用 PyTorch 从零实现的 Transformer 大模型训练教程与代码库,涵盖预训练、SFT、奖励模型、DPO/PPO/GRPO 与文本生成。
一套带逐行注释的教程,用 Python 和 PyTorch 从零实现并训练一个类 LLaMA 架构的小型 GPT。