本文主要以记录为主,所有的需要下载模型均可以在开源仓库找到,避免网盘进行传播(因为不知道第三方的上传者会不会加料)
本文参考 Chinese-LLaMA-Alpaca 文档以及 这篇博客 LLaMA大型语言模型的本地部署 >_< 写成,并在本机上实测运行(Windows)
本文目标是部署本地的对话模型,因此使用Chinese-Alpaca-Plus-7B模型,和llama.cpp进行本地部署
本人还在学习如何使用GPU生成以及如何在此基础上训练自己的模型(还在学习中。。。)
本文可能存在一些疏漏,后续会不断完善。(🚧 施工中 🚧 )
首先第一步下载原版的LLaMA模型 仓库地址 由于此仓库已经换为HF格式了,因此直接拿来用就好了。
因此你的目录应该是这样的
│
│
└───llama-7b-hf
.gitattributes
config.json
generation_config.json
LICENSE
pytorch_model-00001-of-00033.bin
pytorch_model-00002-of-00033.bin
pytorch_model-00003-of-00033.bin
pytorch_model-00004-of-00033.bin
pytorch_model-00005-of-00033.bin
pytorch_model-00006-of-00033.bin
pytorch_model-00007-of-00033.bin
pytorch_model-00008-of-00033.bin
pytorch_model-00009-of-00033.bin
pytorch_model-00010-of-00033.bin
pytorch_model-00011-of-00033.bin
pytorch_model-00012-of-00033.bin
pytorch_model-00013-of-00033.bin
pytorch_model-00014-of-00033.bin
pytorch_model-00015-of-00033.bin
pytorch_model-00016-of-00033.bin
pytorch_model-00017-of-00033.bin
pytorch_model-00018-of-00033.bin
pytorch_model-00019-of-00033.bin
pytorch_model-00020-of-00033.bin
pytorch_model-00021-of-00033.bin
pytorch_model-00022-of-00033.bin
pytorch_model-00023-of-00033.bin
pytorch_model-00024-of-00033.bin
pytorch_model-00025-of-00033.bin
pytorch_model-00026-of-00033.bin
pytorch_model-00027-of-00033.bin
pytorch_model-00028-of-00033.bin
pytorch_model-00029-of-00033.bin
pytorch_model-00030-of-00033.bin
pytorch_model-00031-of-00033.bin
pytorch_model-00032-of-00033.bin
pytorch_model-00033-of-00033.bin
pytorch_model.bin.index.json
README.md
special_tokens_map.json
tokenizer_config.json
tokenizer.model下载chinese_llama_plus_lora_7b模型以及chinese_alpaca_plus_lora_7b 模型
当然你可以在🤗Model Hub下载以上所有模型:
ziqingyang/chinese-llama-plus-lora-7b ziqingyang/chinese-alpaca-plus-lora-7b
他们的目录结构应该看起来像这样
│
│
└───chinese_llama_plus_lora_7b
adapter_config.json
adapter_model.bin
special_tokens_map.json
tokenizer_config.json
tokenizer.model │
│
└───chinese_llama_plus_lora_7b
adapter_config.json
adapter_model.bin
special_tokens_map.json
tokenizer_config.json
tokenizer.model
YOU_MUST_ALSO_DOWNLOAD_LLAMA_PLUS_7B.md
接着进行模型的合并,为原版的模型添加中文的能力~
克隆仓库 https://github.com/ymcui/Chinese-LLaMA-Alpaca.git
进入 Chinese-LLaMA-Alpaca/scripts/ 目录下
找到merge_llama_with_chinese_lora.py脚本
在此处打开终端执行命令
python merge_llama_with_chinese_lora.py --base_model llama-7b-hf --lora_model chinese_llama_plus_lora_7b,chinese_alpaca_plus_lora_7b --output_dir out注意:此过程需要消耗15GB左右的内存(你没看错,是内存。)
合成后的目录应该像这样
│
│
└───out
config.json
consolidated.00.pth
generation_config.json
params.json
pytorch_model-00001-of-00002.bin
pytorch_model-00002-of-00002.bin
pytorch_model.bin.index.json
special_tokens_map.json
tokenizer_config.json
tokenizer.model之后就是需要量化模型
新建zh-models文件家夹,将Chinese-LLaMA-Alpaca文件夹中的tokenizer.model放入其中,然后在zh-models中建立7B文件夹,将上面合并生成的consolidated.00.pth和params.json放入其中
zh-models
│
│ tokenizer.model
|
└───7B
consolidated.00.pth
params.json之后克隆仓库https://github.com/ggerganov/llama.cpp
找到 llama.cpp/convert-pth-to-ggml.py
执行命令python convert-pth-to-ggml.py zh-models/7B/ 1
你会在zh-models\7B下得到一个ggml-model-f16.bin文件
现在我们需要对它Q4量化,这里需要用到llama.cpp不想编译的可以直接在https://github.com/ggerganov/llama.cpp/releases下载
我们需要quantize.exe进行量化模型
执行命令./quantize.exe ./zh-models/7B/ggml-model-f16.bin ./zh-models/7B/ggml-model-q4_0.bin 2
最终你会得到ggml-model-q4_0.bin文件,这就是我们需要的了。
执行命令来启动./main.exe -m zh-models/7B/ggml-model-q4_0.bin --color -f prompts/alpaca.txt -ins -c 2048 --temp 0.2 -n 256 --repeat_penalty 1.3
效果图:
