目录
1.材料准备
1.1stable-vicuna-13b-delta相对于llama13b的微调权重,官方没有提供融合后的权重,需要自己融合CarperAI/stable-vicuna-13b-delta · Hugging Face
1.2 LLaMA 13B原始权重decapoda-research/llama-13b-hf · Hugging Face
1.3微调脚本,官方似乎没有提供微调脚本,通过该第三方仓库实现stable-vicuna-13b微调hiyouga/LLaMA-Efficient-Tuning: Easy-to-use fine-tuning framework using PEFT (PT+SFT+RLHF with QLoRA) (LLaMA-2, BLOOM, Falcon, Baichuan) (github.com)
2.原始模型融合
2.1下载stable-vicuna-13b-delta模型和LLaMA 13B模型,下面以stable-vicuna-3b-delta说明如何下载。
方法①:使用git
git lfs install
git clone https://huggingface.co/CarperAI/stable-vicuna-13b-delta
方法②:手动下载
2.2模型融合,获得完整StableVicuna-13B模型
进入刚才下载的stable-vicuna-13b-delta文件夹下,执行刚才下载的stable-vicuna-13b-delta文件中的apply_delta.py程序,其中--bash后面参数改为你自己下载的llama-13b文件路径,--target后面改为你要输出的最终模型路径,--delta后面改为你自己下载stable-vicuna-13b-delta的路径。(不修改并安装了transformers库的话(注意这是一个方便使用各种大模型的库,不要和transformer模型搞混了),模型会自动通过transformers进行下载,速度很快,注意修改下载路径否则可能会导致/dev/sda1满了,但通过transformers下载文件名会混乱)
python3 apply_delta.py --base /path/to/model_weights/llama-13b --target stable-vicuna-13b --delta CarperAI/stable-vicuna-13b-delta
3.模型微调
3.1下载微调文件到本地
方法①使用git
git clone https://github.com/hiyouga/LLaMA-Efficient-Tuning.git
②直接下载
3.2环境配置
通过conda安装名为llama_etuning的环境,需要提前安装conda,自行搜索如何安装,然后该环境
conda create -n llama_etuning python=3.10
source activate llama_etuning
用可以使用如下指令进行安装,llama_etuning为你的环境名,它会在当前文件文件夹下创建一个stable_vicuna文件夹使用环境时必须输入正确的文件路径才可以,使用conda安装输入环境名即可
python3 -m venv llama_etuning
source llama_etuning/bin/activate
安装相关依赖包,记住以上操作你都位于你下载的微调文件夹下。
pip install -r requirements.txt
3.3添加自己数据集
将自己json文件放到data文件夹下,并在修改dataset_info.json中的配置信息。
文件格式如图所示详情见官网
修改data_info.json配置信息,我的是vicuna_output_test.json文件,修改为你自己的就可以了。
3.3微调,其他微调方法在该项目中已经介绍,下面主要描述使用 Supervised Fine-Tuning
3.4模型推理,输出指定样本结果
3.5微调后模型部署(多轮对话)
我的数据集是要根据指令输出cmd指令,使用3.4和3.5两种方法输出结果准确性会差距很大,猜测可能是对话时上下文信息影响导致精度下降。