llama.cpp github地址:GitHub - ggerganov/llama.cpp: LLM inference in C/C++
克隆地址并尝试build:
git clone https://github.com/ggerganov/llama.cpp
cd llama.cpp
make GGML_CUDA=1 #没有gpu的linux使用make命令代替这一行即可
安装依赖项:
python3 -m pip install -r requirements.txt
在之前的教程中,我们提到了unsloth微调的办法,那时候保存的模型直接为.safetensors格式的,所以我们要先将其转换为gguf FP16格式格式。
# 转换模型为ggml FP16格式(cd ./llama.cpp)
python convert-hf-to-gguf.py ./your_hf_model_file --outfile ./mymodel/yourmodel.gguf --outtype f16
其中./your_hf_model_file为你的hf或者gguf格式的模型文件文件夹地址,llama.cpp还支持多种模型格式转换方法,可以去github项目地址自行查看,其中./mymodel/yourmodel.gguf是输出文件夹的地址和输出的gguf格式文件名称,记得一定要以.gguf结尾。
# 四位量化 (using Q4_K_M method)(cd ./llama.cpp)
./llama-quantize ./mymodel/ggml-model-f16.gguf ./mymodel/ggml-model-Q4_K_M.gguf Q4_K_M
代码从左往右以此为 项目量化的二进制脚本文件、需要量化的模型文件地址 、量化后输出的文件地址和名称、量化方法;Q4_K_M是比较常用的4位量化方法,也可以选择其他量化方法,具体信息见github项目详情页。
#直接使用模型
./llama-cli -m ./models/mymodel/ggml-model-Q4_K_M.gguf -n 128
交互模式:
# default arguments using a 7B model这个方法没有测试过,具体参数可以调整chat.sh文件
./examples/chat.sh
llama.cpp使用模型的方法非常简单粗暴,而且也不好用,下期介绍如何用ollama调用我们微调的LLM模型。