自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

26年前老年機(jī)跑Llama2,每秒39個(gè)token:你的AI PC,也可以是Windows 98

人工智能 新聞
這臺 PC 可能比你的年齡還大,要知道它已經(jīng)是 26 年前的硬件了,配備英特爾奔騰 2 CPU 和 128MB 的內(nèi)存。

讓 Llama 2 在 Windows 98 奔騰 2(Pentium II)機(jī)器上運(yùn)行,不但成功了,輸出達(dá)到 39.31 tok / 秒。

這臺 PC 可能比你的年齡還大,要知道它已經(jīng)是 26 年前的硬件了,配備英特爾奔騰 2 CPU 和 128MB 的內(nèi)存。

該項(xiàng)目是一個(gè)名為 EXO Labs 組織的一次大膽嘗試,其證明了如果 Llama 模型能在 26 年前的硬件上跑通,那么它可以在任何地方運(yùn)行。

圖片

為了證明這是真實(shí)發(fā)生的,EXO Labs 還放出了一段視頻。視頻顯示一臺古老的 350 MHz Elonex 奔騰 2 電腦啟動 Windows 98 后,然后啟動了基于 Andrej Karpathy 開發(fā)的 Llama2.c 定制的純 C 推理引擎,并要求 LLM 生成一個(gè)關(guān)于 Sleepy Joe 的故事。

令人驚訝的是,它成功了,故事的生成速度非???。

不過,上述令人大開眼界的壯舉遠(yuǎn)不是 EXO Labs 的最終目標(biāo)。這個(gè)有點(diǎn)神秘的組織于 9 月正式成立,其使命是「讓人工智能普及大眾」。該組織由牛津大學(xué)的研究人員和工程師組成。簡而言之,EXO 認(rèn)為少數(shù)幾家大公司控制人工智能對文化、真理和我們社會的其他基本方面來說是一件非常糟糕的事情。因此,EXO 希望建立開放的基礎(chǔ)設(shè)施來訓(xùn)練前沿模型,并使任何人都可以在任何地方運(yùn)行它們。通過這種方式,普通人幾乎可以在任何設(shè)備上訓(xùn)練和運(yùn)行人工智能模型 —— 而這個(gè)瘋狂的 Windows 98 運(yùn)行大模型只是一個(gè)演示,展示了在(嚴(yán)重)有限的資源下我們可以做些什么。

正如讀者所料,EXO 輕而易舉地從 eBay 上買到了一臺舊的 Windows 98 PC 作為該項(xiàng)目的基礎(chǔ),硬件有了,但仍有許多障礙需要克服。EXO 解釋說,將數(shù)據(jù)導(dǎo)入舊硬盤就是一項(xiàng)巨大的挑戰(zhàn),因此他們只能使用老式 FTP(good old FTP)通過這臺古老機(jī)器的以太網(wǎng)端口進(jìn)行文件傳輸。

然而,更大的挑戰(zhàn)是讓 Windows 98 編譯現(xiàn)代代碼。好在 EXO 找到了 Andrej Karpathy 的 llama2.c 項(xiàng)目。借助此資源和舊的 Borland C++ 5.02 IDE 和編譯器(加上一些小調(diào)整),可以將代碼制作成與 Windows 98 兼容的可執(zhí)行文件并運(yùn)行。

代碼已經(jīng)開源。

圖片

項(xiàng)目地址:https://github.com/exo-explore/llama98.c

為了讓大家更好的了解這項(xiàng)研究,EXO Labs 還專門寫了一篇博客,通過這篇博客,我們看看具體實(shí)現(xiàn)過程。

硬件設(shè)置

首先,需要機(jī)器本身。我們在 eBay 上以 118.88 英鎊的價(jià)格找到了一臺 Windows 98 奔騰 II 電腦。

圖片

我在 eBay 上發(fā)現(xiàn)了這個(gè)泛黃的主機(jī),一臺 Windows 98 奔騰 II,128MB 內(nèi)存,售價(jià) 118.88 英鎊。

讓它與現(xiàn)代外圍設(shè)備一起工作是第一個(gè)挑戰(zhàn),我們的 USB 鍵盤或鼠標(biāo)都無法工作。解決辦法是重新使用傳說中的 PS/2 接口,但有一個(gè)問題要注意:鼠標(biāo)必須放在端口 1,鍵盤放在端口 2。反向配置則行不通。

圖片

背板展示了 PS/2 端口、串行端口,以及至關(guān)重要的、后來被證明是必不可少的以太網(wǎng)端口。

文件傳輸:回歸 FTP

下一個(gè)挑戰(zhàn)是將文件傳輸?shù)綑C(jī)器上。我們需要傳輸模型權(quán)重、tokenizer 配置和推理代碼?,F(xiàn)代解決方案都失敗了:

  • 系統(tǒng)無法識別 RW 磁盤
  • 我們的 4TB USB 驅(qū)動器對于 FAT32 格式來說太大了

最后成功的是古老的 FTP。事實(shí)證明,F(xiàn)TP 多年來一直保持向后兼容。我們在 M4 MacBook Pro 上運(yùn)行 FileZilla FTP 服務(wù)器,通過以太網(wǎng)(使用 USB-C 轉(zhuǎn)以太網(wǎng)適配器)連接到 Windows 98 機(jī)器,設(shè)置靜態(tài) IP,然后就可以直接從命令行傳輸文件了。

圖片

使用手動 IP(192.168.1.1)配置 MacBook 的 USB-C 以太網(wǎng)適配器,以便與 Windows 98 通信。

設(shè)置網(wǎng)絡(luò)配置后,我們需要驗(yàn)證連接。一個(gè)簡單的 ping 測試確認(rèn)了機(jī)器之間可以相互通信:

圖片

成功!Windows 98 機(jī)器與 MacBook 的連接延遲小于 1 毫秒。

建立網(wǎng)絡(luò)連接后,我們終于可以使用 FTP 傳輸文件了。一個(gè)關(guān)鍵問題是:可執(zhí)行文件無法運(yùn)行,直到我們發(fā)現(xiàn)它們需要以二進(jìn)制模式傳輸。解決方法很簡單,只需在 FTP CLI 中輸入「二進(jìn)制」即可:

圖片

通過 FTP 以二進(jìn)制模式傳輸 stories260K.bin 模型文件。

編譯挑戰(zhàn)

在 Windows 98 下編譯現(xiàn)代代碼非常棘手。我們首先嘗試了 mingw,據(jù)說它可以為 Windows 98/Pentium II 編譯現(xiàn)代 C++。結(jié)果卻走入了死胡同 — 可能是由于 CMOV 指令不支持奔騰 Pro 之前的版本。

于是,我們采用了老式的方法:Borland C++ 5.02 是一款有 26 年歷史的集成開發(fā)環(huán)境和編譯器,可直接在 Windows 98 上運(yùn)行。唯一的問題是它支持的是非常老的 C/C++ 版本?,F(xiàn)代 C++ 是不可能的,但幾十年來 C 語言的變化卻少得驚人。C 語言最大的變化是在 1999 年(C99),所以很遺憾我們錯(cuò)過了。舊版 C 的主要限制是不能「隨處聲明」變量,所有變量都必須在函數(shù)的開始部分聲明。

圖片圖片

Borland C++ 5.02,一款有 26 年歷史的集成開發(fā)環(huán)境,仍然能夠完成任務(wù)。

Karpathy 救場

這讓我們想到了 Andrej Karpathy 的 llama2.c:700 行純 C 語言,可以在具有 Llama 2 架構(gòu)的模型上運(yùn)行推理。非常完美,但為了在奔騰 II 上運(yùn)行 Win98,它仍然需要一些調(diào)整:

  • 用「DLONGWORD」代替「long long」(使用類型定義);
  • 將所有變量聲明移至函數(shù)起始處;
  • 簡化了從磁盤到內(nèi)存的加載(內(nèi)存映射會導(dǎo)致 SEGFAULTS);
  • 通過用 GetTickCount () 代替 clock_gettime 修復(fù)了時(shí)間戳問題。

本項(xiàng)目的代碼可在 GitHub 上的 llama98.c 獲取。

圖片

成功!在 Windows 98 上運(yùn)行的 260K 參數(shù) Llama 模型生成了一個(gè)關(guān)于 Sleepy Joe 的故事。

結(jié)果

終于讓它工作了!以下是我們實(shí)現(xiàn)的結(jié)果,完全在 Pentium II CPU 上運(yùn)行,無需 GPU:

圖片

Llama 3.2 1B 的結(jié)果是基于運(yùn)行適合內(nèi)存的模型碎片的基準(zhǔn)測試和磁盤讀取基準(zhǔn)測試得出的。Llama98.c 正在通過卸載功能進(jìn)行擴(kuò)展,以運(yùn)行更大的模型來進(jìn)行實(shí)際測試。

雖然沒有達(dá)到 ChatGPT 的速度,但讓任何現(xiàn)代人工智能模型在二十多年前的 CPU 硬件上運(yùn)行,都是朝著我們的使命邁出的重要一步。在此特別感謝 Chris Wellons 關(guān)于如何在 Windows 98 上運(yùn)行 C++ 的精彩博文。

未來:BitNet 及其他

BitNet 是前沿模型真正可以在任何硬件上運(yùn)行的一個(gè)前景廣闊的方向。BitNet 是一種使用三元權(quán)重的 transformer 架構(gòu),每個(gè)權(quán)重只能是 0、-1 或 1,每個(gè)權(quán)重只需要 1.58 比特(log?(3) ≈ 1.58)。這一簡單的變化具有重大意義:

圖片

Matmul 變成了具有三元權(quán)重的加法(Ma et al. 2024)。

由于乘以 0 是省略,乘以 1 是加法,而乘以 - 1 是減法,因此所有常見的矩陣乘法都變成了加法和減法。

這樣做的好處是顯而易見的:

  • 一個(gè) 7B 參數(shù)的 BitNet 模型只需要 1.38GB 的存儲空間,小到足以安裝在大多數(shù)硬件上,甚至是幾十年前的 PC(我們使用的 PC 只有 1.6GB 的硬盤驅(qū)動器);
  • CPU 優(yōu)先:微軟的 BitCPP 在 M2 Ultra CPU 上每秒可生成 52 個(gè) token,在英特爾 i7 上每秒可生成 18 個(gè) token;
  • 更令人印象深刻的是:100B 參數(shù)的 BitNet 可在單個(gè) CPU 上以人類讀取速度(5-7 個(gè) token / 秒)運(yùn)行;
  • 節(jié)能:比全精度模型節(jié)能 50% 以上。

在 EXO,我們研究三元模型已經(jīng)有一段時(shí)間了。2024 年 4 月,我們發(fā)布了在蘋果芯片上高效運(yùn)行的 MLX-BitNet。在 2024 年的 ICML 會議上,我們首次展示了用于蛋白質(zhì)語言建模的 BitNet 實(shí)現(xiàn),并正在開發(fā)用于蛋白質(zhì)建模的更大 BitNet 模型。

雖然目前還沒有大型開源 BitNet 模型,但我們相信三元模型是人工智能的未來。我們計(jì)劃在 2025 年訓(xùn)練一個(gè)三元模型。

然后呢?

我們希望看到更多的努力集中于在舊硬件上運(yùn)行人工智能模型。從優(yōu)化內(nèi)存使用到探索能在有限硬件上高效運(yùn)行的新架構(gòu),都有大量工程工作要做。

如果你對在舊硬件(如舊 Mac、Gameboy、摩托羅拉手機(jī),甚至舊 Raspberry Pi)上運(yùn)行模型感興趣,請查看代碼并加入我們的 Discord #retro 頻道。人工智能的未來不一定要被鎖在龐大的數(shù)據(jù)中心里,它可以在你已有的硬件上運(yùn)行。

責(zé)任編輯:張燕妮 來源: 機(jī)器之心
相關(guān)推薦

2023-03-28 16:25:23

ChatGPT

2018-08-27 09:28:02

Windows 95WindowsAPP

2015-12-25 15:16:28

開源github開源項(xiàng)目

2009-06-23 08:41:53

微軟Windows 7操作系統(tǒng)

2023-09-04 19:09:00

訓(xùn)練模型數(shù)據(jù)

2022-08-06 19:59:49

昇騰AI開發(fā)者

2020-11-20 16:42:37

前端開發(fā)技術(shù)

2023-09-01 13:26:03

2018-07-04 13:00:58

雷軍代碼程序員

2023-08-21 10:36:23

2024-07-12 11:31:06

2023-10-04 08:16:04

2020-07-31 16:54:52

戴爾

2023-07-26 13:22:54

模式LSTMLlama 2

2021-11-05 21:51:50

Windows 11Windows微軟

2012-05-15 08:38:19

升級NASSATA

2020-10-16 19:07:33

Windows 10微軟回應(yīng)

2019-02-11 15:35:30

2013-05-06 09:56:57

Windows 98

2019-11-11 09:35:05

跳槽漲薪降薪
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號