Lora微调Qwen-1_8B-Chat模型实践(魔搭社区)

一、准备工作

1,克隆qwen仓库代码:

git clone https://github.com/QwenLM/Qwen.git

2,跳转至Qwen项目的目录下:

cd Qwen

3,安装依赖包:

pip install deepspeed transformers==4.32.0 peft pydantic==1.10.13 transformers_stream_generator einops tiktoken

4,训练数据准备:

样本放入列表存为json文件,命名为chat.json(可以先下载再上传)

5,下载模型文件:

git clone https://modelscope.cn/qwen/Qwen-1_8B-Chat.git

二、单机单卡微调

1,export CUDA_DEVICE_MAX_CONNECTIONS=1
      export CUDA_VISIBLE_DEVICES=0

2,执行微调python文件:

python finetune.py --model_name_or_path Qwen-1_8B-Chat --data_path chat.json --fp16 True --output_dir output_qwen --num_train_epochs 5 --per_device_train_batch_size 2 --per_device_eval_batch_size 1 --gradient_accumulation_steps 8 --evaluation_strategy "no" --save_strategy "steps" --save_steps 1000 --save_total_limit 10 --learning_rate 3e-4 --weight_decay 0.1 --adam_beta2 0.95 --warmup_ratio 0.01 --lr_scheduler_type "cosine" --logging_steps 1 --report_to "none" --model_max_length 512 --lazy_preprocess True --gradient_checkpointing --use_lora

 此处容易出现的问题-

(1)相关依赖包不匹配:根据错误提示更新即可

1‘No module named 'transformers.models.gemma

解决:更新transformers库pip install transformers --upgrade

2’Your currently installed version of Keras is Keras 3, but this is not yet supported in Transformers. Please install the backwards-compatible tf-keras package with `pip install tf-keras`.

解决:pip install tf-keras

(2)fp16精度问题:True改为False

三、保存微调后模型并测试

1,保存:

from peft import AutoPeftModelForCausalLM 
from transformers import AutoTokenizer 
model = AutoPeftModelForCausalLM.from_pretrained( "output_qwen", device_map="auto", trust_remote_code=True ).eval() 
merged_model = model.merge_and_unload() 
merged_model.save_pretrained("qwen-1_8b-finetune", max_shard_size="2048MB", safe_serialization=True) # 最大分片2g
tokenizer = AutoTokenizer.from_pretrained( "output_qwen", trust_remote_code=True ) 
 
tokenizer.save_pretrained("qwen-1_8b-finetune")

结果展示:

2,测试:

from transformers import AutoModelForCausalLM, AutoTokenizer, GenerationConfig 
tokenizer = AutoTokenizer.from_pretrained("qwen-1_8b-finetune", trust_remote_code=True)
 
model = AutoModelForCausalLM.from_pretrained("qwen-1_8b-finetune", device_map="auto", 
trust_remote_code=True).eval() 
response, history = model.chat(tokenizer, "xxxx", history=None) 
print(response)

结果展示:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值