当前位置: 首页> 文旅> 艺术 > LLama-Factory使用教程

LLama-Factory使用教程

时间:2025/7/9 0:55:20来源:https://blog.csdn.net/weixin_35977125/article/details/140047933 浏览次数:0次
本文是github项目llama-factory的使用教程
注意,最新的llama-factory的github中训练模型中,涉及到本文中的操作全部使用了.yaml配置。
新的.yaml的方式很简洁但不太直观,本质上是一样的。新的readme中的.yaml文件等于下文中的bash指令

PS: 大模型基础和进阶付费课程(自己讲的):《AIGC大模型理论与工业落地实战》-CSDN学院 或者《AIGC大模型理论与工业落地实战》-网易云课堂。感谢支持!

一,数据准备和模型训练

step1-下载项目:

​ 从github中克隆LLaMa-Factory项目到本地

step2-准备数据:

​ 将原始LLaMA-Factory/data/文件夹下的dataset_info.json,增加本地的数据。注意,本地数据只能改成LLama-Factory接受的形式,即本地数据只能支持”promtp/input/output“这种对话的格式,不支持传统的文本分类/实体抽取/关系抽取等等schema数据,如果需要,请想办法改成对话形式的数据。

​ 你需要参考其中的一个文件和它的配置,例如:alpaca_gpt4_data_zh.json,训练和验证数据同样改成这种格式,并在dataset_info.json中新增一个你自己的字典:

{"alpaca_en": {"file_name": "alpaca_data_en_52k.json","file_sha1": "607f94a7f581341e59685aef32f531095232cf23"
},  
..."your_train": {"file_name": "/path/to/your/train.json","columns": {"prompt": "instruction","query": "input","response": "output"}},
...

​ 其中的key,your_train,将在训练/测试的shell命令中使用

step3-模型训练:

​ 数据准备好之后,编写shell脚本训练模型,以mixtral为例根目录下新建run_mixtral.sh

需要改动的主要是:model_name_or_path,dataset,output_dir;和其他可选的改动信息,例如save_steps,per_device_train_batch_size等等。

CUDA_VISIBLE_DEVICES=0 python src/train_bash.py \--stage sft \--do_train \--model_name_or_path /path/to/your/Mixtral-8x7B-Instruct-v0.1 \--dataset my_train \--template default \--finetuning_type lora \--lora_target q_proj,v_proj \--output_dir ./output/mixtral_train \--overwrite_output_dir \--overwrite_cache \--per_device_train_batch_size 4 \--gradient_accumulation_steps 4 \--lr_scheduler_type cosine \--logging_steps 10 \--save_steps 200 \--learning_rate 5e-5 \--num_train_epochs 1.0 \--plot_loss \--quantization_bit 4 \--fp16
step4-模型融合

​ 模型融合的意义在于合并训练后的lora权重,保持参数和刚从huggingface中下载的一致,以便更加方便地适配一些推理和部署框架

​ 基本流程/原理:将微调之后的lora参数,融合到原始模型参数中,以mixtral为例新建:LLama-Factory/run_mixtral_fusion.sh:

python src/export_model.py \--model_name_or_path path_to_huggingface_model \--adapter_name_or_path path_to_mixtral_checkpoint \--template default \--finetuning_type lora \--export_dir path_to_your_defined_export_dir \--export_size 2 \--export_legacy_format False
step5-模型推理

​ 模型推理即模型在新的验证集上的推理和验证过程

​ 指令和训练的基本一致,只是差别几个参数:

        1.增加了do_predict,2.数据集改成一个新的eval数据集

​ LLama-Factory/runs/run_mixtral_predict.sh

CUDA_VISIBLE_DEVICES=0 python src/train_bash.py \--stage sft \--do_predict \--model_name_or_path /path/to/huggingface/Mixtral-8x7B-Instruct-v0.1 \--adapter_name_or_path /path/to/mixtral_output/checkpoint-200 \--dataset my_eval \--template default \--finetuning_type lora \--output_dir ./output/mixtral_predict \--per_device_eval_batch_size 4 \--predict_with_generate \--quantization_bit 4 \--fp16
step6-API接口部署

部署接口的作用是可以让你把接口开放出去给到外部调用

CUDA_VISIBLE_DEVICES=0 API_PORT=8000 python src/api_demo.py \--model_name_or_path path_to_llama_model \--adapter_name_or_path path_to_checkpoint \--template default \--finetuning_type lora

关键字:LLama-Factory使用教程

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: