五一有点空,继续折腾下 llama.cpp。

本来应该优先折腾这个的,毕竟更出名,不过同事折腾过 gpt4all,也是 llama,但似乎中文支持不怎么样的,觉得不行就没看。顺便网上找找,看看融合 Chinese-LLaMA-Alpaca 的中文怎么样

操作环境:Windows 11 Python 3.10


下载并生成 llama.cpp

下载代码

git clone https://github.com/ggerganov/llama.cpp
cd llama.cpp

生成

mkdir build
cd build
cmake ..
cmake --build . --config Release

试运行

cd bin\Release
./main -h

下载 llama 7b 模型

下载 llama 半精度模型

$env:GIT_LFS_SKIP_SMUDGE=1
git lfs install
git clone https://huggingface.co/decapoda-research/llama-7b-hf
git lfs pull

下载 Chinese-LLaMA-Alpaca

git clone https://ghproxy.com/github.com/ymcui/Chinese-LLaMA-Alpaca.git

下载 chinese alpaca lora-7b 模型

$env:GIT_LFS_SKIP_SMUDGE=1
git lfs install
https://huggingface.co/ziqingyang/chinese-alpaca-lora-7b
git lfs pull

模型融合

使用 ymcui/Chinese-LLaMA-Alpaca 里面的 scripts/merge_llama_with_chinese_lora.py 脚本对原版 LLaMA 模型(HF格式)扩充中文词表,并与 LoRA 权重进行合并,生成全量模型权重 consolidated.*.pth(建议检查生成模型的 SHA256 值)和配置文件 params.json

cd Chinese-LLaMA-Alpaca
python scripts/merge_llama_with_chinese_lora.py --base_model D:\test\ai\llama\llama-7b-hf --lora_model D:\test\ai\llama\chinese-alpaca-lora-7b --output_dir ./ggml-model-chinese-alpaca-lora-7b/

把生成的 tokenizer.model 文件放入 llama.cpp/models 目录下,其他小文件放入 llama.cpp/models/7B 目录下。

转换为 ggml fp16 模型

cd llama.cpp
python convert.py D:\test\ai\llama\Chinese-LLaMA-Alpaca\ggml-model-chinese-alpaca-lora-7b

量化为 4bit

cd build/bin/Release
./quantize  D:\test\ai\llama\Chinese-LLaMA-Alpaca\ggml-model-chinese-alpaca-lora-7b/ggml-model-f16.bin ../../../models/7B/ggml-model-q4_0.bin q4_0 4

删除临时文件

rm -R D:\test\ai\llama\Chinese-LLaMA-Alpaca\ggml-model-chinese-alpaca-lora-7b

运行

./main -m ../../../models/7B/ggml-model-q4_0.bin --color -f ../../../prompts/alpaca.txt -ins -c 2048 --temp 0.2 --repeat_penalty 1 -n 4096

速度倒是很快。不过这中文理解能力有问题啊。。前面问小说,后面不问了也是回答小说。。。

写一段 c 操作串口的代码,还是不行。。