Mac M4 芯片运行大模型指南,包括模型微调与推理
Mac M4 芯片运行大模型指南,模型微调与推理
- 背景
- 模型推理 Ollama
- 🔍 举例说明:
- 踩坑
- 模型微调 unsloth
背景
在国补、教育优惠、京东会员500优惠券等众多优惠之下。
我拿下了Macmini M4 16G 内存万兆网卡。在机器到手的第一时间,马上开始折腾如何炼丹。
模型推理 Ollama
首选 Ollama,通过多线程、协程、多进程等方式调用大模型的API 。
同时也可以使用 llama.cpp 。
Ollama 的底层基于 llama.cpp
的,它做了很多封装和增强,主要体现在以下几个方面:
✅ Ollama 与 llama.cpp 的关系
项目 | 内容 |
---|---|
核心推理引擎 | 使用 llama.cpp 作为底层推理引擎(尤其是 .gguf 格式模型) |
模型格式 | 支持 llama.cpp 的 GGUF 格式模型 |
硬件加速 | 使用 llama.cpp 的 MPS(Apple Silicon)、CUDA、CPU 推理能力 |
多平台支持 | 提供 macOS、Linux、Windows 上的一键安装与运行方式 |
封装 | 提供了简单的命令行接口 (ollama run , ollama pull , ollama create ) |
扩展功能 | 可以本地部署多个模型、支持 REST API、支持自定义模型 Modelfile |
✅ ollama 的作用
Ollama 可以看成是 llama.cpp
的「产品化版本」,对开发者和终端用户更友好:
- 提供后台服务(自动管理模型、资源)
- 提供模型版本管理
- 提供 REST API 接口(方便开发集成)
- 支持自定义系统提示、上下文管理
- 更易与前端、终端集成
🔍 举例说明:
# llama.cpp 运行方式(原始)
./main -m model.gguf -p "你好"# ollama 运行方式(封装)
ollama run llama3 "你好"
两者底层执行的是类似的 GGUF 模型推理逻辑,但 ollama
管理了模型下载、缓存、资源分配、上下文窗口扩展等内容。
如果你想:
- 更底层控制(自定义编译优化、显存分配等) → 选择
llama.cpp
- 快速集成和部署、搭建本地 API → 选择
Ollama
踩坑
本来想使用 vllm 基于 Mac 的 mps 做加速。但是。
下述资料也说明了 vllm 不支持 Mac的mps加速。
- 小白入门:使用vLLM在本机MAC上部署大模型
- Does vllm support the Mac/Metal/MPS? #1441
模型微调 unsloth
首选 unsloth 微调框架。虽然LLamaFactory也支持 Mac,但并不推荐。
因为 unsloth 的内存占用更小,微调速度更快。