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 内存占用过高导致系统卡顿。

相关推荐
a4493153628 小时前
iPhone 基带故障诊断——无服务/搜索不到网络的芯片级维修实录
网络·macos·ios·电脑·iphone
a44931536210 小时前
MacBook USB-C不充电故障诊断:从PD握手到主板供电链路
c语言·开发语言·macos·电脑
寒水馨11 小时前
macOS下载、安装scrcpy-v4.1(附安装包scrcpy-macos-aarch64-v4.1.tar.gz)
macos·adb·手机控制·scrcpy·投屏软件·android投屏·屏幕镜像
a44931536211 小时前
iPhone 充电故障的全链路诊断——从 Lightning/USB-C 接口到 Tristar 充电 IC
c语言·macos·ios·电脑·硬件架构·iphone
xiaowang1234shs1 天前
怪兽轻断食技术深度测评:从断食计时引擎到AI识别算法的工程实践解析
数据库·人工智能·算法·macos·机器学习·p2p·visual studio
yAdrian1 天前
macOS launchd CPU 占用过高问题排查记录
macos
代码的小搬运工1 天前
【iOS】3G-Share仿写总结
macos·ios·cocoa
寒水馨1 天前
Windows下载、安装ollama-v0.32.1(附安装包OllamaSetup.exe)
windows·llm·大语言模型·llama·本地部署·ollama·模型运行
2501_916007471 天前
iOS和macOS应用程序性能分析和优化工具使用综合指南
android·macos·ios·小程序·uni-app·iphone·webview
老刘说AI2 天前
AI服务核心: 高并发原理与性能监控调优
人工智能·神经网络·langchain·llama·持续部署