Mac Studio M4 通过 vLLM 部署本地大模型,对接 Jeecg-AI
Jeecg-AI 是一套类似 Dify 的 AIGC 应用平台 + 知识库问答 + 零代码应用搭建,是一款基于大型语言模型和 RAG 技术的 AI 应用平台与零代码应用搭建平台,重点提供图文并茂的 AI 知识库和智能聊天功能,界面直观,支持知识库管理、AI 流程编排、模型配置、向量库对接及实时运行监控、零代码业务系统搭建,帮助用户将知识转化为智能 AI 知识库,轻松实现精准智能问答。 核心优势: 128GB 统一内存意味着 GPU 可直接访问全部内存,无需 CPU/GPU 之间的数据拷贝,这是 Apple Silicon 运行大模型的最大优势。系统占用约 8-10GB,实际可用约 118GB。 确保 macOS 版本为 Sequoia (15.0) 或更高,以获得最佳的 MLX 性能支持。 查看方式:「系统设置 > 通用 > 关于本机」 如果已安装会提示「already installed」,忽略即可。 vllm-metal 是 vLLM 官方社区维护的 Apple Silicon 插件,将 MLX 和 PyTorch 统一在单一计算路径下,支持零拷贝操作。 该脚本会自动创建虚拟环境并安装所有依赖,默认安装到 提示: 每次打开新的终端窗口都需要重新激活。可以将激活命令添加到 vllm-mlx 是第三方独立实现,安装更简单,支持文本、图像、视频、音频多模态推理。 如果你在中国大陆,Hugging Face 官方域名访问通常很慢或无法连接,需要配置镜像。海外用户可跳过此步骤。 基于 128GB 内存,以下是推荐的模型(均为 MLX 格式,位于 Hugging Face 的 如果希望先下载模型再启动(方便断点续传): 参数说明: 首次启动时会自动下载模型,72B-4bit 模型约 42GB,请耐心等待。当看到类似 打开新的终端窗口,执行: 如果希望有类似 ChatGPT 的对话界面,推荐搭配 Open WebUI。 运行期间建议监控内存使用情况: 尝试删除并重新安装: Mac Studio M4 Max 128GB 是本地部署大模型的绝佳设备。推荐从 vllm-metal + Qwen2.5-72B-Instruct-4bit 开始,这套组合在中英文场景下都有出色的表现,且 128GB 内存可以轻松承载。如果追求速度,Qwen3-30B-A3B 的 MoE 架构可以提供更快的响应。1. 硬件配置与能力评估
项目 规格 对大模型的意义 芯片 Apple M4 Max 最新架构,MLX 性能最优 CPU 16 核(12 性能 + 4 能效) 预处理 / Tokenizer 充裕 GPU 40 核 Metal Metal 加速推理的核心 统一内存 128 GB 决定可跑模型的大小上限 存储 1 TB SSD 可存放多个模型(20-80GB / 个) 2. 环境准备
2.1 操作系统要求
2.2 安装 Homebrew
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"2.3 安装 Python 3.12+
brew install python@3.12
# 验证安装
python3 --version
# 应输出 Python 3.12.x 或更高2.4 安装 Xcode 命令行工具
xcode-select --install3. 方案一:安装 vllm-metal(官方推荐)
3.1 一键安装
curl -fsSL https://raw.githubusercontent.com/vllm-project/vllm-metal/main/install.sh | bash~/.venv-vllm-metal 目录。安装过程可能需要 5-15 分钟。3.2 激活环境
source ~/.venv-vllm-metal/bin/activate~/.zshrc 实现自动激活:echo 'source ~/.venv-vllm-metal/bin/activate' >> ~/.zshrc3.3 验证安装
vllm --version
# 应输出 vLLM 版本号,如 0.13.x3.4 卸载方法
rm -rf ~/.venv-vllm-metal4. 方案二:安装 vllm-mlx(简单快速)
4.1 创建虚拟环境
python3 -m venv ~/.venv-vllm-mlx
source ~/.venv-vllm-mlx/bin/activate4.2 安装 vllm-mlx
pip install vllm-mlx4.3 验证安装
vllm-mlx --help5. 配置国内镜像加速
5.1 临时配置(当前终端有效)
export HF_ENDPOINT=https://hf-mirror.com5.2 永久配置(推荐)
echo 'export HF_ENDPOINT=https://hf-mirror.com' >> ~/.zshrc
source ~/.zshrc5.3 pip 镜像加速(可选)
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple6. 模型选型推荐
mlx-community 组织下):模型名称 内存占用 优势 推荐等级 Qwen3-30B-A3B-4bit~18 GB MoE 架构,速度极快 ⭐⭐⭐ 强烈推荐 Qwen2.5-72B-Instruct-4bit~42 GB 中英文都强 ⭐⭐⭐ 强烈推荐 Llama-3.1-70B-Instruct-4bit~40 GB 英文能力顶级 ⭐⭐ 推荐 DeepSeek-V3-0324-4bit~80 GB MoE,综合能力强 ⭐ 可尝试 Llama-3.1-70B-Instruct-8bit~75 GB 高精度,质量更好 ⭐ 可尝试 内存估算规则: 4bit 量化模型的内存占用 ≈ 参数量 × 0.5 字节 + KV Cache。例如 72B 的 4bit ≈ 72 × 0.5 = 36GB,加上 KV Cache 约 42GB。建议留至少 20GB 给系统和 KV Cache。
6.1 手动下载模型(可选)
# 安装下载工具
pip install huggingface_hub
# 下载模型到本地目录
huggingface-cli download \
mlx-community/Qwen2.5-72B-Instruct-4bit \
--local-dir ~/models/Qwen2.5-72B-Instruct-4bit
# 如下载中断,重新执行同一命令即可续传7. 启动模型服务
7.1 使用 vllm-metal 启动
# 激活环境
source ~/.venv-vllm-metal/bin/activate
# 方式一:在线模型(自动下载)
vllm serve mlx-community/Qwen2.5-72B-Instruct-4bit \
--port 8000 \
--host 0.0.0.0
# 方式二:本地模型(已手动下载)
vllm serve ~/models/Qwen2.5-72B-Instruct-4bit \
--port 8000 \
--host 0.0.0.07.2 使用 vllm-mlx 启动
# 激活环境
source ~/.venv-vllm-mlx/bin/activate
# 启动服务
vllm-mlx serve mlx-community/Qwen2.5-72B-Instruct-4bit \
--port 8000--port 8000 指定服务端口--host 0.0.0.0 允许局域网内其他设备访问,如果只在本机使用可省略Serving on http://0.0.0.0:8000 的提示时,表示服务已就绪。8. API 调用测试
8.1 使用 curl 测试
curl http://localhost:8000/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{
"model": "mlx-community/Qwen2.5-72B-Instruct-4bit",
"messages": [
{"role": "system", "content": "你是一个有用的AI助手"},
{"role": "user", "content": "你好,请用中文介绍一下你自己"}
],
"max_tokens": 512,
"temperature": 0.7
}'8.2 使用 Python 测试
pip install openaifrom openai import OpenAI
client = OpenAI(
base_url="http://localhost:8000/v1",
api_key="not-needed" # 本地服务无需 API Key
)
response = client.chat.completions.create(
model="mlx-community/Qwen2.5-72B-Instruct-4bit",
messages=[
{"role": "user", "content": "解释什么是量子计算"}
],
max_tokens=1024
)
print(response.choices[0].message.content)8.3 检查服务健康状态
curl http://localhost:8000/health8.4 查看已加载的模型
curl http://localhost:8000/v1/models9. 搭配 Web UI 界面
9.1 安装 Open WebUI
pip install open-webui9.2 启动 Open WebUI
open-webui serve9.3 配置连接
http://localhost:3000http://localhost:8000/v1not-needed)其他 UI 选择: 除 Open WebUI 外,还可以使用 Chatbox(桌面客户端)、BoltAI(Mac 原生应用)等工具,均支持 OpenAI 兼容 API。
10. 性能调优与监控
10.1 预期性能
指标 72B-4bit 预期 30B-MoE-4bit 预期 Prompt 处理速度 ~100-300 tokens/s ~300-500 tokens/s 生成速度(单用户) ~15-25 tokens/s ~40-60 tokens/s 并发用户数 2-4 人 4-8 人 10.2 内存监控
10.3 环境变量调优
# 启用实验性的 Paged Attention(可显著提升性能)
export VLLM_METAL_USE_PAGED_ATTENTION=1
# 然后启动服务
vllm serve mlx-community/Qwen2.5-72B-Instruct-4bit --port 8000关于 Paged Attention: 这是 vllm-metal 的实验性功能,可以显著提升 TTFT(首 Token 时间)和吞吐量,但部分模型可能存在兼容性问题。如遇报错可关闭此选项。
11. 常见问题排查
11.1 安装脚本报错
rm -rf ~/.venv-vllm-metal
curl -fsSL https://raw.githubusercontent.com/vllm-project/vllm-metal/main/install.sh | bash11.2 模型下载速度极慢或超时
echo $HF_ENDPOINThuggingface-cli 手动下载(支持断点续传)export HF_ENDPOINT=https://hf-api.gitee.com11.3 加载模型时报错或系统卡死
11.4 端口冲突:port 8000 already in use
# 查找占用 8000 端口的进程
lsof -i :8000
# 终止该进程
kill -9 <PID>
# 或者换用其他端口
vllm serve mlx-community/Qwen2.5-72B-Instruct-4bit --port 800111.5 生成速度慢
mlx-community 前缀)export VLLM_METAL_USE_PAGED_ATTENTION=1max_tokens 或 context length12. 两种方案对比总结
对比项 vllm-metal vllm-mlx 维护方 vLLM 官方社区 + Docker 第三方独立项目 安装方式 Shell 脚本一键安装 pip install 多模态 文本为主 文本、图像、视频、音频 API 兼容 OpenAI 兼容 OpenAI + Anthropic 兼容 长期前景 官方背书,更有保障 功能更丰富,迭代更快 推荐场景 稳定性优先、生产环境 功能优先、开发测试 总结建议