> 自媒体 > (AI)人工智能 > OpenAI 联创 Karpathy 用纯 C 代码实现轻量版Llama2,MacBook 可运行,已揽4.3k星
OpenAI 联创 Karpathy 用纯 C 代码实现轻量版Llama2,MacBook 可运行,已揽4.3k星
来源:CSDN
2023-07-28 10:06:44
403
管理

整理 | 明明如月,CSDN博客专家 责编 | 夏萌

出品 | CSDN(ID:CSDNnews)

近期 Meta 开源的 Llama 2 大模型火遍了 整个 AI 社区。甚至有报道称: 如果将 GPT 的诞生比作大模型的 “iPhone 时刻”,那么这次 Meta Llama 2 的开源无疑将成为大模型的“安卓时刻”。

特斯拉前 AI 总监,年初重回 OpenAI 的 联合创始人 Andrej Karpathy 也按捺不住了,他利用周末的时间,用纯 C 语言打造了一个轻量版的 Llama 2 模型。

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

他表示,这个项目能够让你在 PyTorch 中训练一个轻量版 Llama 2 模型,然后通过一个仅有 500 行且无需其他依赖的纯 C 代码文件进行推理。并且该预训练模型(在 TinyStories 数据集上训练)能够在 MacBook Air M1 CPU 上以 fp32 的浮点精度、18 tok/s 的速度对故事进行采样。

这个项目的主要目标是实现一个简单的推理引擎,因此并不打算作为一个生产级别的库。项目的灵感来源于 llama.cpp,但他希望打造一个更简洁的版本,因此选择硬编码 Llama 2 架构,坚持使用 fp32,并且只使用纯 C 语言编写一个无依赖的推理文件。

到目前为止,llama2.c 项目在 GitHub 上已经揽获 4.3K stars,还在不断增长。

下面是项目的运行步骤:

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

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

然后编译并运行 C 代码。

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

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

示例输出如下所示。

Once upon a time, there was a boy named Timmy. Timmy loved to play sports with his friends. He was very good at throwing and catching balls. One day, Timmy's mom gave him a new shirt to wear to a party. Timmy thought it was impressive and asked his mom to explain what a shirt could be for. "A shirt is like a special suit for a basketball game," his mom said. Timmy was happy to hear that and put on his new shirt. He felt like a soldier going to the army and shouting. From that day on, Timmy wore his new shirt every time he played sports with his friends at the party. Once upon a time, there was a little girl named Lily. She loved to play outside with her friends. One day, Lily and her friend Emma were playing with a ball. Emma threw the ball too hard and it hit Lily's face. Lily felt embarrassed and didn't want to play anymore. Emma asked Lily what was wrong, and Lily told her about her memory. Emma told Lily that she was embarrassed because she had thrown the ball too hard. Lily felt bad achieved tok/s: 98.746993347843922

Karpathy 在讨论区中表示,自己很开心看到这个项目登上 Hacker News (一个受欢迎的技术新闻网站和论坛)。原来我的原始检查点在 MacBook Air M1 上用 -O3 编译时跑得比我预期的快得多(100 tok/s),所以现在正在训练一个更大的 44M 模型,应该还能实时运行。也许 7B 的 Llama 模型近在咫尺...

有网友表示,自己使用了一个改进过的 nanoGPT 在 TinyStories 上进行预训练,生成了一个 12M 的模型(由 GPT-4 生成的 2G 字节),结果非常惊人。然后稍微调整了一下在维基百科上的应用,看起来像是一个非常不错的废话生成器,比任何平滑的 n-gram 模型要聪明得多,并且大小明显更小。他坚信小型 LLM (大语言模型)将主导多个领域。他的下一个目标是在不降低太多智能的情况下将 7B 的 llama2 缩小到 10-100M 大小。

还有网友希望让作者分享更多 nanoGPT 的训练经验。他最近也在使用 nanoGPT,但目前输出的内容并不理想。

你认为轻量版的大语言模型未来会占主导地位吗?欢迎在评论区留言讨论。

1
点赞
赏礼
赏钱
0
收藏
免责声明:本文仅代表作者个人观点,与本站无关。其原创性以及文中陈述文字和内容未经本网证实,对本文以及其中全部或者 部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。 凡本网注明 “来源:XXX(非本站)”的作品,均转载自其它媒体,转载目的在于传递更多信息,并不代表本网赞同其观点和对 其真实性负责。 如因作品内容、版权和其它问题需要同本网联系的,请在一周内进行,以便我们及时处理。 QQ:617470285 邮箱:617470285@qq.com
关于作者
冷熙(普通会员)
文章
322
关注
0
粉丝
0
点击领取今天的签到奖励!
签到排行

成员 网址收录40329 企业收录2981 印章生成186782 电子证书796 电子名片49 自媒体20815

@2022 All Rights Reserved 浙ICP备19035174号-7
1
0
分享
请选择要切换的马甲:

个人中心

每日签到

我的消息

内容搜索