1. 模型的微调
1.1 大模型LLaMa下载
先下载一个完整版本的LLaMa模型,官网的或别人下载微调过的中文版本的。
1.2 指令微调
执行run_clm_sft_with_peft
1.3 合并LORA
大模型的原始参数和微调后的参数合并到一起
执行如下脚本:
scripts/merge_llama3_with_chinese_lora_low_mem.py
--base_model 原始预训练模型的路径
--lora_model 微调后的lora的路径
--output_dir 参数合并的输出目录
merge后的格式是safetensors
model-00001-of-00004.safetensors 4.63G
model-00002-of-00004.safetensors 4.63G
model-00003-of-00004.safetensors 4.63G
model-00004-of-00004.safetensors 4.63G
2. 量化
2.1 llama.cpp
llama.cpp链接:https://gitcode.com/ggerganov/llama.cpp/overview
需要先安装好CMAKE:https://cmake.org/download/
然后,
git clone https://gitcode.com/ggerganov/llama.cpp
cd llama.cpp
pip install -r requirements/requirements-convert-hf-to-gguf.txt
cmake -B build
cmake --build build --config Release
编译后,会在llama.cpp根目录下的build\bin\Release的目录下生成一系列exe文件,其中包含quantize.exe文件,这个可执行文件可以用来做量化。
2.2 格式转换
HF格式(huggingface的个数,比如model-00001-of-00004.safetensors)需要先转换成GG格式(llama.cpp可以处理的格式)
llama.cpp/convert-hf-to-gguf.py xxx\llama3-lora-merge[参数merge后的路径] --outtype f16 --outfile xxx\my_llama3.guff[转换后的输出路径]
转换后的my_llama3.guff文件有14.9G
2.3 量化
python quantize.exe xxx\my_llama3.guff xxxx\quantize_model.gguf[量化后的输出目录] q4_0
需要量化为8bit时,可以将“q4_0”换成“q8_0”
量化后的quantize_model.gguf为4.34G,作为后续推理使用的模型。
3. 部署
3.1 ollama部署
启动ollama,进入量化后的模型文件目录,运行如下命令
ollama create my_llama_q4[自定义服务名] -f Makefile
加载模型,将模型部署成一个服务。可以通过“ollama list”查看目前的安装的模型。使用“ollama run my_llama_q4”将模型启动起来。
ollama部署的默认端口号是:11434.