学习笔记:Ubuntu 22 使用模型量化工具llama.cpp部署大模型 CPU+GPU
前言
官方仓库:
llama.cpp
llama-cpp-python
环境:
CUDA Version: 12.2
Torch: 2.1.1
Python: 3.9
1 下载并编译llama.cpp
1.1 git下载llama.cpp仓库源码
由于服务器git上不去,先下载源码到本地再上传到服务器(带有.git隐藏文件)。
git clone https://github.com/ggerganov/llama.cpp
1.2 编译源码(make)
生成./main和./quantize等二进制文件。
cd llama.cpp
1.2.1 选择一:仅在CPU上运行
make
1.2.2 选择二:使用GPU,与cuBLAS编译
使用 Nvidia GPU 的 CUDA 内核提供 BLAS 加速,确保设备上有GPU+CUDA。
make LLAMA_CUBLAS=1 LLAMA_CUDA_NVCC=/usr/local/cuda/bin/nvcc
如果遇到错误:
可尝试
make clean
cd scripts
sed -i 's/\r//' build-info.sh
make LLAMA_CUBLAS=1 LLAMA_CUDA_NVCC=/usr/local/cuda/bin/nvcc
2 量化大模型
2.1 准备大模型
llama.cpp支持转换的模型格式有PyTorch 的.pth、huggingface的 .safetensors、还有之前 llamma.cpp 采用的 ggmlv3。
在 huggingface 上找到合适格式的模型,下载至 llama.cpp 的 models目录下。
或本地已下载的模型上传至models目录。
2.2 生成量化模型
quantize 提供各种精度的量化。量化会损失精度.(参考WIKI最后部分、