ChatGPT 人工智能 GPT4 伦理 生成式 医疗 监管 安全 机器学习 深度学习 神经网络 计算机视觉 强化学习 模型 算法 应用 开发 研究 工具 平台 框架 数据集 训练 部署 安全 合规 培训 投资 LLM,llm AI,ai,Ai 大模型 大语言模型 制图 生图 绘图 文生图 文生视频 生成式AI AGI 世界模型 sora chatGPT,chatgpt,ChatGpt claude openai Llama deepseek midjourney 红熊猫模型 Red panda,panda Stable Diffusion,StableDiffusion,stable DALL- E 3 DALL E DALL Flux,flux 扩散模型 混元大模型 文心一言 通义千问 可灵 Pika PixelDance 豆包 月之暗面 零一万物 阶跃星辰 搜索增强 MiniMax Talkie Agent prompt fastai LangChain TTS 微调 提示词 知识库 智能体
# 热门搜索 #
搜索
OpenAI创始大神手搓千行C代码训练GPT,附PyTorch迁移教程
5843点击    2024-04-11 10:18

大神卡帕西(Andrej Karpathy)刚“复工”,立马带来神作:


纯C语言训练GPT,1000行代码搞定!,不用现成的深度学习框架,纯手搓。


发布仅几个小时,已经揽星2.3k。



它可以立即编译和运行,和PyTorch完全兼容。


卡帕西使用的示例是GPT-2,但Llama 2和Gemma等也适用。


项目发布后,他还给出了从PyTorch迁移到C的教程。


网友们直呼:他甚至都不用C++……



而且就连怎么让大模型如法炮制的提示词,他也放了出来。现在已经有人在用Devin尝试ing。



手动实现每个层前向/反向传播


选择用GPT-2的原因很简单,有模型权重,采用了堆栈式的Transformer模型结构。


项目核心的重点包括:


  • 直接在C/CUDA上训练LLM,速度接近PyTorch

  • 通过在CPU版本中使用SIMD指令(如AVX2和NEON)聊加速CPU版本

  • 支持更先进的架构,比如Llama2和Gemma

卡帕西解释,他在开始时分配了所有所需内存,训练期间内存占用保持不变,只是数据在不同批次之间动态流动。


关键在于手动实现每个单独层的前向传播和反向传播,并将它们串联起来。例如,下面是层归一化(layernorm)的前向传播和反向传播。



一旦有了所有的层,把它们全部串联在一起。


卡帕西表示这写起来非常乏味且痛苦,因为过程中必须保证所有pointer和张量都正确排列。


下图中左边是分配一个单一的一维内存数组,然后将所有模型权重和激活函数都指向它。


右图为非常小心地进行pointer计算。



一旦建立好了正向/反向传播,其他的都好说了。


但是到这部分,卡帕西觉得到了最有趣的部分。


我正在将其逐层移植到CUDA,使其更加高效,甚至可能和PyTorch效率差不多,但不会有过多依赖。

从这里开始还有一些扩展,比如精度从fp32下降到fp16或更低,以及一些更多的层(比如RoFE)来支持更先进的架构。


卡帕西表示,后面还将出一个视频进行更加详细的讲解。


更多的代码在GitHub项目页中有更具体展示。


后面他还加了一个如何从PyTorch迁移到C的教程。


网友:这和LLM OS有关吗?


前几天,“消失”了一段时间的卡帕西突然发推特,表示自己前段时间戒网去了,总体来说感觉害行。


和互联网世界通上信号第4天,他就发布了这一新项目。给网友们来了点小震撼。


在一系列常规的amazing、great之外,大家对新项目主要关心三个方面。


第一,为啥不用Rust?


卡帕西表示他也在学习Rust,但是仍旧认为C语言已经很好了。


它简单、干净、轻便、美观,是最好的语言。


第二,AI程序员能写出同样的项目吗?


值得一提的是卡帕西还给出了一段提示词,表示大家可以用LLM Agent试试看。


目前的模型生成结果没那么好,但也许1、2年之后可以再看看。如果成功了……


“可能就是AGI到来了?”


现在已经有网友开始用Devin尝试了。


他担心Devin搜到了卡帕西的项目,然后直接抄下来。目前为止Devin还没有这么做。



不过卡帕西表示相比于这个,他更担心LLM Agent在1-2年后确实可以解决这个问题了,但是那时各种代码和讨论会以一种别样的方式渗透到训练数据


里,导致结果不够令人满意。



有人补充说,要加强数据管理了。



第三个讨论比较多的话题则是,这个项目和LLM OS有关吗?



前段时间卡帕西从OpenAI离职,计划要开始推进个人项目。


当时大家都猜测,他要做LLM OS。



3月底在访谈中,他也再次聊了这个话题。


他表示,现在AGI的路线已经相对清晰了,大家都在如火如荼推进工作,大致来说,每个人都在努力构建“大模型操作系统(LLM OS)”.


我喜欢把它比作一个操作系统。你要准备好各种外围设备,然后把他们连接在一个新的CPU上。这些外围设备包括文本、图像、音频等各种模
态。CPU就是语言模型本身。它还要与我们已经构建的
所有Software 1.0基础设施相连
我认为大家都在努力构建这样一个东西,然后把它定制成适用于各个经济领域的产品。


现在随着新项目推出,卡帕西的个人项目大概是已经提上日程了。


后续关于LLM.C的项目还会推出更详细的视频讲解版本,大家可以期待一波了~


GitHub地址:


https://github.com/karpathy/llm.c


参考链接:


[1]https://twitter.com/karpathy/status/1777427944971083809


[2]https://twitter.com/karpathy/status/1777493157485437009


[3]https://twitter.com/karpathy/status/1777481372636246491?s=46&t=iTysI4vQLQqCNJjSmBODPw


文章来自微信公众号“量子位”,作者:明敏 发自 凹非寺


AITNT资源拓展
根据文章内容,系统为您匹配了更有价值的资源信息。内容由AI生成,仅供参考
1
智能体

【开源免费】AutoGPT是一个允许用户创建和运行智能体的(AI Agents)项目。用户创建的智能体能够自动执行各种任务,从而让AI有步骤的去解决实际问题。

项目地址:https://github.com/Significant-Gravitas/AutoGPT


【开源免费】MetaGPT是一个“软件开发公司”的智能体项目,只需要输入一句话的老板需求,MetaGPT即可输出用户故事 / 竞品分析 / 需求 / 数据结构 / APIs / 文件等软件开发的相关内容。MetaGPT内置了各种AI角色,包括产品经理 / 架构师 / 项目经理 / 工程师,MetaGPT提供了一个精心调配的软件公司研发全过程的SOP。

项目地址:https://github.com/geekan/MetaGPT/blob/main/docs/README_CN.md

2
prompt

【开源免费】LangGPT 是一个通过结构化和模板化的方法,编写高质量的AI提示词的开源项目。它可以让任何非专业的用户轻松创建高水平的提示词,进而高质量的帮助用户通过AI解决问题。

项目地址:https://github.com/langgptai/LangGPT/blob/main/README_zh.md

在线使用:https://kimi.moonshot.cn/kimiplus/conpg00t7lagbbsfqkq0