llama.cpp 在 Mac 上部署本地 LLM

安装Xcode基本工具

xcode-select --install

从Github现在llama.cpp

https://github.com/ggml-org/llama.cpp/releases

从Releases直接下载官方构建好的二进制包用就好了,下载 macOS Apple Silicon (arm64) 版本的,下载后解压到自己想放的位置

gaowanlu@gaowanludeMacBook-Pro llama-b9589 % ls
LICENSE                                 libllama-cli-impl.dylib                 llama-debug-template-parser
libggml-base.0.14.0.dylib               libllama-common.0.0.9589.dylib          llama-export-lora
libggml-base.0.dylib                    libllama-common.0.dylib                 llama-fit-params
libggml-base.dylib                      libllama-common.dylib                   llama-gemma3-cli
libggml-blas.0.14.0.dylib               libllama-completion-impl.dylib          llama-gguf-split
libggml-blas.0.dylib                    libllama-fit-params-impl.dylib          llama-imatrix
libggml-blas.dylib                      libllama-perplexity-impl.dylib          llama-llava-cli
libggml-cpu.0.14.0.dylib                libllama-quantize-impl.dylib            llama-minicpmv-cli
libggml-cpu.0.dylib                     libllama-server-impl.dylib              llama-mtmd-cli
libggml-cpu.dylib                       libllama.0.0.9589.dylib                 llama-mtmd-debug
libggml-metal.0.14.0.dylib              libllama.0.dylib                        llama-perplexity
libggml-metal.0.dylib                   libllama.dylib                          llama-quantize
libggml-metal.dylib                     libmtmd.0.0.9589.dylib                  llama-qwen2vl-cli
libggml-rpc.0.14.0.dylib                libmtmd.0.dylib                         llama-results
libggml-rpc.0.dylib                     libmtmd.dylib                           llama-server
libggml-rpc.dylib                       llama                                   llama-template-analysis
libggml.0.14.0.dylib                    llama-batched-bench                     llama-tokenize
libggml.0.dylib                         llama-bench                             llama-tts
libggml.dylib                           llama-cli                               models
libllama-batched-bench-impl.dylib       llama-completion                        rpc-server
libllama-bench-impl.dylib               llama-cvector-generator                 run_server.sh

创建一个 models 文件夹放我们的模型文件,创建一个 run_server.sh 脚本

gaowanlu@gaowanludeMacBook-Pro llama-b9589 % cd ./models
gaowanlu@gaowanludeMacBook-Pro models % ls -lh
total 53045152
-rw-r--r--@ 1 gaowanlu  staff    25G Jun 11 00:59 Qwen3.6-35B-A3B-UD-Q5_K_XL.gguf
gaowanlu@gaowanludeMacBook-Pro llama-b9589 % cat run_server.sh
./llama-server \
    -m ./models/Qwen3.6-35B-A3B-UD-Q5_K_XL.gguf \
    -ngl 99 \
    -c 131072 \
    -t 16 \
    --port 8080 \
    --host 0.0.0.0 \
    --api-key secret

llama-server Mac安全问题禁止执行问题

chmod +x ./*

xattr ./llama-server
# 如果有输出 com.apple.quarantine 说明文件被隔离了

# 针对单个文件
xattr -d com.apple.quarantine ./llama-server

# 针对当前文件夹下所有内容
find . -type f -exec xattr -d com.apple.quarantine {} +

下载模型

先去llama官网,看看大家目前都在用什么, Qwen、Gemma、gpt 等等

https://llama.app

例如 https://huggingface.co/unsloth/Qwen3.6-35B-A3B-MTP-GGUF

在 Hugging Face 下载 guff 文件

Hugging Face 在中国下载太慢的话,可以考虑使用代理

https://hf-mirror.com/unsloth/Qwen3.6-35B-A3B-MTP-GGUF

运行起来看看资源监视器

运行起来基本上会吃掉20多GB的统一内存。

通过浏览器访问

访问8080端口,就能使用llama.cpp提供的聊天面板

使用代码访问API

import OpenAI from "openai";

const client = new OpenAI({
    apiKey: "secret",
    baseURL: "http://127.0.0.1:8080/v1",
});

async function main() {
    const stream = client.chat.completions.stream({
        model: "Qwen3.6-35B-A3B-UD-Q5_K_XL.gguf",
        messages: [
            {
                role: "user",
                content: "请用中文介绍一下你自己。"
            }
        ]
    });

    for await (const chunk of stream) {
        process.stdout.write(chunk.choices[0]?.delta?.content || "");
    }
    console.log("\n");
}


main();