Janas 推荐,让大模型从固态盘流式跑进小内存

想本地跑大模型,显存内存不够就卡死,这是常识。意大利一位开发者写的 Janas 挑战了这个常识,模型权重留在固态盘,用到哪块读哪块,一台三十二G 内存的笔记本跑起了四十八G 的八十亿级激活大模型。上周项目上了技术社区。我把仓库文档、性能数据与社区讨论核了一遍,思路硬核,边界也分明。

它怎么工作

针对的是混合专家架构模型的特性。这类模型每个 token 只激活极少专家,那就没必要把全部专家常驻内存,Janas 把权重留在固态盘,按需以全速直读方式载入,反复用到的专家进内存缓存,跑那个四十八G 模型时缓存约十九G。再配两件加速器,投机解码用模型自带的预测头或小模型先猜大模型批改,集成显卡分担提示词读取,长文本输入的速度也照顾到了,照顾得不错,读千 token 提示词的速度也有几十 token 每秒。

与主流推理框架的路线差异要讲清。知名框架靠内存映射加页缓存,模型超内存时直接爆掉,要靠特殊参数硬凑,测试机上读写只有每秒二点八与十六个 token。Janas 是独立的纯 C 实现,除标准库零依赖,同机写出到每秒二十四个 token,带投机解码三十七个,快出一个数量级,数字全部为作者单机自称,作者还称视窗系统下写出速度与 Linux 持平。十三个模型对比自称全线占优,仅一例读提示词略慢。模型文件需从通用格式转成自有格式,工具与已转模型都备好了,格式带版本兼容承诺,承诺的意思是升级不弃旧文件,早期用户的转换功夫不白花。

工具链齐全。聊天、基准、下载、接口服务、协议服务端、编辑器代码补全一样不缺,接口兼容主流格式,别的工具接进来不用改代码,补全功能连编辑器都覆盖了,全家桶一步到位。

边界与现状

单机验证是最大限定。全部数字来自一台特定配置的轻薄本,最新系统配主流处理器与一条高速固态,其他硬件未验证,作者自己警告引擎会吃满空闲内存与磁盘带宽,曾把显卡驱动压到重置,稳定性排第一的用户慎入。模型覆盖两家国产开源系列加一家轻量系列。作者署名是位意大利工程师,仓库里附了他的技术随笔专栏,想跟进思路的可以订阅。项目四十多颗星,典型的小众硬核期。

社区反应偏冷静。有人指出流式读专家这个方向已有一批项目,各有取舍,盼着有人写篇汇总把各家长处合并。有人畅想把这套思路搬到对象存储上远程跑,回复泼了冷水,网络延迟会吃掉全部收益,固态盘的本地带宽是前提不是可选项,前提背后还有一层,盘要快,机械盘用户不用试。这类底层创新往往要等一两个集大成者出现才惠及普通用户,Janas 是路上的一块好砖。

解决了什么需求

内存是本地跑大模型最贵的门槛,这套方案把门槛从内存容量挪到了固态盘速度,而固态盘几乎人人有,加内存要开机箱,换固态盘本来就是常规升级,清单上的老选项要么砍规格要么换硬件,这个是第三条路。三十二G 内存的普通笔记本跑八十B 级模型,对预算吃紧的开发者与隐私敏感场景,这是实打实的解锁,离线环境跑大模型的清单上从此多一个选项。GPL 开源,零依赖的 C 代码也值得系统学习者读一读,一个多月写成这样,功力在字里行间,字里行间还能读到工程审美,缓存策略与直读开关的取舍都写了为什么,为什么比结论更值钱。

一句话收尾,内存不够盘来凑,这个思路值一颗星,也许值一次编译,编译完记得跑基准,自家硬件跑出来才是真数字,别人的基准终归是别人的,自家机器自家测,测完欢迎去仓库贴评论。

来源

  • 开源仓库 https://github.com/prabanta-dev/janas
  • 社区讨论 https://news.ycombinator.com/item?id=50063717