为什么要纯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-shuo-hua-shou-cuo-gpt2-karpathy-hui/

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

相关推荐

  • 6年手艺迭代,阿里环球化出海&合规的寻衅和探索

    环球化手艺根植于环球化营业,经过五个阶段的演进,逐渐发展成为阿里巴巴集团内相对独立的手艺系统。本文会首先重点讲解环球化基础设施层的寻衅和手艺实践。

    2022年 7月 1日
  • MIT 10年研究总结数字化转型:仅15%用数字化创建新商业模式;一线职工是转型最大推动者

    2014年,《麻省理工斯隆办理评论》发表了名为《数字化转型的九大因素》的一篇文章,在业界引起轩然大波,不少企业就此认识到数字化转型的重要性。 6年后,数字化转型需求的技巧和方法都发生了很大的变化,作家经过大量的调研更新了数字化转型的因素,使之更契合时代状况,更具有实操性。 本篇文章将数字化转型分为客户体会转型、运营转型、商业模式转型、数字化平台转型,覆盖到企业运作的方方面面。文章表示,数字化转型并不仅仅是技巧上的,还有构造和商业模式上的,尤其强调一线职工在转型中的重要作用。文章同时也提到了大量优

    2020年 12月 18日
  • google请印度标注员给Reddit批评数据集打标签,毛病率高达30%?

    去年,google发布了 GoEmotions 数据集,该数据集包含 58K 野生标注的 Reddit 批评,其中涉及 27 种思绪。

    2022年 7月 19日
  • ScienceAI 2021「AI+质料」专题年度回顾

    编辑/凯霞传统的质料设想与研发,以实验和经验为主。但随着质料化学和加工变得越来越复杂,这变得越来越具有挑战性。随着人工智能(AI)的快速发展,AI 技巧已广泛使用于质料科学各领域。科学家正努力通过估计机建模和 AI 技巧,根据所需要的本能预计候选质料,从而加快新质料的研发速率和效率,降低研发成本。AI 正在减速搜索和预计质料特色。在 AI 的助力下,质料在极端、恶劣条件下的本能得到快速且准确的预计,实现了人类目前无法实现的……利用 AI 技巧来减速设想和发觉尚不存在的质料。这些先进的质料将使技巧更先进和更环

    2022年 1月 6日
  • 华为云位居中国DevOps市场领导者,份额、战略双第一!

    9月21日 ,国际权威阐明师机构IDC发布《IDC MarketScape: 中国 DevOps 平台市场厂商评价,2022》报告。本次报告, IDC从公司规模、产品技术、市场份额以及未来发展战略等维度对众多云厂商进行评价,华为云软件开发生产线DevCloud在市场份额和发展战略两大维度均排名第一,再次位居领导者位置。华为云DevCloud作为一站式、平安可托、全流程矫捷的DevOps云平台,已上线13项端到端子办事,办事于220万开发者,应用于10多个行业,覆盖开发全场景,全面领跑DevOps云办事市场。报告指出

    2022年 9月 22日
  • 参加这场大佬云集的开发者大会,还能抽RTX3060,请叫我「良心之心」

    这是一场 AI 开发者的盛会!2021 WAIC AI 开发者论坛上,多位业界大咖齐聚一堂,共同探讨后深度学习时代的 AI 发展。目前,AI 开发者论坛招募活动已经开启,1000 席免费专业观众席位 7 月 2 日报名截止。7 月 10 日上海,不见不散。

    2021年 6月 25日
  • 寻找了不起的AI开发者!2022年WAIC云帆奖报名开启

    2022 年 WAIC 云帆奖面向全球征选特出华人 AI 开发者,欢迎点击「阅读原文」报名或提名。

    2022年 4月 17日
  • AI模型被「骗」怎么破?《燃烧吧!天才程序员》冠军团队解决方案出炉

    前段时间,一档名为《燃烧吧!天才程序员》的竞赛类综艺让「程序员」这一群体成功破圈,也呈现了 AI 在解决实际问题的过程中面临的一些挑战,如数据集中存在对立样本、图象中存在噪声等。在本文中,CLS 战队(大赛头名团队)的优秀选手、奥比中光算法工程师埼玉详细解读了他们在竞争中用到的解决方案。近日,由蚂蚁集团、清华大学等组织共同协办的首届「Inclusion|A-tech 科技精英赛」(以下简称 A-tech 大赛)圆满落幕。奥比中光科技集团股份有限公司 (以下简称「奥比中光」) 研究院 SDK 组负责人小蛮腰、算法工程

    2021年 1月 21日
  • 多所知名高校合著综述论文、Nature新子刊创刊首发,这是你常听到的贝叶斯统计与建模

    一篇关于贝叶斯统计与建模的综述文章,出现在了 Nature 新子刊 Nature Reviews Methods Primers 的第一期上。

    2021年 1月 29日
  • 盘点如何用AI做动画,还有各种东西等你取用

    图象天生、视频天生、整合语音合成的人脸动画、天生三维的人物活动以及 LLM 驱动的东西…… 一切都在这篇文章中。天生式 AI 已经成为互联网的一个重要内容来源,现在你能看到 AI 天生的文本、代码、音频、图象以及视频和动画。今天我们要介绍的文章来自立陶宛博主和动画师 aulerius,其中按层级介绍和分类了动画领域应用的天生式 AI 手艺,包括简要介绍、示例、优缺点以及相关东西。他写道:「作为一位动画建造者,我希望一年前就有这样一份资源,那时候我只能在混乱的互联网上自行寻找可能性和不断出

    2024年 2月 19日

发表回复

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