llama.cpp 是一套用纯 C/C++ 实现的大语言模型推理工具,依赖极少,专门针对 CPU 与非 NVIDIA 硬件进行优化。当需要在仅有 CPU 的机器上运行推理、在 Apple Silicon(M1/M2/M3/M4)上部署、使用 AMD 或 Intel GPU(无 CUDA)、进行边缘部署(树莓派、嵌入式系统),或希望不依赖 Docker/Python 简单部署时,可以选用它。若拥有 NVIDIA GPU(A100/H100)、追求最大吞吐(100K+ tok/s)或在数据中心使用 CUDA,资料建议改用 TensorRT-LLM;若需要 Python 优先的 API 和 PagedAttention,则建议改用 vLLM。
主要能力与使用方式: 安装:macOS/Linux 可用 brew install llama.cpp;也可从源码构建:git clone https://github.com/ggerganov/llama.cpp、cd llama.cpp、make;Apple Silicon 用 make LLAMA_METAL=1,NVIDIA 用 make LLAMA_CUDA=1,AMD 用 make LLAMA_HIP=1。 模型获取:可从 HuggingFace 下载 GGUF 格式模型,例如 huggingface-cli download TheBloke/Llama-2-7B-Chat-GGUF llama-2-7b-chat.Q4_K_M.gguf --local-dir models/;也可用 python convert_hf_to_gguf.py 从 HuggingFace 格式转换。 推理:使用 ./llama-cli -m 模型路径 -p "提示词" -n 256 进行简单对话,加 --interactive 进入交互式聊天。 服务器模式:./llama-server -m 模型路径 --host 0.0.0.0 --port 8080 -ngl 32 可启动兼容 OpenAI 接口的服务,并通过 curl 向 /v1/chat/completions 发送请求。 量化格式:资料列出 Q4_K_M(4.5 位、7B 约 4.1 GB,推荐默认)、Q4_K_S、Q5_K_M、Q6_K、Q8_0、Q2_K 等,并说明一般用途选 Q4_K_M、追求速度选 Q2_K 或 Q3_K_M、追求质量选 Q6_K 或 Q8_0、超大模型可降位以适应内存。 硬件加速:Metal 下用 -ngl 999 卸载全部层,资料给出 M3 Max 上 Llama 2-7B Q4_K_M 约 40-60 tokens/秒;CUDA 下可用 -ngl 指定层数,并支持 CPU+GPU 混合;ROCm 下用 make LLAMA_HIP=1 构建后运行。 常见模式:可从文件批量处理提示词(--batch-size)、用 --grammar-file grammars/json.gbnf 约束生成合法 JSON、用 -c 调整上下文(默认 512,可增至 4096 或 32768)。
支持模型:Llama 2/3、Code Llama、Mistral、Mixtral、Falcon、BLOOM、GPT-J、Phi-3、Gemma、Qwen,以及 LLaVA(视觉)、Whisper(音频)。
限制:资料未提供许可证、商业使用条款、精确内存下限与全部平台兼容性细节,这些暂未提供;性能数据为资料所列示例,实际表现依硬件与模型而定。