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 编程助手,但完全无法跟上他独特的编程思路和代码风格,因此整个项目都是他亲手完成的。