Mac使用llama.cpp

使用llama.cpp

powershell 复制代码
#依赖
pip install sse_starlette fastapi uvicorn starlette_context pydantic-settings

#下载正确的模型(llama.cpp 只能用 GGUF)
huggingface-cli download Qwen/Qwen2-1.5B-Instruct-GGUF qwen2-1_5b-instruct-q4_0.gguf --local-dir .

#启动
python -m llama_cpp.server \
  --model qwen2-1_5b-instruct-q4_0.gguf \
  --host 0.0.0.0 \
  --port 8000


#终端 curl 测试(最简单,推荐)
curl http://localhost:8000/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{
  "model": "qwen",
  "messages": [
    {"role": "user", "content": "你好,简单介绍下自己"}
  ],
  "temperature": 0.7
}'

尝试Mac编译和启动vllm【失败】

第一步:创建 Conda 环境

vLLM 对 Python 版本有要求,建议使用 Python 3.10 或 3.12(避免使用最新的 3.13,可能会有兼容问题)。

打开终端,执行:

powershell 复制代码
# 1. 创建环境 (命名为 vllm_mac,Python 版本选 3.10)
conda create -n vllm_mac python=3.10 -y

# 2. 激活环境
conda activate vllm_mac

第二步:安装依赖与编译

在 Mac 上安装 vLLM 必须从源码编译,且需要安装 cmake 和 ninja 等编译工具。

powershell 复制代码
# 1. 安装编译工具
conda install -c conda-forge cmake ninja -y

# 2. 安装 PyTorch (CPU 版本即可,macOS 不支持 CUDA)
pip install torch torchvision torchaudio

# 3. 设置环境变量:强制指定为 CPU 模式
# 这一步非常关键,否则安装程序会寻找不存在的 CUDA
export VLLM_TARGET_DEVICE=cpu
export CMAKE_ARGS="-DCMAKE_OSX_ARCHITECTURES=arm64"

# 4. 安装 vLLM (从源码编译)
# 注意:M5 Pro 性能很强,但编译过程仍需几分钟,请耐心等待
pip install vllm --no-cache-dir


# 查看版本
% vllm --version
0.6.6.post1
% python -c "import vllm; print('vLLM 版本:', vllm.__version__)"
vLLM 版本: 0.6.6.post1

⚠️ 常见问题:

如果报错提示 RuntimeError: Cannot find CUDA_HOME,说明环境变量没生效,请确保执行了第 3 步的 export 命令后再运行 pip install。

第三步:启动服务【一直失败,搞不定】

下载模型

powershell 复制代码
#安装 SDK:在你的 Conda 环境中安装 ModelScope 库:
conda activate vllm_mac
pip install modelscope

使用 Python 脚本下载:
创建一个 download_model.py 文件,运行以下代码。它会自动将模型下载到当前目录下的文件夹中。
from modelscope.hub.snapshot_download import snapshot_download

# 下载模型到本地,目录名为 qwen2.5-1.5b-instruct
model_dir = snapshot_download('qwen/Qwen2.5-1.5B-Instruct', cache_dir='./')
print(f"模型已下载至: {model_dir}")

启动服务

编译安装完成后,你可以启动 API 服务。由于是 CPU 模式,建议加载较小的模型(如 Qwen2.5-1.5B 或 3B),否则推理速度会很慢。

powershell 复制代码
# 假设你使用 Qwen2.5-1.5B-Instruct 模型
vllm serve qwen/Qwen2.5-1.5B-Instruct \
    --host 0.0.0.0 \
    --port 8000 \
    --dtype float16 \
    --max-model-len 2048

# 报错 RuntimeError: Failed to infer device type 非常典型。它说明 vLLM 在 Mac 上试图自动检测硬件时"迷路"了:它既没找到 NVIDIA 显卡(CUDA),也没能正确识别出应该回退到 CPU 模式。
#在 Mac 上运行 vLLM(CPU 模式),必须显式地告诉它使用 CPU,加上 --device cpu
#并且为了稳定,建议关闭多进程引擎,加上 --disable-frontend-multiprocessing 参数
vllm serve qwen/Qwen2.5-1.5B-Instruct \
    --host 0.0.0.0 \
    --port 8000 \
    --dtype float16 \
    --max-model-len 2048 \
    --device cpu \
    --disable-frontend-multiprocessing

参数说明:

--dtype float16:Mac 对 FP16 支持较好,能节省内存。

--max-model-len 2048:限制上下文长度,防止 CPU 内存占用过高导致系统卡顿。

相关推荐
网络工程小王4 小时前
【大模型vLLM 使用】学习笔记
笔记·学习·llama
Naisu Xu6 小时前
Mac上安装Homebrew、Git、Python等环境记录
git·python·macos·终端·brew
程序猿进阶6 小时前
OpenClaw Mac 安装教程
java·macos·ai·架构·agent·openclaw
Rudon滨海渔村7 小时前
macOS启动转换助理出现“不能下载该软件,因为网络出现问题 ”
网络·macos
一个人旅程~7 小时前
mac-bootcamp的windows系统因升级intel驱动更新等升级驱动导致的功能异常故障?
windows·经验分享·macos·电脑
一块小土坷垃19 小时前
# AutoCAD 2027 专业级CAD设计绘图软件核心解析与使用评价
macos·开源软件
TGITCIC21 小时前
大模型训练师的炼丹之道 (1)-最新版llama-factory环境搭建和全排错
微调·sft·llama·模型训练·训练·大模型训练·llama-factory
Rudon滨海渔村1 天前
MacBookPro更换硬盘-重新安装macOS+Win10LTSC双系统-官方免费工具
macos
周公1 天前
记一次在双 RTX 3090 工作站上部署 vLLM 与 Qwen3.6-35B-AWQ 的实战记录
python·ai·llama·vllm·ollama
一块小土坷垃1 天前
# ArchiCAD 29.0.2(畅享版):专为建筑师打造的BIM高效建模工具
前端·数据库·macos·开源软件