没有60GB 记忆体也能跑120B 大模型!国外玩家串联手机、Mac、Windows 成功实现

一般来说,想在本地跑1,200 亿参数的大型语言模型,正规做法是要先准备好一张80GB 的资料中心GPU,或是买一台有128GB 统一记忆体的Mac Studio、AMD Ryzen AI Max+ 迷你电脑,多数人都没办法做到。不过,最近国外有位网友没有花钱买新硬体,就成功运行OpenAI 的开放权重模型gpt-oss-120b 模型,其方法是通过串联家里的手机、笔记本、Mac mini。

当然,能运行不代表运行顺畅,生成速度只有惨烈的每秒1.1 个token。

没有60GB 记忆体也能跑120B 大模型!国外玩家串联手机、Mac、Windows 成功实现

手机加五台电脑组成AI 丛集! gpt-oss-120b 跑得动、每秒只有1.1 个token

近日在Reddit 的r/LocalLLM 版上,有位Medicine_Blogscanner 的网友分享4-bit 量化版gpt-oss-120b 拆到六台消费级装置上执行的方式,记忆体用量压到47GB,生成速度是每秒1.1 个token。

根据这位网友的原文,这六台装置分别是:一台12GB 记忆体的Windows 笔记本、一台搭载RTX 3060(12GB 显示记忆体)的迷你电脑、一台16GB 的Mac mini、一台16GB 的M3 MacBook、一台只能用CPU 运算的2017 年Intel MacBook,以及他的Android 手机。手机是Galaxy S24+。六台装置有一半接有线网路,另一半连Wi-Fi。

他还写到:

老实说,我真的没想到这会成功。这几台机器没有一台能自己载入120B 的模型,差得远了。所以我干脆把它们全部丢进一个丛集里,硬试看看。

而整个设置过程大概是这样。他把RTX 3060 的迷你电脑设成主控机,接下来就让RAMDeck 软体自己分配。主控机先把自己装得下的部分留在本机,再依照其他装置的实际能力,把模型一块一块分出去。

分配顺序是GPU 先填满,接着是两台用Apple 自家GPU 介面Metal 加速的Mac,然后才轮到只能用CPU 运算的装置,最后手机也分到一小块。有趣的是,六台装置里,其实只有五台负责模型,2017 年的Intel MacBook 什么都没分到,他也认同这种分配方式,因为这台MacBook 实在是太老了。

从截图可以看到,Tiny 一台就负责六成左右,而且它分到的28.7GB 里,只有9.7GB 放在RTX 3060 的显示记忆体,另外19GB 放在系统记忆体,由CPU 负责计算。 Windows 笔记本分到7.9GB,比Mac mini 的7.4GB 还多。 M3 MacBook 分到2GB,Galaxy S24+ 只分到1.19GB:

没有60GB 记忆体也能跑120B 大模型!国外玩家串联手机、Mac、Windows 成功实现

截图看不清楚的话,可以参考下方表格:

节点名称(推测对应装置) GPU 分配 CPU 分配 合计 占全体比例
Tiny(RTX 3060 迷你电脑,主控机) 9,675MB 19,040MB 28,715MB 约61%
ACER-GAU(12GB Windows 笔记本) — 7,940MB 7,940MB 约17%
Gaurangs-Mini(16GB Mac mini) 7,473MB — 7,473MB 约16%
Anujas-MBP(16GB M3 MacBook) — 2,013MB 2,013MB 约4%
SM-S926U1(Galaxy S24+) — 1,190MB 1,190MB 约2.5%
2017 Intel MacBook — — 未分配 0%
合计 17,148MB 30,183MB 47,331MB 100%

虽然成功运行gpt-oss-120b,但载入过程并不顺畅。完整载入花了大约11 分钟,大部分时间都在等模型的分块,通过Wi-Fi 慢慢传到比较慢的装置上。他试了三次才成功,因为程式里有写死10 分钟的逾时限制,因此还没载完就被中断。

他在贴文里也给了其他人一个建议:载入逾时的时间要跟着模型大小调整,不要写死。

最终测出速度为1.1 tok/s,有些人可能对这数字没什么概念。

没有60GB 记忆体也能跑120B 大模型!国外玩家串联手机、Mac、Windows 成功实现- 榜哥

Token 是语言模型处理文字的基本单位,以英文来说,平均1 个token 大约相当于0.75 个英文单字,换句话说,20 个英文单字通常会是25~30 个token 左右。以每秒1.1 token 的生成速度来看,一句约20 个英文单字的内容可能就要等20 多秒才会完整出现。如果请它产生500 个token 的长回覆,则大概要等7 分35 秒,而且这还没算模型处理输入提示词所花的时间。

会这么慢也正常,每生成一个token,资料都需要在区域网路上依序经过每一台装置,算完才能开始下一个,因此速度会被最慢的那个装置卡住。

赞 (0)
摩榜哥摩榜哥

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注