Qwen大模型Lora微调-Windows

环境要求

  1. python 3.8 and above
  2. pytorch 1.12 and above, 2.0 and above are recommended
  3. transformers 4.32 and above
  4. CUDA 11.4 and above are recommended (this is for GPU users, flash-attention users, etc.)

微调步骤

1. 资源下载

Qwen:https://github.com/QwenLM/Qwen
qwen1_8B模型:https://modelscope.cn/models/Qwen/Qwen-1_8B-Chat
torch:https://download.pytorch.org/whl/torch_stable.html
flash-attention:https://github.com/Dao-AILab/flash-attention/releases/

2. 环境安装

conda create -n qwen python==3.10.1

# 安装torch
pip install "F:\llm\ptorch\torch-2.1.2+cu121-cp310-cp310-win_amd64.whl"

# 依赖
cd F:\github\Qwen
pip install -r requirements.txt

# 模型推理 web依赖包 图形化界面
pip install -r requirements_web_demo.txt

# 直接安装如果有问题,那就手动下载,本地安装
pip install "peft<0.8.0" deepspeed

# 非必须,模型加速,使用上面的连接下载到本地然后安装,手动编译我3个小时没编译完
pip install F:\llm\flash_attn-2.4.1+cu121torch2.1cxx11abiFALSE-cp310-cp310-win_amd64.whl

# 模型
git clone https://www.modelscope.cn/Qwen/Qwen-1_8B-Chat.git

3. 准备微调数据

看官网的微调格式:

[{
   "id":"identity_0","conversations":[{
   "from":"user","value":"你好"},{
   "from":"assistant","value":"我是一个语言模型,我叫通义千问。"}]}]

准备数据如下:
DISC-Law-SFT-Triplet-released-Qwen.json<

### Qwen-VL 大模型 LoRA 微调方法与指南 对于大型多模态预训练模型如Qwen-VL,在实际应用中通常会通过少量数据进行微调来适应特定的任务需求。低秩自适应(Low-Rank Adaptation, LoRA)是一种有效的参数高效迁移学习技术,能够显著减少所需调整的参数量并保持良好的性能。 #### 准备工作 为了对Qwen-VL实施LoRA微调,需先安装必要的库工具包[^2]: ```bash pip install bmtrain transformers peft ``` 这里`bmtrain`提供了高效的分布式训练支持;而`transformers`和`peft`则分别用于加载基础模型以及实现LoRA机制。 #### 加载预训练模型 利用Hugging Face Transformers库可以方便地获取到已有的Qwen-VL权重文件,并初始化对应的配置对象: ```python from transformers import AutoModelForVisionQA, AutoProcessor model_name_or_path = "qwen-vl-base" processor = AutoProcessor.from_pretrained(model_name_or_path) model = AutoModelForVisionQA.from_pretrained(model_name_or_path) ``` 上述代码片段展示了如何指定路径加载Qwen-VL的基础版本[^3]。 #### 应用LoRA模块 接下来定义要应用于哪些层上的LoRA结构,并设置其超参比如rank大小等: ```python import torch.nn as nn from peft import LoraConfig, get_peft_model config_lora = LoraConfig( r=8, lora_alpha=16, target_modules=["query", "value"], modules_to_save=["vision_projection"] ) model = get_peft_model(model, config_lora) ``` 这段脚本指定了将在查询(`query`)和键值(`value`)变换矩阵上加入LoRA组件,并特别指出视觉投影部分也需要保存下来以便后续处理[^1]。 #### 数据集准备与训练过程 准备好适配于该任务的数据集之后就可以开始构建DataLoader实例化对象了。考虑到资源消耗问题建议采用较小批量尺寸(batch size),同时开启梯度累积(gradients accumulation)策略以模拟更大的有效批次数目(effective batch size): ```python from datasets import load_dataset from torch.utils.data import DataLoader dataset = load_dataset("path/to/your/dataset") data_loader = DataLoader(dataset['train'], shuffle=True, batch_size=4) optimizer = AdamW(model.parameters(), lr=5e-5) for epoch in range(num_epochs): for step, batch in enumerate(data_loader): outputs = model(**batch) loss = outputs.loss loss.backward() if (step + 1) % gradient_accumulation_steps == 0 or \ (step + 1) == len(data_loader): optimizer.step() optimizer.zero_grad() ``` 此段伪代码框架适用于大多数情况下基于PyTorch平台执行的具体操作流程。 #### 模型评估与部署 完成一轮或多轮迭代更新后应当及时验证当前状态下的泛化能力表现情况。当达到预期效果时可考虑导出优化后的权重组件供线上推理服务端使用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值