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

相关新闻

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

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

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

2026/10/3 13:52:05 阅读更多 →
Go 语言 map 使用与底层原理全解析:从 learngo 22-maps 章节看哈希表查询、键约束与性能本质

Go 语言 map 使用与底层原理全解析:从 learngo 22-maps 章节看哈希表查询、键约束与性能本质

示例工程教程 【免费下载链接】learngo ❤️ 1000 Hand-Crafted Go Examples, Exercises, and Quizzes. 🚀 Learn Go by fixing 1000 tiny programs. 项目地址: https://gitcode.com/gh_mirrors/le/learngo 点击查看 免费下载 Go 语言的 map 是日常开发…

2026/10/3 13:51:04 阅读更多 →
QML 自定义 TabBar:梯形标签

QML 自定义 TabBar:梯形标签

目录 拆开讲讲 梯形用路径描 形状填渐变的坑 无缝咬合的那块缺口 几个可以调的参数 什么时候用 小结 完整代码 工程下载 本文介绍 QML 自定义的梯形标签组件,如图所示: 拆开讲讲 下面是逐段讲解,完整代码放在文章末尾的「完整代码」里。整个梯形标签就四块,一块一块说。 …

2026/10/3 13:51:04 阅读更多 →

最新新闻

Flutter鸿蒙跨平台表单验证:从基础架构到异步防抖实战

Flutter鸿蒙跨平台表单验证:从基础架构到异步防抖实战

作为一个用Flutter做了几年跨平台开发、最近又把应用真刀真枪移植到鸿蒙设备上的人,我太清楚表单验证这块有多容易翻车了。TextFormField看起来就是个输入框加个校验,但真要在鸿蒙、Android、iOS多端保持一致的用户体验,里面全是细节。标题里…

2026/10/3 14:21:49 阅读更多 →
随机波动率模型与MCMC在指数期权波动率曲面拟合中的实践

随机波动率模型与MCMC在指数期权波动率曲面拟合中的实践

1. 波动率曲面拟合的痛点与改进思路 刚入行做指数期权量化那几年,我一直以为波动率曲面拟合就是把散点插值做得漂亮一点。直到在真实行情里连续吃了几个暗亏才明白,这件事根本没这么简单。指数期权的波动率曲面,是定价、对冲、风控、做市报价…

2026/10/3 14:21:49 阅读更多 →
PPT模板改不快?掌握母版原理与批量替换技巧,效率翻倍

PPT模板改不快?掌握母版原理与批量替换技巧,效率翻倍

模板页改不完、母版排版乱、复制粘贴到想砸电脑——这是每个做过PPT的人都会碰到的坎儿。我接过不少这样的项目,自己也踩过坑,总结出3个真正能提高PPT模板修改效率的技巧,不扯虚的,全是实操干货。 1. 为什么不建议直接改模板&am…

2026/10/3 14:21:48 阅读更多 →
K8s存储四件套:PV、PVC、StorageClass与NFS关系详解

K8s存储四件套:PV、PVC、StorageClass与NFS关系详解

K8s 里最容易把人绕晕的,不是 Pod、Deployment 这些调度概念,而是存储那一坨东西。PV、PVC、StorageClass、NFS,四个英文缩写凑一块,光看名词就够劝退一批人。我刚带团队用 K8s 跑有状态服务那会儿,第一周几乎全耗在这…

2026/10/3 14:21:48 阅读更多 →
基于Selenium与Flask的电商数据采集分析与销量预测系统

基于Selenium与Flask的电商数据采集分析与销量预测系统

每年到了毕设启动的时间,总有不少同学拿着类似的题目来问我:Python爬虫、电商数据分析、销量预测。看得出来大家都想做一套有含金量、能拿得出手的系统,但真正动手前又担心整套流程太长、技术点太杂,怕做到一半做不下去。这套“py…

2026/10/3 14:21:48 阅读更多 →
Kubernetes存储管理实战:从PV/PVC到动态供给与故障排查

Kubernetes存储管理实战:从PV/PVC到动态供给与故障排查

刚上手Kubernetes那会儿,Deployment、Service、Ingress这些核心概念一个个跑通之后,很容易让人产生一种“集群已经搞定”的错觉。真正的分水岭,是第一次往集群里部署Redis Cluster、Kafka这类有状态中间件。PVC显示Pending、Pod卡在Container…

2026/10/3 14:20:48 阅读更多 →

日新闻

把回忆蒸馏成 AI 的浪漫实验:为什么你需要前任.skill 完整指南

把回忆蒸馏成 AI 的浪漫实验:为什么你需要前任.skill 完整指南

把回忆蒸馏成 AI 的浪漫实验:为什么你需要前任.skill 完整指南 【免费下载链接】ex-skill 前任 skill 项目地址: https://gitcode.com/gh_mirrors/exsk/ex-skill 前任.skill 是一个运行在 Claude Code 上的开源 Skill:导入微信、iMessage、短信、…

2026/10/3 0:00:27 阅读更多 →
45个经典Linux面试题:从命令到网络排障的完整考点解析

45个经典Linux面试题:从命令到网络排障的完整考点解析

刚开始带应届生的时候,我最头疼的就是他们拿着一摞Linux面试题背得滚瓜烂熟,一上机全露馅。后来自己从被面的人变成面别人的人,才慢慢摸清楚:Linux面试题考的根本不是答案本身,而是你面对一个不确定的系统问题时&#…

2026/10/3 0:01:28 阅读更多 →
SAP生产预留实战指南:MB21/MB23/MB25协同与MRP集成

SAP生产预留实战指南:MB21/MB23/MB25协同与MRP集成

简介:本资源是一份面向SAP ABAP开发人员、生产计划专员及ERP实施顾问的实操型操作指南,聚焦SAP生产预留核心业务场景,系统解决物料预留创建、查询、校验与批量处理等高频问题。文档以结构化方式覆盖预留背景原理、OMC2编码规则、工厂级参数配…

2026/10/3 0:01:28 阅读更多 →

周新闻

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解 【免费下载链接】spirula-studio Cross-vendor 3D Gaussian Splatting trainer - video to splat to mesh, Vulkan or CUDA. 项目地址: https://gitcode.com/GitHub_Trending/sp/spirula-studio Sp…

2026/10/3 9:14:33 阅读更多 →
SEO怎么推广速查手册新手避坑实战指南

SEO怎么推广速查手册新手避坑实战指南

SEO怎么推广速查手册新手避坑实战指南 模板网站太丑不够用?别急着加滤镜,那是治标不治本。很多老板盯着后台流量掉得眼红,却还在纠结首页Banner的圆角是不是3像素。这就像穿着西装去挖土,姿势不对,努力白费。我整理这份 速查手册…

2026/10/3 9:47:50 阅读更多 →
FireRed-OpenStoryline少样本仿写深度解析:AI Agent如何复刻你的独特文案风格与节奏

FireRed-OpenStoryline少样本仿写深度解析:AI Agent如何复刻你的独特文案风格与节奏

FireRed-OpenStoryline少样本仿写深度解析:AI Agent如何复刻你的独特文案风格与节奏 【免费下载链接】FireRed-OpenStoryline FireRed-OpenStoryline is an AI video editing agent that transforms manual editing into intention-driven directing through natural language …

2026/10/3 9:42:31 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/2 10:36:31 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/3 9:42:35 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/3 9:42:36 阅读更多 →