为什么要纯C谈话手搓GPT-2,Karpathy回应网友质疑

Karpathy:for fun.几天前,前特斯拉 Autopilot 负责人、OpenAI 科学家 Andrej Karpathy 发布了一个仅用 1000 行代码即可在 CPU/fp32 上实行 GPT-2 训练的项目「llm.c」。llm.c 旨在让大模型(LM)训练变得简单 —— 使用纯 C 谈话 / CUDA,不须要 245MB 的 PyTorch 或 107MB 的 cPython。例如,训练 GPT-2(CPU、fp32)仅须要单个文献中的大约 1000 行干净代码(clean

Karpathy:for fun.

几天前,前特斯拉 Autopilot 负责人、OpenAI 科学家 Andrej Karpathy 发布了一个仅用 1000 行代码即可在 CPU/fp32 上实行 GPT-2 训练的项目「llm.c」。

图片

llm.c 旨在让大模型(LM)训练变得简单 —— 使用纯 C 谈话 / CUDA,不须要 245MB 的 PyTorch 或 107MB 的 cPython。例如,训练 GPT-2(CPU、fp32)仅须要单个文献中的大约 1000 行干净代码(clean code),可以立即编译运转,并且完全可以媲美 PyTorch 参考实行。

图片

项目链接:https://github.com/karpathy/llm.c

项目的 Star 量不到七个小时就冲上了 2000,目前已经接近一万 Star。很多网友惊呼太强了:「即使顶着指针 ptsd,我也能感受到这些代码的美。」

图片

然而,llm.c 项目收到的不只是称赞,还有很多质疑的声音。例如,有网友间接提问:「能具体描述下这个项目做了什么吗,解决了什么问题?」

图片

对此,Karpathy 今天正面回应了网友们的疑问,详细阐述了 llm.c 项目的意义是什么,优缺点有哪些。

图片

机器之心对 Karpathy 叙述原文进行了不改变原意的编译、整理,我们来看下 Karpathy 是怎么说的:

训练大型谈话模型 (LLM),例如 ChatGPT,涉及大量代码,复杂度很高。例如,典型的 LLM 训练能够会使用 PyTorch 深度学习库。PyTorch 本身就相当复杂,因为它实行了:

一个十分通用的张量抽象(一种排列和操作数组的方法,这些数组用于存储神经网络参数和激活);

一个十分通用的反向传播 Autograd 引擎(训练神经网络参数的算法) ;

在神经网络中使用的大量深度学习层。 

PyTorch 项目有 11449 个文献中的 3327184 行代码。最重要的是,PyTorch 是用 Python 编写的,Python 本身就是一种十分高级的谈话 —— 必须运转 Python 解释器将训练代码转换为低级计算机指令。例如,执行此转换的 cPython 项目包含 4306 个文献中的 2437955 行代码。

llm.c 项目旨在移除全部这些复杂性,并将 LLM 训练简化为其最基本的要素,用十分低级的谈话 (C 谈话) 间接与计算机对话,并且没有其他库依赖项,唯一的抽象是汇编代码本身。

令人惊讶的是,训练像 GPT-2 这样的 LLM 实际上只须要在单个文献中使用大约 1000 行 C 谈话代码。我通过间接在 C 谈话中实行 GPT-2 的神经网络训练算法来实行这种压缩。这实际上很困难,因为你必须详细了解训练算法,能够导出全部层反向传播(backpropagation)的 forward pass 和 backward pass,并十分仔细地实行全部数组索引计算,因为没有可用的 PyTorch 张量抽象。但一旦这样做了,并且通过再次检查 PyTorch 来验证正确性,你就会得到一些十分简单、小且精致的东西。

那么,为什么人们不一直这样做呢?

第一:这放弃了很大的灵活性。如果你想改动神经网络,在 PyTorch 中你能够只须要变动一行代码。而在 llm.c 中,改动很能够会涉及更多代码,能够会更加困难,并且须要更多专业知识。例如。如果涉及一个新的操作,你能够就须要做一些微积分,并写出它的 forward pass 和 backward pass 以进行反向传播,并确保其在数学上是正确的。

第二:放弃速度,至少一开始是这样的。天下没有免费的午餐 —— 不应该指望仅 1000 行代码就能达到最先进的速度。PyTorch 在后台做了很多工作,以确保神经网络十分高效。不仅全部张量操作都十分仔细地挪用最高效的 CUDA 内核,而且还有 torch.compile 等等,以进一步分析和优化神经网络并有效地在计算机上运转。

现在,原则上,llm.c 应该能够挪用全部相同的内核并间接运转。但这须要更多的工作,就像上述第一点一样,如果变动神经网络或正在运转的计算机的任何内容,你能够必须使用不同的参数挪用不同的内核,并且能够会手动进行更多变动。

总的来说,llm.c 是训练 GPT-2 的间接实行。这个实行结果出人意料地简短。但 llm.c 不支持其他神经网络,仅支持 GPT-2,如果你想变动神经网络的任何内容,则须要专业知识。幸运的是,全部最先进的 LLM 实际上与 GPT-2 根本没有太大的区别。并且,llm.c 必须进行额外的调整和完善,但原则上我认为它应该几乎能够媲美,甚至超越 PyTorch,因为我们消除了全部开销。

最后,我为什么要做这个工作?因为这很有趣。它也很有教育意义,因为只须要那 1000 行十分简单的 C 谈话代码。它只是一些数组和对其元素进行一些简单的数学运算,例如 + 和 *。对于正在进行的更多工作,它能够会变得实际有用。

参考链接:https://twitter.com/karpathy/status/1778153659106533806

原创文章,作者:机器之心,如若转载,请注明出处:https://www.iaiol.com/news/wei-shen-me-yao-chun-c-tan-hua-shou-cuo-gpt2-karpathy-hui/

(0)
上一篇 2024年 4月 10日
下一篇 2024年 4月 12日

相关推荐

  • Hologres揭秘:高功能原生加快MaxCompute核心原理

    Hologres(中文名交互式剖析)是阿里云自研的一站式及时数仓,这个云原生系统融合了及时服务和剖析大数据的场景,全面兼容PostgreSQL协议并与大数据生态无缝打通,能用同一套数据架构同时支援及时写入及时查问以及及时离线联邦剖析。它的出现简化了业务的架构,与此同时为业务提供及时决策的能力,让大数据发挥出更大的商业价值。从阿里集团诞生到云上商业化,随着业务的发展和技术的演进,Hologres也在持续不断优化核心技术竞争力,为了让大家更加了解Hologres,我们计划持续推出Hologres底层技术原理揭秘系列,从

    2021年 7月 12日
  • 他发明了通用数据压缩算法:Jacob Ziv获2021 IEEE名誉勋章

    今年的 IEEE 名誉勋章,颁给了一位 90 岁老人:Jacob Ziv。

    2021年 1月 19日
  • 39亿参数模型公开可用,采样速度7倍提升,残差量化天生图片入选CVPR’22

    基于残差量化的自回归图象天生,官方已将代码公开。

    2022年 3月 27日
  • 哥德尔90年前的「不完备性定理」,奠定了估计机与AI的实际根蒂根基

    大神早已远去,而他的光芒仍在人间。

    2021年 6月 18日
  • 澜舟科技推出「熊猫小说家」小程序,用 AI 书写你的小说

    普罗佩提乌斯说过:“我之所以写作并不是由于天才的冲动,而是为了舒缓爱情的烦恼和哀诉人生难以消除的痛苦。”每当被优秀小说中那些天马行空的想象、感人至深的对白、百转千回的情节所触动时,你是否有想过如果可以将自己的生活写成小说,那会是一部怎样的作品?如果把我的日常生活用玄幻世界的语言来描述,小说中会有什么好玩的事情发生?如果我和朋侪们一起进入了仙侠世界,我们会经历什么样的剧情?你的这些脑洞在澜舟科技全新推出的小程序—「熊猫小说家」中都可以找到答案!熊猫小说家是什么熊猫小说家是澜舟科技首

    2022年 10月 28日
  • 专访唐杰 | 我国首个超大智能模型「悟道」发布,迎接鉴于模型的AI云时代

    唐杰觉得,超大规模预训练模型的出现,很可能改变信息产业格局,继鉴于数据的互联网时代、鉴于算力的云计算时代之后,接下来可能将进入鉴于模型的 AI 时代。智源研讨院致力于成为这样一个时代的引领者,集聚各方资源力量,构建一个超大规模智能模型技术生态和开放平台,供北京乃至全国的研讨人员、开发者和企业使用。

    2021年 3月 30日
  • 知乎李大海对话阿里云贾扬清:透视AI使用难题与将来趋势

    “AI行业接下来可能有哪些落后?” “一线从业者如何看待其中的机会?”知乎合伙人、CTO李大海与阿里巴巴副总裁、阿里云智能高级研究员贾扬清亮相知乎直播,与网友分享了他们对AI时代下行业趋势、手艺使用、个人成长等多个层面的洞察和思考。

    2021年 8月 11日
  • 只有170字节,最小的64位Hello World步伐这样写成

    最简单的 C 语言 Hello World 步伐,底层到底发生了什么?如何编写出最小的 64 位 Hello World 步伐?

    2020年 12月 25日
  • AI可诠释性及其在蚂蚁保险平安规模的运用简介

    可诠释性有关算法作为蚂蚁集团提出的“可托AI”技术架构的重要组成部分,已大量运用于蚂蚁集团保险平安风控的风险鉴别、欺诈举报审理等场景,取得了一些阶段性的成果。本系列文章,我们将以风控规模详细运用为例,尤其关注规模大师履历和机械进修要领的交互结合,介绍蚂蚁集团特点可诠释、图可诠释、逻辑可诠释等算法方案的探索和落地。大师点评:沈超 西安交通大学教授、网络空间保险平安学院副院长AI可诠释性是可托AI的重要组成部分,已成为野生智能规模的研究热点。可诠释性有助于用户了解系统的决议逻辑并建立信任,从而

    2022年 4月 24日

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注