AI 能读论文并为你“总结”?它真的理解了吗?用纯 CMake 实现 GPT-2

通过 CMake 构建工具表现出的复杂代码结构的概念性数字图形。
AI Summary

探讨了开发者们的一个独特挑战:在没有复杂 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 时代所必需的真正读写能力。

参考资料

  1. [Vue HN 2.0 Implementation of GPT-2 in pure CMake](https://vue-hackernews-ssr-5cavbdjcta-ew.a.run.app/item/49412909)
  2. Andrej Karpathy Trains GPT-2 in Pure C Without PyTorch
  3. Why Implement GPT-2 in Pure C Language? Karpathy Responds to Online Criticism - Boardor
  4. GitHub - openai/gpt-2: Code for the paper “Language Models are…”
  5. Need help with implementing gpt-2 from scratch - Deep Learning…
  6. project — CMake 4.4.2 Documentation
  7. Free GPT Image 2 AI Image Generator & Editor (No Signup, Unlimited)
  8. Implementation of GPT-2 in pure CMake - GitHub
  9. The Ultimate Tech Flex: Implementing GPT-2 in Pure CMake
  10. GitHub - shaktsin/gpt2.c: GPT2 Inference Implementation in …
  11. Implementation of GPT-2 in pure CMake - thenote.app
  12. [Implementation of GPT-2 in pure CMake Hacker News](https://news.ycombinator.com/item?id=49412909)
  13. Deconstruction Series #1: Rebuilding GPT-2 in Pure C
  14. NanoEuler Tutorial: Run GPT-2 in Pure C/CUDA — AI Tutorial
  15. GitHub - angry-kratos/GPT-2-in-C: GPT 2 implementation in pure C
  16. GitHub - NJX-njx/microgpt: The most atomic GPT-2 …
  17. Andrej Karpathy’s “llm.c” is Revolutionizing GPT-2 with a …
  18. Andrej Karpathy Trains GPT-2 in Pure C Without PyTorch
AD
测试你的理解
Q1. 文中提到的用 CMake 实现 GPT-2 的尝试,其主要目的是什么?
  • 生成最高性能的模型
  • 部署实际的商业服务
  • 对 AI 内部结构的教育性理解
这种实现具有极强的教育意义,旨在从底层探索 AI 模型内部是如何运作的。
Q2. Andrej Karpathy 展示的“llm.c”项目的特点是什么?
  • 基于 PyTorch 的学习
  • 纯 C 语言约 1000 行左右实现
  • 仅限网页浏览器的模型
llm.c 摒弃了 PyTorch 等复杂外部依赖,仅使用纯 C 语言编写了约 1000 行代码来实现 GPT-2。
Q3. CMake 本来是用于什么目的的工具?
  • AI 模型学习专用库
  • 软件构建自动化工具
  • 语言模型分词工具
CMake 是一个用于在多个平台上构建和管理软件的自动化工具。