Qwen2 - VL的微调与量化实操指南:玩转智能操作

一、Qwen2-VL 简介

Qwen2-VL是Qwen-VL的升级版本,能力更强,性能全面提升。尤其是72B参数的版本更是取了惊人的成绩。它可以读懂不同分辨率和不同长宽比的图片,在 MathVista、DocVQA、RealWorldQA、MTVQA 等基准测试创下全球领先的表现;可以理解 20 分钟以上长视频,支持基于视频的问答、对话和内容创作等应用;具备强大的视觉智能体能力,可自主操作手机和机器人,借助复杂推理和决策的能力,Qwen2-VL 可以集成到手机、机器人等设备,根据视觉环境和文字指令进行自动操作。

二、环境装备

显卡资源及基础镜像环境

RTX 4090*4,Miniconda3 / Ubuntu / 22.04-cuda12.1

1.下载预训练资料

git clone https://github.com/QwenLM/Qwen2-VL.git

2.创建虚拟环境

conda create -n qwen2 python=3.10
conda activate qwen2

3.安装依赖

微调使用的 swift 这个框架进行的微调,准备 swift 的环境。

git clone https://github.com/modelscope/swift.git
cd swift
pip install -e .[llm]

安装其他依赖

conda install pytorch torchvision torchaudio pytorch-cuda=12.4 -c pytorch -c nvidia
pip install git+https://github.com/huggingface/transformers@21fac7abba2a37fae86106f87fcf9974fd1e3830 accelerate
pip install pyav qwen_vl_utils
pip install auto-gptq

三.数据准备,数据格式

1.下载预训练模型

git lfs install
git clone https://www.modelscope.cn/Qwen/Qwen2-VL-7B-Instruct.git /root/sj-tmp 

2.数据格式

[
  {
    "id": "1",
    "conversations": [
      {
        "from": "user",
        "value": "Picture 1: <img>/data/media/upload/1/a9dc4837-2.png</img>\\n请检查图片中是否有违反作业标准中规定的情况,列出最突出的一种情况。"
      },
      {
        "from": "assistant",
        "value": "图片中存在地面有垃圾的问题"
      },
      {
        "from": "user",
        "value": "请框出图片中的问题"
      },
      {
        "from": "assistant",
        "value": "<ref>问题</ref><box>(28,53),(552,731)</box>"
      }
    ]
  }
  ]

3.数据准备

将准备好的数据传到/root/sj-tmp/。根据自己训练需求准备数据,通常数据包含一个result.json文件,和一个存放图片的文件夹,方便把图片放在里面。


[ { "id": "10005", "conversations": [ { "from": "user", "value": "Picture 1: <img>/root/sj-tmp/sjj/10005_1000005_t2w_4.png</img>\\n请判断该前列腺体积。" }, { "from": "assistant", "value": "前列腺体积前后径,T2矢状位正中层面测量: 4.1 cm\n前列腺体积上下径,T2矢状位正中层面测量: 4.5 cm\n前列腺体积左右径,T2轴位最大层面测量: 5.8 cm" } ] }, ]

四.微调指令

修改模型、数据的存放路径,设置训练参数。

SIZE_FACTOR=8 MAX_PIXELS=602112 CUDA_VISIBLE_DEVICES=0 swift sft   \
   --model_type qwen2-vl-7b-instruct    \
   --model_id_or_path /root/sj-tmp/Qwen2-VL-7B-Instruct   \
   --dataset /root/sj-tmp/result.json,self-cognition  \
   --learning_rate 1e-3 \
   --batch_size 2 \
   --num_train_epochs 30   \
   --logging_steps 3 \
   --gradient_accumulation_steps 8 \
   --model_name 智能助手 'Intelligent  Assistant' \
   --model_author 梦为鱼  'Wind'

五.量化

微调成功以后,会给出权重保存路径,修改量化路径,使用AutoGPTQ进行量化

UDA_VISIBLE_DEVICES=0 swift export \
    --ckpt_dir '/Qwen2-VL/output/qwen2-vl-7b-instruct/v5-20241023-082923/checkpoint-50/' \
    --merge_lora true --quant_bits 8 \
    --load_dataset_config true --quant_method gptq
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值