相关大模型项目:https://github.com/ymcui/Chinese-LLaMA-Alpaca-3
量化部署是将机器学习模型压缩以减少内存占用和计算成本的过程。本文将详细介绍如何使用llama.cpp工具进行模型量化并在本地部署。
环境准备
首先,确保你的系统满足以下要求:
编译工具:
MacOS/Linux:自带make
Windows:需自行安装cmake
Python:
建议使用Python 3.10及以上版本此外,推荐使用经过指令精调的Llama-3-Chinese-Instruct模型,并选择6-bit或8-bit的量化版本,以获得最佳效果。
步骤一:克隆和编译llama.cpp
重要提示:llama.cpp在2024年4月30日对Llama-3 pre-tokenizer进行了重大改动,请务必拉取最新代码进行编译。
如果你已下载旧版仓库,建议执行以下命令更新代码并清理旧文件:
$ git pull
$ make clean
克隆最新版llama.cpp仓库代码:
$ git clone https://github.com/ggerganov/llama.cpp
编译llama.cpp项目,生成./main
(用于推理)和./quantize
(用于量化)二进制文件:
$ make
启用GPU推理:
Windows/Linux用户:可与BLAS(或cuBLAS)一起编译,以提高处理速度。以下是与cuBLAS一起编译的命令:
$ make LLAMA_CUDA=1
macOS用户:无需额外操作,llama.cpp已对ARM NEON进行优化,并默认启用BLAS。M系列芯片用户可使用Metal启用GPU推理,只需将编译命令改为:
$ LLAMA_METAL=1 make
步骤二:生成量化版本模型
你可以直接下载已量化好的GGUF模型:下载地址。
此外,llama.cpp支持将.safetensors
文件和Hugging Face格式的.bin
文件转换为FP16的GGUF格式。具体命令如下:
$ python convert-hf-to-gguf.py llama-3-chinese-8b-instruct
$ ./quantize llama-3-chinese-instruct-8b/ggml-model-f16.gguf llama-3-chinese-8b-instruct/ggml-model-q4_0.gguf q4_0
步骤三:加载并启动模型
由于Llama-3-Chinese-Instruct模型使用了原版Llama-3-Instruct的指令模板,请将scripts/llama_cpp/chat.sh
拷贝至llama.cpp的根目录。chat.sh
文件内容如下,可根据需要进行修改:
FIRST_INSTRUCTION=$2
SYSTEM_PROMPT="You are a helpful assistant. 你是一个乐于助人的助手。"
./main -m $1 --color -i \
-c 0 -t 6 --temp 0.2 --repeat_penalty 1.1 -ngl 999 \
-r '' \
--in-prefix 'user\n\n' \
--in-suffix 'assistant\n\n' \
-p "system\n\n$SYSTEM_PROMPTuser\n\n$FIRST_INSTRUCTIONassistant\n\n"
使用以下命令启动聊天:
$ chmod +x chat.sh
$ ./chat.sh ggml-model-q4_0.gguf 你好
在提示符 >
后输入你的prompt,按 cmd/ctrl+c
中断输出,多行信息以\
作为行尾。查看帮助和参数说明请执行./main -h
命令。
更多详细说明请参考:官方文档。
通过以上步骤,你可以成功在本地量化并部署Llama-3模型,享受高效的AI模型推理体验。