macOS 大模型本地部署日常使用

date
Jan 21, 2024
slug
macOS 大模型本地部署日常使用
status
Published
tags
LLM
macOS
summary
macOS 大模型本地部署日常使用
type
Post
我的日常开发设备是 M2 Max 64G,最近想要测试下在本地起大模型作为日常使用是否可行,选了 llama.cppmlx 这两个推理框架作为对比。mlx 是苹果推出的 Apple silicon 专用机器学习框架,除了推理任务,也可以进行模型训练,llama.cpp 刚开始是专为 Apple silicon 开发的推理框架(现在也支持 Linux 和 Windows),支持多种量化方法,从 2bit 到 8bit,tradeoff 在于资源消耗和模型能力的退化,一般推荐 4bit 做推理,性能损失在可接受的范围。
关于测试模型选择,在 7B~34B 这个区间,大模型的能力随着参数的增加提升还是很明显的,虽然现在有很多很强的 7b 模型号称达到了两倍参数量模型的效果,不过我觉得以后对于配置还行的(非入门级)设备,14b/34b 的 int4 量化版会是跑本地模型的首选。这次测试选了自己基于 qwen-14b SFT + DPO 训练的模型做测试,虽然这个模型跑过很多评估集,但其实我自己没怎么日常试用过,或许从日常使用中能够获得新的训练调优灵感、方向。

推理速度 benchmark 结果

mlx 版本:0.0.10
框架
精度
权重大小(GB)
内存占用(MB)
速度(tokens/s)
mlx
int4
8.7
9638.88
17.33
mlx
fp16
28
21130.97
8.78
llama.cpp
int4(q4_1)
9.0
8592.7
30.25
llama.cpp
int8
15
14358.31
21.05
llama.cpp
fp16
28
27023.94
12.5
从表格中可以看到当前阶段 llama.cpp 还是快挺多的,毕竟是专门优化的推理库。

客户端

调研了一圈发现支持本地模型的客户端基本都是基于 llama.cpp 的,例如 lmstudioOllama。lmstudio 需要升级到 macOS 13.6,我的系统比较老,就没测试,但是整个界面给我的感觉是太啰嗦了,而且也没有全局快捷键、预定义 prompt 模版之类的功能。
notion image
Ollama 有推荐一些客户端,看了一圈感觉都不是很喜欢,最后选择了 Raycast 的 Ollama 插件。ollama 加载自定义的 gguf 模型文件需要有一个额外的转换过程 `ollama create`,这个过程中可以定义模型 sampling 的一些参数,例如 temperature 、template 等,ollama 插件中的预制 prompt 模版是使用 system 实现的,所以 `ollama create` 时一定要加上 system,我用的是 chatml 的 template。
这个插件的完成度很高,可以多轮对话,也可以获得光标选取的文本,不过创建自定义模版感觉还是不是很方便,就先这样用着吧。
notion image

© PanicByte 2021 - 2024 沪ICP备2023032072号-1