中文LLaMA模型和指令精调的Alpaca大模型在text-generation-webui和llama.cpp上的部署
LLaMA是facebook的meta公司放出来的大语言模型,这个模型的中文能力非常差。Chinese-LLaMA-Alpaca在原版LLaMA的基础上扩充了中文词表并使用了中文数据进行二次预训练,进一步提升了中文基础语义理解能力。目前已开源的模型版本:7B(标准版、Plus版)、13B(标准版)。这些版本可以在16G,甚至可以在8G内存的个人电脑上部署。似乎不用显卡。今天我在16G内存的个人笔记上部署了。这是记录。
由于笔记本电脑只有16G,所以我选择是LLaMA/Alpaca Plus版本(7B)版本。7B的模型占内存13GB,8bit量化后是7.8GB。
模型下载与合并
部署需要原版LLaMA模型和中文LLaMA模型Chinese-LLaMA-Plus-7B与中文Alpaca模型Chinese-Alpaca-Plus-7B。三个模型要合并成一个模型。
页面也提供了Colab在线合并的方式,在线合并的话就不用下载上面的三个模型,只要下载合并好的模型就可以了。
我的Colab免费账号内存比较低,所以我选择了下载模型后本地合并。
注意,本地合并过程中要用到一个protobuf 3.20.0库。网页没有提及。
说是合并要用到13G内存,但在我的16G内存笔记上合并过程没有遇到问题。
text-generation-webui部署
text-generation-webui是一个网页界面的大语言模型工具。部署参看教程。
注意这个教程是针对没有合并模型的。如果模型合并了,只要加载合并好的一个模型就可以运行了。
python server.py --model llama-7b-hf --cpu
不知道是什么原因,我测试发现text generation webui的反应非常慢。发个你好要几分钟才回复。让它写个诗,几小时只写了几行。几乎没有可用性。不知道是不是我没有开启GPU模式的原因。
llama.cpp部署
text generation webui太卡了,我转向llama.cpp。参考教程。
我是在windows 11下部署,所以要先安装w64devkit。在它里面运行make。然后参考上面的教程就可以了。
我先对模型进行了8bit的量化。
quantize.exe ./zh-models/chinese_alpaca_plus_7B_pth/ggml-model-f16.bin ./zh-models/chinese_alpaca_plus_7B_pth/ggml-model-q8_0.bin 7
然后启动
main.exe -m zh-models/chinese_alpaca_plus_7B_pth/ggml-model-q8_0.bin --color -f prompts/alpaca.txt -ins -c 2048 --temp 0.2 -n 256 --repeat_penalty 1.3
llama.cpp的响应速度非常快。差不多几秒就回复了。但似乎回复的结果不是非常好,很多错误。看来这个模型的可用性还不是很高。而且回复经常中断。