@
babyedi31996 带宽指的是推理介质的带宽,如果你用显卡进行推理,带宽指的就是显卡的带宽;用 Mac 推理,带宽指的就是它那个统一内存架构的带宽;如果你用显卡 + CPU 跑,那么带宽指的就是就是显卡带宽 + 内存带宽(这个是最垃圾的组合,我愿称之为拖后腿)。目前来说苹果最屌的带宽还得是 ultra 系列的,能有 800GB/s ,用苹果跑推理的速度(每一秒可以输出的 token 数量)可以无脑看作和带宽大小是正比关系,M4 Pro 的内存带宽是 273GB/s ,推理速度可以无脑看作只有 ultra 的 1/3 。
本地跑大模型不一定要追求模型的参数量,我高强度用 192GB 的 M2 Ultra 跑推理也有快 1 年了,全网也没几个人这么干的,光是每个月下载新出的模型都要下载几百 G ,以前也追求过大参数的模型,但是无论多强的模型,甚至是 GPT4 ,照样会胡言乱语无中生有给出错误的答案,不要指望一个模型能解决所有问题,所以我现在已经更换方案了,还得是 RAG 靠谱。
RAG 说白了就是在对话后面拼接类似这样的一段话“下面是额外补充的上下文信息-----start{插入一些联网搜索或者数据库里近似搜索和排序后的前几名文章内容再或者是你手工硬塞的文本}----end”。和代码仓库对话也是这样的形式,没啥特别的。因为大语言模型就是根据 prompt 不断计算下一个 token 出现的概率,在对话里强插入上下文就极大提高了相关 token 的权重,也就不怎么会胡言乱语无中生有了。
基于这个思路和你的目的,去找那一些上下文支持足够大的( 128k 以上)、审查少、特定领域擅长的小模型或者是 MoE 架构的模型(跑起来吃显存较大但是计算 token 时需要的带宽很小)就合适了,量化选个 4bit 就行了(反正有 RAG 强干预,损失可以忽略不计)。再或者等 Mamba 架构的模型再出来多一点,这个架构的模型开再多的上下文也不会让内存暴涨而且推理速度也不会变慢。
到了这里就会发现 64G 真的太小了,我之前测试用 Phi-3 Medium ( 14B 的模型)开 128K 上下文直接塞整个项目进去换语言重构(类比直接塞一本瑟瑟小说进去续写仿写),光显存就要吃 100 多 G 了。哦,目前我测试下来搞瑟瑟最强的还得是 c4ai-command-r-plus 这个 104B 的模型( 8bit 量化下速度大概是 5token/s ),显存占用也要 100G 左右。
所以 Mac 跑大语言模型推理,只有 Ultra 系列的大带宽 + 大内存这样的顶配合适,而且跑相同参数量的模型,速度基本上是多张 2080ti 22g 组成相同显存的服务器跑推理速度的 1/3 ~ 1/2 ,当然优点也非常明显,很省电很不占空间,甚至还能通过雷电口串联 4 个 Mac Studio 来跑分布式推理,可以跑更大的模型。
如果这都拦不住你要买 64G 的 M4 ,那你就用 lmstudio 吧,它最近的更新集成了 mlx 框架,也就是 M 系列 Mac 跑推理的优化方案,mlx 迭代了一年现在也稳定了,每个版本也会稍微提升一下性能让推理速度加快。