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 的內存占用更小,微調速度更快。