用途:nanochat 是 Karpathy 的极简、可改造训练框架,用于在单个 GPU 节点上端到端训练 LLM,覆盖分词、预训练、SFT 微调、RL、评估(DCLM CORE 分数)、带 KV 缓存的推理以及类 ChatGPT 的 Web UI。核心设计是单一复杂度旋钮 --depth,自动推导宽度、头数、学习率、训练时长、权重衰减等超参数,实现计算最优训练。资料称可在 8×H100 节点约 2 小时、约 48 美元复现 GPT-2 能力。
主要能力:提供预训练、SFT、RL、CORE 评估、bits-per-byte 评估、检查点管理、KV 缓存推理、CLI 与 Web 聊天界面;包含 scaling laws 与 miniseries 脚本;支持 CUDA、CPU 与 Apple Silicon(MPS)。
使用方式:用 uv 管理依赖,先 git clone https://github.com/karpathy/nanochat.git,再 uv sync 并激活虚拟环境。参考全流程可运行 bash runs/speedrun.sh;分布式预训练用 torchrun --standalone --nproc_per_node=8 -m scripts.base_train -- --depth=26 --run="d26_run" --model-tag="d26";单 GPU 用 python -m scripts.base_train -- --depth=26 --run="d26_single";CPU/MPS 用 bash runs/runcpu.sh;训练后 python -m scripts.chat_web 启动 Web UI(默认 8000 端口),或 python -m scripts.chat_cli -p "hello" 使用 CLI。
适用场景:研究迭代(d12 约 5 分钟)、GPT-2 级复现(d24–26)、缩放律实验与教学调试。
限制:默认 device_batch_size=32 约需每 GPU 80GB 显存,显存不足需调小;单 GPU 比 8 卡慢约 8 倍;CPU/MPS 结果较弱,仅用于开发调试;RL 脚本不支持 float16;V100/T4(SM<80)无 bf16,默认回退 float32。具体收费、价格与效果以官方资料为准,本资料未提供更多细节。