当前位置:AIGC资讯 > AIGC > 正文

LLaMa大模型微调

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.

更新时间 2024-06-14