新鲜出炉!Andrej Karpathy全新项目来了:从零手搓一个ChatGPT
创始人
2025-10-14 18:40:53
0次

Datawhale干货

最新项目:nanochat,作者:Andrej Karpathy

编辑|张文恺,Datawhale成员

AI 大神 Andrej Karpathy 再度带来惊喜,

发布了名为 nanochat的全新项目。

他将其描述为自己写过的最放飞自我的代码库,它将作为其备受期待的 LLM 课程的一部分。

项目地址:https://github.com/karpathy/nanochat

nanochat 的核心理念是 极简与一站式。

它将训练一个类 ChatGPT 模型所需的全流程——从数据处理、预训练、对齐微调,到最终的推理部署与 WebUI——整合在了一个仅有 8300 行的清晰代码库中。

整个过程被设计得极其简单:你只需一台云端 GPU 服务器,运行一个脚本,最快在 4 小时内,就能与你亲手训练出的 AI 模型在专属的网页上进行对话。

这个 AI 全家桶 包含哪些核心组件?

Karpathy 为你打包了构建 ChatGPT 的完整工作流:

  • 高效分词器 (Tokenizer):使用 Rust 语言从零开始实现,保证高性能。

  • 模型预训练 (Pre-training):在经典的 FineWeb 数据集上进行,并提供 CORE 等多维度评估指标。

  • 对齐微调 (Fine-tuning):教授模型如何像 AI 助手一样对话、完成选择题,甚至学习使用计算器等外部工具。评测基准覆盖常识推理 (ARC)、知识问答 (MMLU)、数学 (GSM8K) 和代码生成 (HumanEval)。

  • 强化学习 (RL):(可选) 可在 GSM8K 数学任务上,使用 GRPO 算法进行强化学习,进一步提升模型能力。

  • 推理与部署 (Inference & Deployment):提供一个包含 KV cache 优化的高效推理引擎,支持命令行 (CLI) 和一个精致的 ChatGPT 风格 WebUI 进行交互,并内置了用于工具调用的轻量级 Python 沙箱。

  • 评估指标:训练结束后,将模型的各项关键指标可视化呈现。

在以下板块展示了每个步骤的所有细节。

你最关心的两个问题,Karpathy 亲自解答:

问:我能用 nanochat 微调,让模型学会我的写作风格吗?

答:简单来说:不建议。Karpathy 将 nanochat 训练出的小模型比作一个“幼儿园小朋友”,它尚不具备顶级大模型那样的深层智能。如果用个人数据进行微调,它最多只能“鹦鹉学舌”般地模仿表面风格,而生成的内容逻辑和质量会很糟糕。

正确路径是:选择像 Llama 3 这样的顶级开源大模型进行微调,或者利用 NotebookLM 这类工具,通过检索增强生成 (RAG) 的方式,让 AI 参考你的内容进行创作。

问:这么优秀的代码,是人类手打还是 AI 辅助的?

答:纯手工编写!Karpathy 坦言,他曾尝试使用 AI 编程助手,但完全无法跟上他独特的编程思路和代码风格,因此整个项目都是他亲手完成的。

相关内容

热门资讯

空调连续工作多久需要停机休息 空调连续工作的时间取决于多个因素,包括空调的型号、功率、使用环境和维护情况等。一般来说,空调可以连续...
空调哪个符号是除湿的 空调除湿功能通常用一个水滴形状的符号表示。不同品牌和型号的空调遥控器可能会有所差异,但一般来说,除湿...
格力空调多长时间加一次氟利昂 1、一般情况下,空调对氟利昂的使用量是非常小的,所以在空调使用了四年左右的时候再考虑加也没问题。2、...
空调用多长时间需要加氟一次 一般情况下是五年。当出现以下这几种情况时,空调才需要加氟。1、空调的室内机和室外机各有两个接口,当接...
格调生活·C标思享荟:卡萨帝在... 9月12日的郑州龙湖金融岛,夜风轻拂,灯光璀璨。“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑...
品牌价值破千亿、高端份额持续领... 9月12日,“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑州站”在郑州龙湖金融岛举办。2026...
空调主板坏了修800还是换新的 空调主板坏了是修还是换新,需要考虑多个因素,以下是一些建议:1. 维修成本:如果维修费用较低,比如 ...
空调开多久需要休息多长时间 问题:空调开多久需要休息多长时间回答:1、在使用空调的过程中,一般空调开7~8个小时左右需要休息2~...
中央空调多长时间清洗一次 1、一般空调开机前清洗一次即可,空调开机中间时段再清洗一次,空调关机时清洗一次,这样比较合理。2、空...
中央空调氟利昂多久加一次 看空调制热和制冷程度,很多人的观点认为氟利昂必须一年放一次,其实这个观点是错误的,理解上面有点偏差,...