基于LLaMA-Factory微调Qwen2.5-1.5B-Instruct

打印 上一主题 下一主题

主题 1898|帖子 1898|积分 5694

一.环境

1.使用了modelscope的云服务

这是modelscope的官网
魔搭社区汇聚各领域最先辈的机器学习模子,提供模子探索体验、推理、训练、部署和应用的一站式服务。
https://www.modelscope.cn/
这个服务必要绑定阿里云,没注册的还要注册阿里云

2.注册

modelscope社区的账号,后续方便使用。
3启动

进入modelscope社区的首页
1.点击我的Notebook

2.选择阿里云弹性加速计算EAIS

3.选择方式二

4.启动(我这里是启动乐成了的,启动乐成后点击查看Notebook)


4.创建

点击查看Notebook后选择下面的第一个创建一个Notebook
并将其重命名为如下 
 

更新和安装

将 pip 升级到最新版本

安装或升级 bitsandbytes  Python 库,要求版本大于 0.39.0
  1. !pip3 install --upgrade pip
  2. !pip3 install bitsandbytes>=0.39.0
复制代码

实验完成后左侧资源管剖析多一个文件

下载LLaMA-Factory


  1. !git clone --depth 1 https://github.com/hiyouga/LLaMA-Factory.git
复制代码

实验完成后左侧资源管剖析多一个文件

下载qwen2.5模子

1.在魔搭点击模子

2.在搜索框搜索qwen2.5

3.找到1.5B版本的


4.进入后点击模子文件

5.复制下载地点


注:在notebook中实验要在前面加一个英文的感叹号
  1. !git clone https://www.modelscope.cn/Qwen/Qwen2.5-1.5B-Instruct.git
复制代码

这里模子下载必要时间,我们先去设置以下其他东西
打开一个终端

进入LLaMA-Factory目录
  1. cd LLaMA-Factory
复制代码
 然后实验这个命令
  1. pip3 install -e ".[torch,metrics]"
复制代码
 
微调设置

进入这个目录LLaMA-Factory/examples/train_qlora/


找到这个文件llama3_lora_sft_awq.yaml复制一份重命名为qwen_lora_sft_bitsandbytes.yaml

将其内容修改为以下内容并保存
  1. ### model
  2. model_name_or_path: ../Qwen2.5-1.5B-Instruct
  3. quantization_bit: 4
  4. ### method
  5. stage: sft
  6. do_train: true
  7. finetuning_type: lora
  8. lora_target: all
  9. ### dataset
  10. dataset: identity
  11. template: qwen
  12. cutoff_len: 1024
  13. max_samples: 1000
  14. overwrite_cache: true
  15. preprocessing_num_workers: 16
  16. ### output
  17. output_dir: saves/qwen2.5-1.5b/lora/sft
  18. logging_steps: 10
  19. save_steps: 500
  20. plot_loss: true
  21. overwrite_output_dir: true
  22. ### train
  23. per_device_train_batch_size: 1
  24. gradient_accumulation_steps: 8
  25. learning_rate: 1.0e-4
  26. num_train_epochs: 3.0
  27. lr_scheduler_type: cosine
  28. warmup_ratio: 0.1
  29. bf16: true
  30. ddp_timeout: 180000000
  31. ### eval
  32. val_size: 0.1
  33. per_device_eval_batch_size: 1
  34. eval_strategy: steps
  35. eval_steps: 500
复制代码
添加模板

然后进入这个目录LLaMA-Factory/src/llamafactory/data/
打开template.py

划到408行左右添加一个qwen模板
将下面内容复制粘贴就行
  1. _register_template(
  2.     name="qwen",
  3.     format_user=StringFormatter(slots=["<|im_start|>user\n{{content}}<|im_end|>\n<|im_start|>assistant\n"]),
  4.     format_system=StringFormatter(slots=["<|im_start|>system\n{{content}}<|im_end|>\n"]),
  5.     format_observation=StringFormatter(slots=["<|im_start|>tool\n{{content}}<|im_end|>\n<|im_start|>assistant\n"]),
  6.     format_separator=EmptyFormatter(slots=["\n"]),
  7.     default_system="You are a helpful assistant.",
  8.     stop_words=["<|im_end|>"],
  9.     replace_eos=True,
  10. )
复制代码
修改训练数据

数据修改数据,我这里的数据是我朋友给我的
 

 进入目录LLaMA-Factory/data/
找到 identity.json
打开后呈以下模样
 

这里不能修改,我们将文件后缀改为md 
 

将预备好的数据全部复制过来


 再将后缀改为json

数据的修改就完成了
 二.微调

在 LLaMA-Factory 目录下,输入以下命令启动微调脚本
  1. llamafactory-cli train examples/train_qlora/yi_lora_sft_bitsandbytes.yaml
复制代码
 呈现下面这个就是启动乐成,这个过程耗时必要耐心等候

三.推理测试

当进度条到达100%后就表示微调乐成
下面我们开始测试
首先找到目录
LLaMA-Factory/examples/inference/
将llama3_lora_sft.yaml复制一份重命名为qwen_lora_sft.yaml
将此中内容修改为
 
  1. model_name_or_path: ../Qwen2.5-1.5B-Instruct
  2. adapter_name_or_path: saves/qwen2.5-1.5b/lora/sft
  3. template: qwen
  4. finetuning_type: lora
复制代码
保存后在终端实验下面的命令
  1. llamafactory-cli chat examples/inference/qwen_lora_sft.yaml
复制代码
运行乐成后就可以开始对话测试了(可能答复得有点牛头不对马嘴) 


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

惊雷无声

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表