尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
GPT-2 训练成本从 4.3 万美元降到 48 美元?我试了一下 nanochat
2019 年训练一个 GPT-2 级别的模型 reportedly 花了 4.3 万美元现在 nanochat 的 README 上写着用 8 块 H100 跑大概 1 个半小时成本 48 美元左右就能训出一个 GPT-2 水平、还能对话的模型。spot 实例甚至可以压到 15 美元。一句话先说结论nanochat 不是又一个LLM 框架而是一个端到端的实验套件。它从分词、预训练、微调、评估到推理和聊天 UI 全包了代码量不大读得懂、改得动。最吸引我的是它用一个整数--depthTransformer 层数当复杂度旋钮宽度、头数、学习率、训练步数这些超参自动算好用户基本不用调。这项目到底解决了什么问题我自己之前想跑通一个 LLM 训练流程通常会遇到三种崩溃框架太胖打开仓库光是配置文件就有十几种model factory、trainer、registry 层层封装改一行要追十行。超参太多学习率、warmup、weight decay、batch size、调度策略……每个都要猜错了就 OOM 或者训飞了。只能训不能聊很多项目只到预训练这一步想做成能对话的模型还得自己接 SFT、RL、推理引擎、Web UI等于重新搭一座桥。nanochat 的思路是把上面这三件事全部压进一条命令里。它不是让你配置一切而是给你一个强基线——你 fork 过去改几行就能做实验或者直接用默认配置跑出一个能对话的小模型。一个旋钮调所有--depth这是 nanochat 最有意思的设计。你不用写 30 行配置只要告诉它--depth26代码就会自动推出模型宽度、注意力头数、学习率、训练步数、weight decay 等等按计算最优的方式配好。打个比方--depth就像汽车排量。你只需要说我要 1.5L 还是 2.0L油耗、变速箱、轮胎尺寸 nanochat 帮你配齐。GPT-2 的水平大致对应--depth在 24–26 之间。这种设计有个好处你做任何改动都得保证它在不同 depth 下都合理而不是只针对某一个规模 hand-tune。这让整个 repo 更像个连贯的研究基线而不是一个大杂烩。Time-to-GPT-2一个挺刺激的排行榜nanochat 主打的指标叫Time-to-GPT-2[达到 GPT-2 水平的墙钟时间]。判定标准是DCLM CORE 分数[一种评估语言模型综合能力的基准分可以理解成 LLM 的期末考分数] 超过 OpenAI 原版 GPT-21.6B的 0.256525。目前 leaderboard 上最快的记录已经卷到 1.65 小时。我把主要条目整理了一下val_bpb是验证集上的 bits per byte [衡量模型压缩文本能力的指标越低越好]排名时间val_bpbCORE说明日期0168 小时-0.2565OpenAI 原版 GPT-2 checkpoint201913.04 小时0.748330.2585d24 baseline略微过拟合2026-01-2922.91 小时0.745040.2578d26 fp82026-02-0232.76 小时0.746450.2602总 batch size 提到 1M tokens2026-02-0542.02 小时0.718540.2571数据集换成 NVIDIA ClimbMix2026-03-0451.80 小时0.718080.2690autoresearch 第一轮2026-03-0961.65 小时0.718000.2626autoresearch 第二轮2026-03-14数据来源nanochatdev/LEADERBOARD.md。你可以看到大家基本在预训练阶段疯狂优化——这也是目前项目开发最热闹的地方。从代码结构看它到底长什么样我翻了一下源码目录很清爽没有巨型抽象nanochat/ # 核心库 gpt.py GPT Transformer [Transformer 是处理序列数据的神经网络结构] tokenizer.py BPE 分词器封装 [BPE 是把文字切成小片段的算法] dataloader.py 分布式数据加载 optim.py AdamW / Muon 优化器 engine.py 带 KV Cache 的推理引擎 [KV Cache 是推理时缓存已算信息避免重复计算] core_eval.py CORE 分数评估 ... scripts/ # 入口脚本 base_train.py 预训练 base_eval.py 评估 chat_sft.py 监督微调 [SFT用对话数据专项训练让模型学会回答问题] chat_rl.py 强化学习 [RL用反馈打分让回答更像人] chat_cli.py 命令行聊天 chat_web.py Web 聊天 UI ... runs/ # 一键脚本 speedrun.sh 从零到 GPT-2 级并对话 scaling_laws.sh 缩放定律实验 miniseries.sh 训练一族不同 depth 的模型 runcpu.sh CPU / Apple Silicon 小 demo没有 model factory没有满屏 if-else代码基本都是普通 PyTorch。这也是它适合学习和二次开发的原因。怎么跑一条命令复现百元 ChatGPT环境推荐用 uv项目根目录有pyproject.toml和uv.lock。# 1. 克隆gitclone https://github.com/karpathy/nanochat.gitcdnanochat# 2. 装依赖CUDA 版本uvsync--extragpusource.venv/bin/activate# 3. 在 8×H100 节点上跑完整 pipelinebashruns/speedrun.shREADME 上说这个脚本大概跑1.5 小时。按当前 8×H100 节点约 $24/小时算成本就是$48 左右。如果用 spot 实例能到$15 左右。跑完之后启动命令行聊天python-mscripts.chat_cli或者启动 Web UIpython-mscripts.chat_web浏览器打开终端里打印的地址就能像 ChatGPT 一样跟模型对话。我试了一下示例对话效果大概像一个幼儿园小朋友——能回答问题、写诗但会一本正经地胡说八道。README 里给的例子也特实在你问它天为什么是蓝的它会跟你聊瑞利散射你让它写首诗它会贡献一堆blue。没有 8 块 H100 怎么办nanochat 也考虑到了穷鬼方案单 GPU去掉torchrun自动退化成梯度累积结果基本一致但慢 8 倍。显存不够把--device-batch-size从默认 32 往下降16 → 8 → 4 → 2 → 1直到不爆显存。CPU / MPS跑runs/runcpu.sh模型和步数会大幅缩水只能看个热闹别指望效果。精度这块也做了简单兜底按硬件自动选 dtype硬件默认 dtype原因A100 / H100SM 80bfloat16原生支持 bf16 Tensor CoreV100 / T4SM 80float32不支持 bf16可手动设NANOCHAT_DTYPEfloat16CPU / MPSfloat32安全默认新 macOS 上 MPS 可跑 bf16跟 nanoGPT、modded-nanogpt 有什么区别很多人看到 nanochat 会想到 Karpathy 之前的 nanoGPT。我整理了一张对比表维度nanochatnanoGPT大型 LLM 框架HF / Megatron 等覆盖阶段分词 → 预训练 → 微调 → 评估 → 聊天只有预训练全流程但配置复杂上手难度一个--depth旋钮需手动调超参配置项多、学习曲线陡代码量精简、可 hack精简庞大、抽象多目标百元级可对话模型预训练基线企业级通用训练社区玩法Time-to-GPT-2 排行榜无各有生态modded-nanogpt 更像是 nanoGPT 的竞速改装版专注于把预训练推到极致nanochat 则把它扩展成了完整的从数据到对话链路。适用人群从我自己的体验来看这几类人可能会觉得它好玩想亲手训一个 LLM 并跟它聊天的开发者百元级、一条命令、几小时就能对话成就感拉满。做 scaling / 预训练研究的人默认配置就是强基线改起来不累。教学场景代码结构清晰适合讲从 token 到 chat的全流程。需要可 fork 基线的团队不像大框架那样被配置绑架改几处就能出实验变体。几个注意事项项目还在快速迭代master 代码可能比讨论区的旧帖子新很多看文档时留意日期。提交 PR 需要披露哪些部分用了 LLM 辅助这点挺有意思。如果你只是想用一个强模型直接下载现成的更好nanochat 的价值在于你亲自跑通、亲自改。我的看法nanochat 最有价值的地方不是便宜而是它把 LLM 训练的认知成本也打下来了。你可以花一个下午从 0 走到和自己训的模型聊天中间每一步都看得见、改得了。对于想理解 LLM 是怎么从一堆文本变成能对话的助手的人来说这比读十篇论文都管用。如果你也有 8×H100或者单卡 耐心值得一试。项目地址https://github.com/karpathy/nanochat
RELATED

相关推荐

看懂多 Agent 编程!一个 AI 写代码已经很强,为什么还要同时跑多个 Agent?

看懂多 Agent 编程!一个 AI 写代码已经很强,为什么还要同时跑多个 Agent?

本文深入探讨了多Agent系统在编程领域的应用价值。文章指出,多Agent的优势并非简单的数量叠加,而是通过任务拆分、隔离、协调和验收机制,有效提升复杂工作的处理效率。内容涵盖了Subagent、并行会话和Agent Teams三种协作模式,分析…

📅 2026/10/3 13:52:03
前端开发工程师Photoshop图层与切图实用指南

前端开发工程师Photoshop图层与切图实用指南

本教程系统梳理了Photoshop前端切图的核心基础操作,涵盖图层筛选、锁定、分组与蒙版管理,详细讲解剪切蒙版的建立与释放方法,以及吸管取色、形状选色、透明度调整等属性操作。同时完整介绍切图导出流程,包括分组导出PNG、切片工具…

📅 2026/10/3 13:47:03
teach - LEARNING-RECORD-FORMAT

teach - LEARNING-RECORD-FORMAT

学习记录格式 学习记录存放在 ./learning-records/ 中,使用顺序编号:0001-slug.md、0002-slug.md 等。懒创建目录——只在写入第一条记录时才创建。 它们是教学版的 ADR(架构决策记录):它们捕获非显而易见的经验教训、…

📅 2026/10/3 13:47:03
MORE NEWS

更多资讯

📰

用Flutter打造鸿蒙儿童故事播放器:跨平台开发的踩坑实录

这事得从我家三岁半的小朋友说起。每天睡前他都雷打不动要听两段故事,手机上其实装了不少儿童故事App,可打开就是几秒的开屏广告,跳过广告接着弹“开通会员解锁更多故事”,有一次他自己划拉屏幕,差点点进一个付费套餐页…

📰

QEMU + Docker Buildx:在x86上构建ARM多架构镜像的完整实践

最近团队里有一批内部工具要往 ARM 设备上迁移,可大家手上的开发机清一色是 x86,要部署的目标却是树莓派、ARM 白盒服务器和几台 Apple Silicon 的 MacBook。一开始我试着交叉编译,发现只要镜像里牵扯到原生扩展、动态库或者某些平台专用包&a…

📰

上市公司对外开放程度数据包:2000-2022年面板指标与计算全解析

这份2000-2022年上市公司对外开放程度数据包,我前前后后用了差不多一个多星期才彻底吃透。最初拿到它是因为研究需要引入上市公司国际化程度的控制变量,结果发现手头现有的数据库要么是截面数据,要么区间对不上,要么指标口径完全不…

📰

JRA55数据喂给WRF老报错?手把手定制Vtable解决GRIB编码不兼容

做十多年WRF的人,基本都被“数据格式不兼容”这件事折腾过。GFS、ERA5这类数据只要你用的版本不算太老,官方WPS里都有现成的Vtable,ln -sf一把梭就能跑通ungrib。真正让人头疼的是JRA55这种“非标准”再分析数据。我说的非标准,不…

📰

先验、似然、后验概率:从贝叶斯公式到机器学习实战

先验概率、似然概率与后验概率这三个词,几乎每个做机器学习和数据分析的人都在面试里见过。我在面试算法岗时最常问的一道题就是“一次检验结果呈阳性,真正患病的概率是多少”,能熟练背出公式的人不少,但能说清楚为什么答案不是99…

📰

VMware VCP认证全解析:考试内容、报名流程与备考经验

很多人第一次听到VCP认证,是在同事的简历或招聘网站的岗位要求里看到一长串缩写。VCP全称是VMware Certified Professional,也就是VMware官方认证体系里最热门、最多人考的一张中级证书。如果你日常工作围绕ESXi、vCenter、vSphere展开,或者正…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬