简介
llama.cpp 是一个基于 C/C++ 实现的轻量级大语言模型推理库,旨在实现最小外部依赖、多平台以及广泛灵活的硬件支持。其主要解决的是推理过程中的性能问题,支持 CPU 和 GPU 混合推理。
- 纯粹的 C/C++ 实现,没有外部依赖
- 支持广泛的硬件:x86_64 CPU (AVX/AVX2/AVX512)、Apple Silicon (Metal/Accelerate)、NVIDIA GPU (CUDA)、AMD GPU (hipBLAS) 等
- 多种量化方案以加快推理速度并减少内存占用
- 提供模型量化工具和服务化组件
1. llama.cpp 环境安装
克隆仓库并进入该目录:
git clone https://github.com/ggerganov/llama.cpp
cd llama.cpp
构建 GPU 执行环境,确保安装 CUDA 工具包,适用于有 GPU 的操作系统。
如果 CUDA 设置正确,那么执行 nvidia-smi、nvcc --version 没有错误提示,则表示一切设置正确。
sudo apt-get install make cmake gcc g++
mkdir build
cd build
cmake -DGGML_CUDA=ON ..
cmake --build . --config Release -j4
make install
在当前版本(截至 2024 年 11 月 10 日)这些指令分别被重命名为 llama-quantize、llama-cli、llama-server。
ln -s your/path/to/llama.cpp/build/bin/llama-quantize llama-quantize
ln -s your/path/to/llama.cpp/build/bin/llama-server llama-server
ln -s your/path/to/llama.cpp/build/bin/llama-cli llama-cli
2. LLAMA 模型转换
这里我们会从 pth 开始,一步步给出我们怎么将模型应用到 llama.cpp 中的。
2.1 pth 原始模型处理
首先安装高版本 python 3.10。
pip install protobuf==3.20.0
pip install transformers
pip install sentencepiece
pip install peft
2.1.1 下载模型
下载原版 LLaMA 模型的权重和 tokenizer.model 文件。可以直接从 HuggingFace 或官方渠道获取。
压缩包内文件目录如下(LLaMA-7B 为例):
├── llama-7b
│ ├── consolidated.00.pth
│ ├── params.json
│ └── checklist.chk
└── tokenizer.model
2.1.2 使用 pyllama 下载
另一种下载 Llama 模型的方法是使用 pyllama 库。
pip3 install transformers pyllama -U
python3 -m llama.download --model_size 7B
在 Mac M2 下可能会遇到架构报错,需要手动构建 itree 库。


