热点

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

字号+ 作者:Ryan Hart网 来源:焦点 2024-10-28 00:22:45 我要评论(0)

编纂:杜伟上个周末,Karpathy 花了全部周六来忙一个 Llama2 的幽默名目。这一周来,Meta 开源的 Llama2 火遍了全部 AI 社区。这不,连特斯拉前 AI 总监、年初重回 Open

编纂:杜伟

上个周末,联创Karpathy 花了全部周六来忙一个 Llama2 的爱上幽默名目。

这一周来,羊驼婴儿Meta 开源的代码 Llama2 火遍了全部 AI 社区 。

这不 ,实现连特斯拉前 AI 总监 、可运年初重回 OpenAI 的行已k星 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 的行已k星速率对于故事妨碍采样  。

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 代码来说还不错 。示例输入如下所示 。

更多细节请魔难原名目 。

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
  • 凯尔特人继续交易!放弃联盟第一,塔图姆生气了

    凯尔特人继续交易!放弃联盟第一,塔图姆生气了

    2024-10-27 23:57

  • 格里芬吼斯托茨细节:要紧迫教们散会,斯

    格里芬吼斯托茨细节:要紧迫教们散会,斯

    2024-10-27 23:41

  • 原创                哈弗要创造新能源越野车的“猛龙现象”

    原创 哈弗要创造新能源越野车的“猛龙现象”

    2024-10-27 23:17

  • 95年公牛为了得到罗德曼付出了哪些筹码?其他球队报价如何?

    95年公牛为了得到罗德曼付出了哪些筹码?其他球队报价如何?

    2024-10-27 22:46

网友点评