Redian新闻
>
OpenAI联创Karpathy爱上羊驼:纯C代码实现婴儿Llama2,MacBook可运行,已揽1.6k星

OpenAI联创Karpathy爱上羊驼:纯C代码实现婴儿Llama2,MacBook可运行,已揽1.6k星

公众号新闻

机器之心报道

编辑:杜伟
上个周末,Karpathy 花了整个周六来忙一个 Llama2 的有趣项目。

这一周来,Meta 开源的 Llama2 火遍了整个 AI 社区。

这不,连特斯拉前 AI 总监、年初重回 OpenAI 的 Andrej Karpathy 也坐不住了。他利用周末时间,做了一个关于 Llama2 的有趣项目 ——「llama2.c」。


GitHub 地址:https://github.com/karpathy/llama2.c

具体是什么呢?他表示「llama2.c」可以让你在 PyTorch 中训练一个 baby Llama2 模型,然后使用近 500 行纯 C、无任何依赖性的文件进行推理。并且,这个预训练模型能够在 M1 芯片的 MacBook Air 上以 fp32 的浮点精度、18 tok/s 的速度对故事进行采样。

Karpathy 介绍称,「llama2.c」的灵感来自 llama.cpp,后者由资深开源社区开发者 Georgi Gerganov 创建,可以在 MacBook 上使用 4-bit 量化运行第一代 LLaMA 模型。

对于「llama2.c」,它的训练代码由 nanoGPT 修改而来,用来训练 Llama2 架构的模型。核心是在如下 run.c 中编写 C 推理引擎,不过它目前并不是一个生产级库。下面是部分推理代码。


完整代码地址:https://github.com/karpathy/llama2.c/blob/master/run.c

结果令 Karpathy 非常惊讶,你可以在(M1)CPU 的纯单线程 C 语言中以 fp32 的交互速率来推理更小(O (~10MB))的模型。

当然,他表示自己没有尝试对最小规模的 Llama2 模型(70 亿参数)进行推理,他预计速度会非常慢。


目前,Karpathy 在 M1 MacBook Air 上,能够以 fp32 的浮点精度、100tok/s 的速度对 15M 参数的 288 6 层 6 头的模型进行推理。

之后,Karpathy 对项目进行了更新,使用「-O3」进行编译可以将 M1 MacBook Air 上的 tok/s 从 18 增加到了 98。这还没完,使用「-funsafe-math-optimizations」进行编译更是将 tok/s 增加到 315。他表示,只要在 gcc 命令中包含更多字符,速度就能提升 17.5 倍。

也许你要问了,这个项目有什么意义呢?在 Karpathy 看来,在一些较窄的领域(如生成故事)中,人们可以使用极其小的 Transformers 来做有趣的事情。

因此,这种可以移植的纯 C 实现或许非常有用,我们可以通过简单的方法高交互速率地运行合理大小的模型(几千万参数)。

有网友对「llama2.c」的开发过程很感兴趣,很多人都会有这样的想法,只是在等待合适的时机,他们没意识到几天内就可以完成很多工作。

Karpathy 回复称,自己对利用 float32 权重块及其上的微小推理代码来生成故事非常感兴趣。所以他花了整个周六的时间(从起床一直到睡觉)来写代码,然后让项目工作。


此外,Karpathy 还表示自己将出讲解视频。


项目详情

到目前为止,「llama2.c」项目已经在 GitHub 上获得了 1.6k 的 Stars,并在快速增长。


下面简单介绍一下该项目的运行步骤。

为了使用纯 C 语言运行一个 baby Llama2 模型,你需要以下的模型检查点。下载 TinyStories 数据集上训练的一个 15M 参数的模型(大约 58MB),并将它放入默认检查点目录中。

wget https://karpathy.ai/llama2c/model.bin -P out

然后编译并运行 C 代码。

gcc -O3 -o run run.c -lm./run out/model.bin

请注意这只是原始 tokens 流。遗憾的是,我们现在必须通过一个简单的转换封装器来运行 C 代码(只有 30 行)。

pip install sentencepiecepython run_wrap.py

最后你将看到文本流。在 Karpathy 的 M1 MacBook Air 上,运行速度约 100 tok/s,对于超级原生的 fp32 单线程 C 代码来说还不错。示例输出如下所示。


更多细节请查看原项目。


© THE END 

转载请联系本公众号获得授权

投稿或寻求报道:[email protected]

微信扫码关注该文公众号作者

戳这里提交新闻线索和高质量文章给我们。
相关阅读
MacBook Pro 13in 2018 A1989 keep rebooting ( screen/battery/otheMetaGPT爆火出圈!2美元就能当老板,GitHub狂揽11.2k星,AI智能体「多面手」诞生杏林春暖GitHub热榜登顶:开源版GPT-4代码解释器,可安装任意Python库,本地终端运行【城事】巴黎市长将重修Châtelet 广场以方便行人巴黎市长将重修Châtelet 广场以方便行人State of GPT: OpenAI 大神Andrej Karpathy 揭秘大模型原理和训练全过程Midjourney+Gen2,7步完成「芭本海默」,引Karpathy惊呼|附实测经验第八篇:强化学习值迭代及代码实现GPT-4里套娃LLaMA 2!OpenAI创始成员周末爆改「羊驼宝宝」,GitHub一日千星As Floods Continue, Another Casualty Emerges: Millions of BooksMIT韩松创业两年被英伟达收购!3位联创都是清华校友,核心技术在256KB内存训练AIGPT-4,Llama2,ChatGLM2,PaLM2共聚一堂 | LLM Day @KDD 2023执手追牵欢喜娃-五首题画唱和绝句5078 血壮山河之武汉会战 黄广战役 10Erklärung zur ZusammenarbeitOpenAI科学家Karpathy周末造出「婴儿Llama2」!GPT-4辅助写500行纯C代码,速揽1.6k星哈尔滨一医院大厅地上惊现婴儿,连着胎盘?当地卫健局刚刚通报……你这也太玻璃心了吧!回归OpenAI后首次演讲!李飞飞高徒Andrej Karpathy:GPT将走向何方?第10篇:强化学习Q-learning求解迷宫问题 代码实现3w+星标项目大佬创业:树莓派即可运行大模型,已获GitHub前CEO投资狂揽13k star,开源版代码解释器登顶GitHub热榜,可本地运行、可访问互联网咀外文嚼汉字(243)“九轮草”与“报春花”Gzip+ kNN文本分类竟然击败Transformers:无需预训练、14行代码实现羊驼进化成鲸鱼,Meta把对齐「自动化」,Humpback击败现有全部LLaMa模型GPT-Engineer一夜爆火!一个提示生成整个代码库,GitHub狂飙19k星英伟达AI芯片劲敌来了!AMD推出MI300X,可运行多达800亿参数模型前特斯拉总监、OpenAI大牛Karpathy:我被自动驾驶分了心,AI智能体才是未来!AI和生命的意义: OpenAI 传奇科学家Andrej Karpathy 深度访谈笔记L'Oréal(UK)开放2023 Full Time,Hybrid Work可居家办公老黄发布最强AIGC芯片!内存容量暴增近50%,可运行任意大模型,“生成式AI的iPhone时刻已来”领域驱动设计DDD|从入门到代码实践cook the books是什么意思?把书炖了?不用4个H100!340亿参数Code Llama在Mac可跑,每秒20个token,代码生成最拿手|Karpathy转赞
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。