MAC M1 本地部署 Llama.cpp 与通义千问 Qwen 1.5-7B 实践指南
Llama.cpp 的主要目标是在各种硬件上(本地和云端)实现大语言模型(LLM)推理,同时保持最小的设置和最先进的性能。其核心优势在于纯 C/C++ 实现,没有任何外部依赖关系,这使得它在资源受限或特定架构的设备上运行尤为高效。
1. 技术特性概览
- 纯 C/C++ 实现:无 Python 等运行时依赖,编译后可直接执行。
- Apple Silicon 优化:针对 Apple 芯片进行一级支持,通过 ARM NEON、Accelerate 框架和 Metal 图形 API 进行深度优化,充分利用 M1/M2/M3 的 GPU 算力。
- x86 架构支持:对 x86 架构的 AVX、AVX2 和 AVX512 指令集提供支持。
- 量化支持:支持 1.5 位、2 位、3 位、4 位、5 位、6 位和 8 位整数量化,显著加快推理速度并减少内存占用。
- 后端多样性:为 NVIDIA GPU 定制的 CUDA 内核(通过 HIP 支持 AMD GPU),以及 Vulkan、SYCL 和部分 OpenCL 后端支持。
- 混合推理:支持 CPU+GPU 混合推理,可处理超过总 VRAM 容量的模型。
由于 M1 芯片集成了高性能 GPU,这为我们在本机运行大语言模型提供了可能。以下将详细介绍在 MAC M1 上部署 Llama.cpp 并运行通义千问 Qwen 1.5-7B 模型的完整流程。
2. 环境准备与下载
2.1 克隆 Llama.cpp 仓库
首先,我们需要从 GitHub 获取 Llama.cpp 的源代码。
git clone https://github.com/ggerganov/llama.cpp.git
cd llama.cpp
2.2 安装 Git LFS
由于 Hugging Face 上的模型文件通常较大,需要安装 Git LFS (Large File Storage) 以支持大文件下载。
brew install git-lfs
git lfs install
2.3 下载模型权重
访问 Hugging Face 下载 Qwen 1.5 模型。我们这里使用 Qwen/Qwen1.5-7B-Chat 版本。
git clone https://huggingface.co/Qwen/Qwen1.5-7B-Chat
注意:如果 Git 下载失败,可以通过浏览器手动下载文件并放入目录中。
Base 模型与 Chat 模型的区别:Base 模型主要用于文本续写,而 Chat 模型在 Base 基础上增加了对话数据的微调训练,因此能够更自然地回复问题和进行多轮对话。
下载完成后,目录结构应包含配置文件、分词器及模型权重文件(如 model-00001-of-00004.safetensors 等)。
3. 编译 Llama.cpp
在 Mac M1 上,Llama.cpp 默认会启用 Metal 加速。进入项目目录并执行编译命令。
cd llama.cpp
make
编译过程中,系统会自动检测 Darwin 系统和 arm64 架构,并启用 -DGGML_USE_METAL 标志。如果遇到 ccache not found 提示,建议安装 ccache 以加快后续编译速度。
4. 安装 Python 依赖
虽然 Llama.cpp 核心是 C++,但模型转换工具(如 )通常由 Python 编写。因此需要安装相关依赖。


