MacOS M2芯片设备编译llama-cpp-python时出现'ggml-common.h'未找到错误
MacOS M2芯片设备编译llama-cpp-python时出现'ggml-common.h'未找到错误
嘿,我之前在M2 Mac上折腾llama-cpp-python的时候也碰到过一模一样的问题!这个错误本质是编译过程中没正确拉取ggml的依赖文件,给你几个亲测有效的解决办法:
彻底重装并开启Metal加速
先把现有版本清干净,再强制从源码编译,确保拉取完整依赖:# 卸载现有版本 pip uninstall -y llama-cpp-python # 强制编译并开启Metal支持(M2必备) CMAKE_ARGS="-DLLAMA_METAL=on" FORCE_CMAKE=1 pip install llama-cpp-python --no-cache-dir --force-reinstall这里
FORCE_CMAKE=1会让系统重新生成CMake配置,--no-cache-dir避免用旧的缓存文件,-DLLAMA_METAL=on能激活M2的GPU加速,同时安装时会自动拉取ggml的子模块,解决头文件缺失的问题。手动拉取ggml子模块(源码安装场景)
如果是直接克隆了llama-cpp-python的源码仓库,先进入项目目录,手动更新子模块:git submodule update --init --recursive然后再编译安装:
CMAKE_ARGS="-DLLAMA_METAL=on" pip install .更新CMake版本
旧版本的CMake可能在处理M2的编译配置或子模块拉取时出问题,用Homebrew更新到最新版:brew install cmake确保CMake版本在3.24以上,再重新尝试安装。
另外给你个小优化建议:你的代码里n_gpu_layers设为1有点保守,M2芯片可以尝试调到30-35左右(根据模型大小调整),n_batch可以设为512,这样能大幅提升推理速度哦!
备注:内容来源于stack exchange,提问作者Alberto




