Show HN: NanoEuler – 纯 C/CUDA 从头实现的 GPT-2 规模模型
NanoEuler 是一个用纯 C 和 CUDA 从零构建的 GPT-2 规模语言模型项目。作者因 Anthropic 事件触动,立志进入 AI 领域,因此从底层入手,通过低层实现深入理解 LLM 的组成原理、参数与数据的关联性、GPU 工作机制以及层优化方法。项目从 Shakespeare.txt 起步,逐步研究 2300 万参数下文本生成模型的理解能力,并采用 SFT 等技术探索聊天机器人的构建流程。
背景速读
- 作者因为Anthropic(Claude背后公司)的“Fable”项目被禁而受到刺激,决心自学LLM底层知识,目标是进入Anthropic工作。NanoEuler是他从头用C/CUDA写的GPT-2规模模型(约2300万参数),不依赖PyTorch等高层框架,直接在GPU上操作。
- 项目从“莎士比亚文本”训练起步,作者观察到模型在小参数下已能学会格式(如识别"Name:"开头并续写有意义内容)。后续加入了SFT(监督微调),让模型具备简单的对话能力。
- 重点是“极低层理解”:不调用现成的库,手写CUDA内核来实现训练和推理,以理解参数、数据和模型增长之间的关系,以及GPU层的优化方法。
- 对读者来说:这是“从零写LLM”的硬核个人项目,展示了一个人如何不依赖现成框架,从C/CUDA层面理解Transformer的工作原理,而非仅仅调用API。