在 Windows 98 上运行karpathy的llama2.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 的推理文件,没有任何依赖关系。