聊天模型
按照https://github.com/ymcui/Chinese-LLaMA-Alpaca介绍的方法
目录
cd ~
git clone https://github.com/ymcui/Chinese-LLaMA-Alpaca
cd Chinese-LLaMA-Alpaca
# 下载中文增量模型 Chinese-Alpaca-7B(从项目说明中的网盘链接下载)
# 下载原始模型 https://huggingface.co/nyanko7/LLaMA-7B
# 原始模型、目标模型的目录结果如下,在原始模型下放tokenizer.model,其余文件放到7B目录
# 最后合并的模型放到model的根下
├── model
│ ├── chinese_llama_or_alpaca_lora(中文增量模型)
│ │ ├── adapter_config.json
│ │ ├── adapter_model.bin
│ │ ├── special_tokens_map.json
│ │ ├── tokenizer_config.json
│ │ └── tokenizer.model
│ ├── original_llama_hf(原始模型转换为HuggingFace格式)
│ │ ├── config.json
│ │ ├── generation_config.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
│ ├── original_llama_root(原始模型)
│ │ ├── 7B
│ │ │ ├── checklist.chk
│ │ │ ├── consolidated.00.pth
│ │ │ ├── params.json
│ │ │ └── README.md
│ │ └── tokenizer.model
│ ├── params.json
│ ├── special_tokens_map.json
│ ├── tokenizer_config.json
│ ├── consolidated.00.pth
│ └── tokenizer.model
模型下载
https://huggingface.co/nyanko7/LLaMA-7B/tree/main
git lfs install
git clone https://huggingface.co/nyanko7/LLaMA-7Bhttps://huggingface.co/decapoda-research/llama-7b-hf
git lfs install
git clone https://huggingface.co/decapoda-research/llama-7b-hfChinese-LLaMA-7B:
- https://pan.baidu.com/s/1oORTdpr2TvlkxjpyWtb5Sw?pwd=33hb
- https://drive.google.com/file/d/1iQp9T-BHjBjIrFWXq_kIm_cyNmpvv5WN/view?usp=sharing
转化
转换原始模型到HuggingFace格式
# 查找convert_llama_weights_to_hf.py全路径
sudo find / -name convert_llama_weights_to_hf.py
# 转换命令
python convert_llama_weights_to_hf.py(全路径) \
--input_dir path_to_original_llama_root_dir \
--model_size 7B \
--output_dir path_to_original_llama_hf_dirpython3 /home/why/.local/lib/python3.10/site-packages/transformers/models/llama/convert_llama_weights_to_hf.py \
--input_dir model/original_llama_root \
--model_size 7B \
--output_dir model/original_llama_hf合并原始模型和LoRA权重
# 合并命令
python scripts/merge_llama_with_chinese_lora.py \
--base_model path_to_original_llama_hf_dir \
--lora_model path_to_chinese_llama_or_alpaca_lora \
--output_dir path_to_output_dir
# 例
python scripts/merge_llama_with_chinese_lora.py \
--base_model model/original_llama_hf \
--lora_model model/chinese_llama_or_alpaca_lora \
--output_dir model克隆和编译llama.cpp
cd ~
git clone https://github.com/ggerganov/llama.cpp
cd llama.cpp
make生成量化版本模型
# 复制转化后的模型
mkdir zh-models
cp ~/Chinese-LLaMA-Alpaca/model/chinese_llama_or_alpaca_lora/tokenizer.* ./zh-models
mkdir zh-models/7B
cp ~/Chinese-LLaMA-Alpaca/model/consolidated.*.pth ./zh-models/7B
cp ~/Chinese-LLaMA-Alpaca/model/params.json ./zh-models/7B
# 模型权重转换为ggml的FP16格式
python convert-pth-to-ggml.py zh-models/7B/ 1
# 对FP16模型进行Q4量化
./quantize ./zh-models/7B/ggml-model-f16.bin ./zh-models/7B/ggml-model-q4_0.bin 2加载并启动模型
./main -m zh-models/7B/ggml-model-q4_0.bin --color -ins -c 2048 --temp 0.2 -n 256 --repeat_penalty 1.3 -p '你好'