当前位置:AIGC资讯 > AIGC > 正文

利用llama.cpp量化部署Llama-3-Chinese-8B-Instruct大模型

相关大模型项目: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模型推理体验。

更新时间 2024-06-22