llama98.c:在20年前硬件Windows 98上运行大模型

banq


在 Windows 98 上运行karpathyllama2.c的修改版本。在20年前硬件上运行现在的LLM大模型

在具有 128MB RAM 的 Windows 98 Pentium II 计算机上:

  • stories260K (Llama-2)    参数:260K    每秒Tokens :39.31
  • stories15M (Llama-2)    参数:15M    每秒Tokens :1.03

您曾想过用纯 C 语言推断一个小 Llama 2 模型吗?
没有吗?
现在可以了!

在 PyTorch 中训练 Llama 2 LLM 架构,然后用一个简单的 700 行 C 文件(run.c)进行推理。

你可能认为需要数十亿参数的 LLM 才能做任何有用的事情,但事实上,如果你把领域做得足够窄(参考:TinyStories 论文),非常小的 LLM 也能有令人惊讶的强大性能。

这个软件仓库是针对 Llama 2 LLM 的 "全栈 "训练+推理解决方案,重点在于极简主义和简单性。

由于架构相同,你也可以加载和推理 Meta 的 Llama 2 模型。

不过,目前的代码只能推断 fp32 格式的模型,因此您很可能无法有效加载超过 7B 的模型。有关模型量化的工作目前正在进行中。

请注意,这个软件仓库是最近一个有趣的周末项目: 我采用了之前的 nanoGPT,并对其进行了调整,以实现 Llama-2 架构而非 GPT-2,其中最重要的部分是在 run.c 中编写 C 语言推理引擎。

在此,我们要向出色的 llama.cpp  致敬,是它激发了这个项目。 与 llama.cpp 相比,我想要一个超级简单、最小化和教育性的东西,所以我选择硬编码 Llama 2 架构,只用一个纯 C 的推理文件,没有任何依赖关系。