简介
llama.cpp 是一个专注于推理性能优化的项目,其核心优势在于无需 GPU 也能运行 LLaMA 模型。它采用纯 C/C++ 实现,外部依赖极少,支持广泛的硬件平台,包括 x86_64 CPU、Apple Silicon、NVIDIA/AMD/Intel GPU 以及多种后端(CUDA、Vulkan、SYCL 等)。此外,它还提供了模型量化工具和服务化组件,可将模型从 32 位浮点数转换为 16 位甚至 8、4 位整数,显著降低内存占用并提升推理速度。
环境安装
首先克隆仓库并进入目录:
git clone https://github.com/ggerganov/llama.cpp
cd llama.cpp
构建 GPU 执行环境前,请确保已安装 CUDA 工具包。若 nvidia-smi 和 nvcc --version 无报错,则环境配置正确。
mkdir build
sudo apt-get install make cmake gcc g++
locate cmake -B build -DGGML_CUDA=ON
编译并安装:
cmake --build build --config Release -j4
cd build
make install
注意:在当前版本中,部分指令已被重命名为 llama-quantize、llama-cli 和 llama-server。建议创建软链接以便调用:
ln -s /path/to/llama.cpp/build/bin/llama-quantize llama-quantize
ln -s /path/to/llama.cpp/build/bin/llama-server llama-server
ln -s /path/to/llama.cpp/build/bin/llama-cli llama-cli
模型转换流程
我们将以 PTH 格式模型为例,演示如何将其转换为 llama.cpp 可用的 GGUF 格式。
原始模型处理
首先需要安装 Python 3.10 及相关依赖:
pip install protobuf==3.20.0 transformers sentencepiece peft
下载模型权重和 tokenizer 文件。推荐直接从 HuggingFace 获取,或使用社区提供的脚本。若使用 pyllama 库下载,需注意 Mac M2 芯片可能遇到的架构兼容问题,必要时需手动构建 itree 库。
下载完成后,目录结构通常包含 consolidated.00.pth、params.json 和 tokenizer.model。
转为 HF 格式
使用 HuggingFace 提供的脚本将原版 LLaMA 模型转换为 HF 格式:
git clone https://huggingface.co/luodian/llama-7b-hf ./models/Llama-7b-chat-hf
或者运行转换脚本:
git clone https://github.com/huggingface/transformers.git
cd transformers
python src/transformers/models/llama/convert_llama_weights_to_hf.py \
--input_dir /workspace/pth_model/7B \
--model_size 7B \
--output_dir /workspace/hf_data


