使用LLaMA-Factory微调Qwen2.5-0.5B实验记录

1.安装LLaMA-Factory

先在github上拉取项目代码

https://github.com/hiyouga/LLaMA-Factory.git 

进入项目目录

cd LLaMA-Factory 

创建虚拟环境

conda create -n factory python=3.11 

下载安装包

pip install -e ".[torch,metrics]"  

2.启动 LLaMA-Factory前端页面

llamafactory-cli webui 

这里可能会报错,直接重新创建虚拟环境,按照流程重新安装:

RuntimeError: Failed to import trl.trainer.dpo_trainer because of the following error (look up to see its traceback):
cannot import name 'log' from 'torch.distributed.elastic.agent.server.api' (/opt/conda/lib/python3.10/site-packages/torch/distributed/elastic/agent/server/api.py)

3.训练参数设置

 设置完成后点击开始

训练正常开始

训练过程中,损失函数可以实现可视化

4.推理

采用lora动态合并的方式,会加载基础模型并应用 LoRA 微调适配器,从而实现微调后的模型效果。

CUDA_VISIBLE_DEVICES=0 llamafactory-cli chat  
--model_name_or_path /model/Qwen2.5-0.5B-Instruct/  
--adapter_name_or_path /LLaMA-Factory/LLaMA-Factory/saves/Qwen2.5-0.5B/lora/train_2024-11-13-16-17-06/checkpoint-186  
--template qwen

推理效果正常 

 5.Lora权重合并

进入Lora合并的yaml文件夹下:

cd LLaMA-Factory/LLaMA-Factory/examples/merge_lora

新建一个qwen2.5_lora_sft.yaml文件,仿照项目中的llama3_lora_sft.yaml,创建合并的yaml文件

### model
model_name_or_path: /model/Qwen2.5-0.5B-Instruct  #基础模型路径
adapter_name_or_path: /LLaMA-Factory/LLaMA-Factory/saves/Qwen2.5-0.5B/lora/train_2024-11-14-09-03-29/checkpoint-321    #微调保存的Lora权重路径
template: qwen
finetuning_type: lora

### export
export_dir: /model/Qwen2.5-0.5B-merge   #合并后模型文件导出路径
export_size: 2
export_device: cpu
export_legacy_format: false

 进入到LLaMA-Factory根目录下,执行合并命令

llamafactory-cli export examples/merge_lora/qwen2.5_lora_sft.yaml

 推理测试

CUDA_VISIBLE_DEVICES=0 llamafactory-cli chat  
--model_name_or_path /model/Qwen2.5-0.5B-merge    
--template qwen

有一个小问题,实验采用的是刑法instruct数据集,发现采用上面的动态lora合并推理效果好像更好,有了解的朋友还请帮忙解答,感谢!

### 使用 LLaMA-FactoryQwen2.5-VL 进行微调 为了实现对 Qwen2.5-VL 的微调操作,可以参考 LLaMA-Factory 提供的相关功能以及其配置文件中的参数设置[^1]。以下是具体方法: #### 配置数据参数 在 `data_args.py` 文件中定义的数据参数部分,需调整以适配 Qwen2.5-VL 数据输入需求。例如,在指定路径时应考虑视觉语言模型特有的多模态数据结构。 ```python from dataclasses import dataclass, field @dataclass class DataArguments: dataset_name: str = field(default="my_custom_dataset", metadata={"help": "The name of the dataset to use."}) max_seq_length: int = field(default=512, metadata={"help": "Maximum sequence length."}) image_size: int = field(default=224, metadata={"help": "Image size for vision tasks."}) # 新增图像尺寸支持 ``` 上述代码片段展示了如何扩展默认参数来适应视觉任务的需求,特别是针对图像大小的设定。 #### 修改训练脚本 对于实际执行微调过程,则需要修改主训练脚本来加载预训练权重初始化优化器等相关组件。这里假设已下载好对应版本的 Qwen 权重文件。 ```bash #!/bin/bash export MODEL_NAME_OR_PATH=qwen/Qwen2.5-VL export OUTPUT_DIR=./output_qwen_vl_finetune torchrun --nproc_per_node 4 run_clm.py \ --model_name_or_path $MODEL_NAME_OR_PATH \ --train_file ./path_to_your_training_data.json \ --validation_split_percentage 5 \ --per_device_train_batch_size 8 \ --gradient_accumulation_steps 4 \ --learning_rate 5e-5 \ --weight_decay 0.01 \ --num_train_epochs 3 \ --save_strategy epoch \ --logging_dir ./logs/qwen_vl_log \ --output_dir $OUTPUT_DIR ``` 此脚本设置了分布式运行环境,指定了必要的超参调节选项以便更好地完成目标任务。 #### 注意事项 当处理像 Qwen2.5-VL 这样的大型多模态模型时,请务必注意硬件资源分配情况;如果显存不足可适当降低 batch size 或启用 gradient checkpointing 技术减少内存消耗。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值