简介
llama.cpp 是一个专注于推理性能优化的项目,主要解决大模型在本地运行时的效率问题。其核心优势在于无需 GPU 也能运行 LLaMA 模型,支持轻量级、最小外部依赖和多平台硬件。
- 纯粹的 C/C++ 实现,无外部依赖
- 支持广泛硬件:x86_64 CPU (AVX/AVX2/AVX512)、Apple Silicon (Metal/Accelerate)、NVIDIA GPU (CUDA)、AMD GPU (hipBLAS)、Intel GPU (SYCL) 等
- 多种量化方案加速推理并减少内存占用
- CPU+GPU 混合推理,支持超过总 VRAM 容量的模型
llama.cpp 提供模型量化工具,可将参数从 32 位浮点数转换为 16 位、8 位或 4 位整数,并提供服务化组件直接对外提供 API。
1. llama.cpp 环境安装
克隆仓库并进入目录:
git clone https://github.com/ggerganov/llama.cpp
cd llama.cpp
构建 GPU 执行环境(需安装 CUDA 工具包):
mkdir build
sudo apt-get install make cmake gcc g++
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
2. LLAMA 模型转换
2.1 pth 原始模型处理
安装 Python 3.10 及相关依赖:
pip install protobuf==3.20.0 transformers sentencepiece peft
下载模型权重和 tokenizer.model 文件。可使用 IPFS 客户端、BitTorrent 或脚本下载。
示例脚本自动下载:
bash llama_download.sh 7B
下载后包含以下文件:
pyllama_data/
├── 7B/
│ ├── checklist.chk
│ ├── consolidated.00.pth
│ └── params.json
├── tokenizer.model
└── tokenizer_checklist.chk
2.2 原版转为 HF 格式
使用 HuggingFace 提供的脚本将原版 LLaMA 模型转换为 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


