赞
踩
PS: 大模型基础和进阶付费课程(自己讲的):《AIGC大模型理论与工业落地实战》-CSDN学院 或者《AIGC大模型理论与工业落地实战》-网易云课堂。感谢支持!
从github中克隆LLaMa-Factory项目到本地
将原始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命令中使用
数据准备好之后,编写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
模型融合的意义在于合并训练后的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
模型推理即模型在新的验证集上的推理和验证过程
指令和训练的基本一致,只是差别几个参数:
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
部署接口的作用是可以让你把接口开放出去给到外部调用
- 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
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。