不得不说,Llama 2 的「二创」项目越来越硬核、有趣了。
自 Meta 发布开源大模型 Llama 2 以来,围绕着该模型的「二创」项目便多了起来。此前 7 月,特斯拉前 AI 总监、重回 OpenAI 的 Andrej Karpathy 利用周末时间,做了一个关于 Llama 2 的有趣项目 llama2.c,让用户在 PyTorch 中训练一个 baby Llama 2 模型,然后使用近 500 行纯 C、无任何依赖性的文件进行推理。今天,在 Karpathy llama2.c 项目的基础上,又有开发者创建了一个启动 Llama 2 的演示操作系统,以及一个调用用户模式助手进行 Llama 2 推理的内核模块。该项目名为 Llama 2 Everywhere(简称为 L2E)。不过,作者也表示,当前的系统要求是 512MB RAM 和 x86_64(64 位)PC,可用性有待提升。同时,这个项目还藏有一些彩蛋,比如《毁灭战士》游戏,不过必须解答谜题才能找到它。项目地址:https://github.com/trholding/llama2.c
Andrej Karpathy 也转发了这个新项目,表示它具备了「独立运行、二进制、便携和可启动」等特性。他预计自己的 llama2.c 项目将走向成功,这个新项目扩展了想象力。L2E 得到了各路网友的认可,有人表示,这真是太棒了。基本上可以在任何旧笔记本上启动,并且可以仅在 CPU 上运行,8G 内存就够了,16G 更好。也有人觉得该项目非常像为上帝开发的操作系统 TempleOS(它由已故天才程序员 Terry Davis 独自开发),但项目作者表示自己只是对 Terry 和 TempleOS 的致敬。L2E 仅仅使用 Linux 内核和一些知识构建了一个操作系统,与 Terry 从头开始构建的操作系统存在天壤之别。接下来了解一下 L2E 项目的初衷、Demo 和特性。项目作者表示,L2E 旨在确保其在各种设备上的兼容性,比如在 chromebook 上启动、在企业高密度 unikernel 上部署。未来,通过利用大量具备适度硬件要求的网络化、分布式和自协调的小规模专业 LLM,该项目有潜力释放超越单个大规模 LLM 的群体智慧。目前,L2E 显著的用例是在不同文本源上训练小规模模型,包括教科书、开放书籍和 SlimPajama 语料库等。这些经过训练的模型使用 L2E 进行部署,从而作为可启动实例在老旧过时的学校计算机上运行。这种部署方案可在互联网连接有限或网络不可用的学校图书馆或教室中发挥重要价值。项目的最终目标是创建一个包容性的 AI 生态系统,能够适应多样化的环境,并在全球范围内为个人和社区赋能。此外通过使用各种硬件遥测数据训练,希望模型能够学会解释传感器输入并根据从传感器输入中收集的 insight 来控制执行器。这一研究方向可能会在自动化、太空、机器人和物联网等领域发挥作用,而 L2E 将对弥合 AI 和物理系统之间的差距发挥关键作用。如下为 Linux 内核的 L2E 操作系统,现在可以在计算机上真正启动并推理 Llama 2 模型了。此外可以做 cat /dev/llama 并回显 "Sudo make me a sandwich!" > /dev/llama 等命令,或者传递一个内核参数 l2e.quest="What is the meaning of life?"。最后还可以在大型企业服务器上启动并推理一组 1000 个 Virtural Baby Llama 2 模型。L2E 具备很强的便携性,可以在任何 x86_64 操作系统上运行单个可执行文件,比如 Windows、GNU Linux、GNU/Systemd、NetBSD、OpenBSD 等。独立性则表现在可以通过 ZipOS (cosmocc)、INCBIN、strliteral 嵌入模型和 tokenizer。L2E 可以在 CPU/GPU 上运行。