简介
llama.cpp 是一个专注于推理性能优化的项目,主要解决大模型在本地运行时的效率问题。它基于 C/C++ 实现,无外部依赖,支持广泛的硬件平台(CPU、GPU、NPU 等),并提供多种量化方案以加快推理速度并减少内存占用。
1. llama.cpp 环境安装
克隆仓库并进入该目录:
git clone https://github.com/ggerganov/llama.cpp
cd llama.cpp
构建 GPU 执行环境,确保已安装 CUDA 工具包。如果 CUDA 设置正确,执行 nvidia-smi 或 nvcc --version 应无错误提示。
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
pip install transformers
pip install sentencepiece
pip install peft
下载原版 LLaMA 模型的权重和 tokenizer.model 文件。可使用 IPFS 客户端、BitTorrent 或 pyllama 库进行下载。例如使用 pyllama:
pip3 install transformers pyllama -U
python3 -m llama.download --model_size 7B
2.2 转为 HF 格式
使用 HuggingFace 提供的脚本将原版 LLaMA 模型转换为 HuggingFace 格式:
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
若需合并 LoRA 权重,可使用 Chinese-LLaMA-Alpaca 项目中的脚本:
git clone https://github.com/ymcui/Chinese-LLaMA-Alpaca.git
cd Chinese-LLaMA-Alpaca
python scripts/merge_llama_with_chinese_lora.py \
--base_model /workspace/hf_data \
--lora_model /workspace/chinese_llama_lora_7B \
--output_dir /workspace/lora_pth_data


