探讨了开发者们的一个独特挑战:在没有复杂 AI 库的情况下,仅使用编程构建工具 CMake 从零开始实现 GPT-2 模型。
试想一下。如果我们可以亲手拆解今天在智能手机上使用的 AI 助手,看看它是如何“思考”并构建句子的,那会怎样?对于普通人来说,AI 感觉像是“魔法”。当你按下按钮,答案就会从那个黑箱里蹦出来。但开发者们渴望打开这个盒子看看。
最近,人们不仅满足于拆开看看,还流行起一种独特的实验:仅利用最基础的工具,从零开始搭建这庞大的 AI 结构。甚至有人尝试仅使用 CMake(一种程序构建自动化工具)来还原 GPT-2 这一人工智能模型。 [Source 8, Source 11, Source 12]
这为什么重要?
为什么大家要在繁忙的时间里自讨“苦吃”呢?这就像不是去买拼好的乐高,而是亲自削木头、和泥巴来堆砌城堡。如今,大多数 AI 开发都是在 PyTorch(一种用于 AI 开发的复杂库)等巨大而便利的工具之上进行的。然而,这些工具太方便了,以至于掩盖了 AI 在数据处理时核心的数学计算过程。
这些“从零开始(From scratch)”的实验降低了 AI 开发的门槛,帮助普通开发者从根本上理解 AI 的工作原理。 [Source 10, Source 13] 如果我们亲自构建过模型,就能更深入地洞察 AI 为何给出特定答案的逻辑路径。
通俗易懂:构建 AI 的“大脑”
简单来说,目前的 AI 模型是无数“权重(Weight,处理数据时相乘的数值)”的巨大集合。这些权重以复杂的方式连接起来,从而完成句子。打个比方,AI 就像一个连接着成千上万个水龙头的复杂管道系统。根据你打开每个水龙头的程度(调整权重),流出的水的流量和方向(结果值)也会发生变化。
Andrej Karpathy(前 OpenAI AI 科学家)通过名为“llm.c”的项目,展示了一个惊人的实验:仅用纯 C 语言,将这庞大的 AI 浓缩在约 1000 行代码中。 [Source 2, Source 3, Source 17, Source 18] 他像进行“减肥”一样,只留下了必要的代码,展示了核心结构,而原本这通常需要几十万行外部库的帮助。
这次出现的 CMake 实现是将该实验更推进一步的案例。 [Source 8, Source 11] 它利用原本用于将程序转换为可执行文件的 CMake 管理工具,编写了 AI 的计算逻辑。这就像是拿着“蓝图”去亲自烧制“砖块”一样,在开发者圈子里,这被视为一种“技术博弈”和“对极限的挑战”。 [Source 9]
现状:进展如何?
当然,这些实验性的实现目前还无法取代 ChatGPT。特别是使用 CMake 实现的模型,运行速度必然非常缓慢。因为 CMake 本身像解释器一样运行,在处理数字的过程中,必须反复经历转换为字符串等低效过程。 [Source 12]
尽管如此,这些尝试非常有价值。OpenAI 的 GPT-2 模型在鲁棒性或极端情况下的表现等方面,仍有一些未被完全理解的侧面。 [Source 4] 因此,这种“洁净室”式的实现(不依赖外部库、从头开始构建的方式)成为了拆解 AI 内部结构并进行学习的最完美教科书。 [Source 10, Source 13]
未来会怎样?
未来,AI 技术将越来越大众化。现在只有极少数工程师能够实现 AI,但随着像“llm.c”或“microgpt”这样用 265 行左右代码解释原理的项目不断增加,AI 技术将变得更加透明。 [Source 16, Source 17]
或许不久之后,我们就将生活在一个可以轻松验证 AI 从数学原理到代码单元如何运作的时代。下次当 AI 帮你总结会议纪要时,比起单纯的惊叹,不妨试着想象一下:“啊,原来那个庞大模型的核心,竟然始于这一行代码。”
MindTickleBytes 的 AI 记者视角
剥去复杂技术的表象,剩下的终究是简单的数学与逻辑。随着技术的发展,这种试图探寻“本质”的尝试,将培养我们在这个 AI 时代所必需的真正读写能力。
参考资料
-
[Vue HN 2.0 Implementation of GPT-2 in pure CMake](https://vue-hackernews-ssr-5cavbdjcta-ew.a.run.app/item/49412909) - Andrej Karpathy Trains GPT-2 in Pure C Without PyTorch
- Why Implement GPT-2 in Pure C Language? Karpathy Responds to Online Criticism - Boardor
- GitHub - openai/gpt-2: Code for the paper “Language Models are…”
- Need help with implementing gpt-2 from scratch - Deep Learning…
- project — CMake 4.4.2 Documentation
- Free GPT Image 2 AI Image Generator & Editor (No Signup, Unlimited)
- Implementation of GPT-2 in pure CMake - GitHub
- The Ultimate Tech Flex: Implementing GPT-2 in Pure CMake
- GitHub - shaktsin/gpt2.c: GPT2 Inference Implementation in …
- Implementation of GPT-2 in pure CMake - thenote.app
-
[Implementation of GPT-2 in pure CMake Hacker News](https://news.ycombinator.com/item?id=49412909) - Deconstruction Series #1: Rebuilding GPT-2 in Pure C
- NanoEuler Tutorial: Run GPT-2 in Pure C/CUDA — AI Tutorial
- GitHub - angry-kratos/GPT-2-in-C: GPT 2 implementation in pure C
- GitHub - NJX-njx/microgpt: The most atomic GPT-2 …
- Andrej Karpathy’s “llm.c” is Revolutionizing GPT-2 with a …
- Andrej Karpathy Trains GPT-2 in Pure C Without PyTorch
- 生成最高性能的模型
- 部署实际的商业服务
- 对 AI 内部结构的教育性理解
- 基于 PyTorch 的学习
- 纯 C 语言约 1000 行左右实现
- 仅限网页浏览器的模型
- AI 模型学习专用库
- 软件构建自动化工具
- 语言模型分词工具