Llama 2成功在Windows 98奔腾2机器上运行,输出达39.31 tok/秒

   日期:2024-12-31     来源:网络整理    作者:二手钢材网    浏览:119    评论:0    
核心提示:年前的硬件上跑通,那么它可以在任何地方运行。令人惊讶的是,它成功了,故事的生成速度非常快。月正式成立,其使命是「让人工智能普及大众」。端口、串行端口,以及至关重要的、后来被证明是必不可少的以太网端口。下一个挑战是将文件传输到机器上。年历史的集成开发环境,仍然能够完成任务。

考虑到这台 PC 已有 26 年的历史,并且配备 Intel 2 CPU 和 128MB RAM,它的年龄可能比您大。

该项目是一个名为 EXO Labs 的组织的大胆尝试,旨在证明如果 Llama 模型可以在已有 26 年历史的硬件上运行,那么它可以在任何地方运行。

老年机有计时器吗__老年机慢2分钟怎么调

为了证明这确实发生了,EXO Labs还发布了一段视频。该视频展示了一台古老的 350 MHz 2 计算机启动 98,然后启动基于开发的 .c 的定制纯 C 推理引擎,并要求法学硕士生成一个关于 Joe 的故事。

令人惊讶的是,它奏效了,故事很快就生成了。

_老年机慢2分钟怎么调_老年机有计时器吗

视频链接:

然而,上述令人大开眼界的壮举距离 EXO Labs 的最终目标还很远。这个有些神秘的组织于9月正式成立,其使命是“让人工智能走进大众”。该组织由牛津大学的研究人员和工程师组成。简而言之,EXO 认为,少数大公司控制人工智能对于文化、真理和我们社会的其他基本方面来说是一件非常糟糕的事情。因此,EXO 希望建立开放的基础设施来训练尖端模型,并使任何人、任何地方都可以运行它们。这样,普通人就可以在几乎任何设备上训练和运行人工智能模型——这个疯狂的 98 次运行的大型模型只是证明了我们可以利用(严重)有限的资源做什么。

正如读者所料,EXO 轻松地从 eBay 购买了一台旧的 98 PC 作为该项目的基础。硬件已经有了,但仍有许多障碍需要克服。 EXO解释说,将数据导入旧硬盘是一个巨大的挑战,因此他们只能使用好旧的FTP(好旧的FTP)通过旧机器的以太网端口传输文件。

然而,更大的挑战是让 98 编译现代代码。幸运的是,EXO找到了.c项目。借助此资源以及旧的 C++ 5.02 IDE 和编译器(加上一些细微的调整),可以将代码制作成 98 兼容的可执行文件并运行它。

_老年机有计时器吗_老年机慢2分钟怎么调

视频链接:

该代码已开源。

_老年机有计时器吗_老年机慢2分钟怎么调

项目地址:

老年机有计时器吗_老年机慢2分钟怎么调_

为了让大家更好地了解这项研究,EXO Labs还专门写了一篇博客。通过这篇博客,我们来看看具体的实现过程。

硬件设置

首先,需要机器本身。我们在 eBay 上找到了一台 98 II 电脑,售价 118.88 英镑。

老年机有计时器吗_老年机慢2分钟怎么调_

我在 eBay 上发现了这款泛黄的游戏机,98 II,128MB RAM,售价 118.88 英镑。

让它与现代外围设备配合使用是第一个挑战,我们的 USB 键盘或鼠标都不起作用。解决办法是复用传说中的PS/2接口,但是有一个问题需要注意:鼠标必须放在端口1上,键盘放在端口2上。反向配置是行不通的。

老年机慢2分钟怎么调__老年机有计时器吗

后面板展示了 PS/2 端口、串行端口,最重要的是,还有一个重要的以太网端口。

文件传输:返回FTP

_老年机慢2分钟怎么调_老年机有计时器吗

下一个挑战是将文件传输到机器。我们需要传输模型权重、配置和推理代码。现代解决方案都失败了:

最终成功的是老式的 FTP。事实证明,FTP 多年来一直保持向后兼容。我们在 M4 Pro 上运行一个 FTP 服务器,通过以太网连接到 98 机器(使用 USB-C 转以太网适配器),设置静态 IP,并且能够直接从命令行传输文件。

老年机有计时器吗__老年机慢2分钟怎么调

USB-C 以太网适配器配置手动 IP (192.168.1.1) 以与 98 通信。

设置网络配置后,我们需要验证连接。简单的 ping 测试确认机器可以相互通信:

_老年机慢2分钟怎么调_老年机有计时器吗

成功! 98台机器连接延迟小于1毫秒。

建立网络连接后,我们终于可以使用FTP传输文件了。一个关键问题:可执行文件无法运行,除非我们发现它们需要以二进制方式传输。解决方案很简单,只需在 FTP CLI 中输入“”即可:

老年机慢2分钟怎么调_老年机有计时器吗_

老年机慢2分钟怎么调__老年机有计时器吗

通过FTP以二进制方式传输.bin模型文件。

编译挑战

在 98 下编译现代代码非常棘手。我们首先尝试了mingw,据说它可以为98/II编译现代C++。它最终陷入了死胡同——可能是因为 Pro 之前的版本不支持 CMOV 指令。

于是我们就走老路了:C++ 5.02是一个有26年历史的集成开发环境和编译器,直接运行在98上。唯一的问题是它支持非常旧的C/C++版本。现代 C++ 是不可能的,但 C 语言在过去几十年里几乎没有什么变化。 C语言最大的变化是在1999年(C99),很遗憾我们错过了。旧版本 C 的主要限制是不能在“任何地方”声明变量;所有变量都必须在函数的开头声明。

_老年机有计时器吗_老年机慢2分钟怎么调

C++ 5.02,一个已有 26 年历史的集成开发环境,仍然可以完成工作。

救援

这给我们带来了 .c:700 行纯 C 语言,可以在具有 Llama 2 架构的模型上运行推理。相当完美,但仍需要一些调整才能在 II 上运行 Win98:

该项目的代码可在 .c 中找到。

老年机慢2分钟怎么调__老年机有计时器吗

老年机慢2分钟怎么调__老年机有计时器吗

成功!在 98 上运行的 260K 参数 Llama 模型生成了一个关于 Joe 的故事。

结果

终于成功了!以下是我们的实现结果,完全在 II CPU 上运行,不需要 GPU:

老年机有计时器吗_老年机慢2分钟怎么调_

Llama 3.2 1B 结果基于运行适合内存和磁盘读取基准的模型片段的基准。 .c 正在扩展卸载功能,以运行更大的模型进行实际测试。

虽然没有达到 100% 的速度,但让任何现代人工智能模型在二十多年前的 CPU 硬件上运行都是我们实现使命的重要一步。特别感谢 Chris 关于如何在 98 上运行 C++ 的精彩博客文章。

未来:还有更多

对于真正可以在任何硬件上运行的尖端模型来说,这是一个有前途的方向。它是一种使用三元权重的架构。每个权重只能是 0、-1 或 1,每个权重只需要 1.58 位(log2(3) ≈ 1.58)。这个简单的改变具有巨大的影响:

_老年机有计时器吗_老年机慢2分钟怎么调

老年机有计时器吗__老年机慢2分钟怎么调

变成三元权重的加法(Ma et al. 2024)。

由于乘以0是省略,乘以1是加法,乘以-1是减法,所以所有常见的矩阵乘法都变成加法和减法。

这样做的好处是显而易见的:

在 EXO,我们研究三元模型已经有一段时间了。 2024 年 4 月,我们发布了 MLX——它可以在 Apple 芯片上高效运行。在 2024 年 ICML 会议上,我们首次展示了蛋白质语言建模的实现,并正在开发更大的蛋白质建模模型。

虽然目前还没有大规模的开源模型,但我们相信三元模型是人工智能的未来。我们计划在 2025 年训练三元模型。

然后呢?

我们希望看到更多的努力集中在旧硬件上运行人工智能模型。有很多工程工作要做,从优化内存使用到探索可以在有限硬件上高效运行的新架构。

如果您有兴趣在旧硬件(例如旧 Mac、摩托罗拉手机,甚至旧 Pi)上运行模型,请查看代码并加入我们的#retro 频道。人工智能的未来不必被锁在巨型数据中心;它可以在您已有的硬件上运行。

参考链接:

 
打赏
 
更多>同类资讯

0相关评论
推荐热播视讯

推荐视频

    Copyright © 2017-2020  二手钢材网  版权所有  
    Powered By DESTOON 皖ICP备20008326号-2