当前位置: 首页 > news >正文

Qwen2-VL的微调及量化

一、Qwen2-VL简介

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

二、环境装备

        具体的环境可以参考我的上篇文(Qwen-VL部署)。这里不再重复内容。另外微调使用的swift这个框架进行的微调,所以还要准备swift的环境。

swift环境安装,此处可以只下载,不pip安装环境,可在下面微调前安装。

git clone https://github.com/modelscope/swift.git
cd swift
#pip install -e .[llm]# 请关注这个ISSUE: https://github.com/QwenLM/Qwen2-VL/issues/12
# pip install torch>=2.4
#pip install git+https://github.com/huggingface/transformers@21fac7abba2a37fae86106f87fcf9974fd1e3830 accelerate
#pip install pyav qwen_vl_utils

如果遇到这个错误:ImportError: transformers>=4.45.0.dev0 is required for a normal functioning of this module, but found transformers==4.44.2

则需要这样安装transformers:

pip install git+https://github.com/huggingface/transformers@21fac7abba2a37fae86106f87fcf9974fd1e3830 accelerate

上面这个错误在量化的时候也会遇到,所以要每次创建环境都要使用上面的命令安装transformers.

三、微调

1、准备数据,数据格式。

[{"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>"}]}]

2、使用conda创建微调的环境, 创建qwen2的环境

git clone https://github.com/QwenLM/Qwen2-VL.git
cd Qwen2-VL/
conda create -n qwen2 python=3.10 -y
conda activate qwen2
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#去到swift的目录里面,这里接上面的环境安装。
cd /data/swift
#安装swift的环境
pip install -e .[llm]

3、微调指令

  SIZE_FACTOR=8 MAX_PIXELS=602112 CUDA_VISIBLE_DEVICES=0 swift sft   \--model_type qwen2-vl-7b-instruct    \--model_id_or_path /data/autodl/Qwen2-VL-7B-Instruct   \--dataset /data/qwen-vl/Qwen-VL/datasets/result.json,self-cognition  \--learning_rate 1e-3 \--batch_size 2 \--num_train_epochs 3   \--logging_steps 3 \--gradient_accumulation_steps 8 \--model_name 智能助手 'Intelligent  Assistant' \--model_author 风之飘渺  'Wind'

四、量化

    微调成功后,需要合并参数,这时可以同时量化操作,也可以只合并不量化。量化同样使用的swift框架。不量化的情况下,推理非常慢,本人机器配置CPU:2*6330,内存:128G,显卡A5000.大概2分钟左右出结果。量化后还没有测试。

# 使用AutoGPTQ进行量化
pip install auto-gptq#量化指令CUDA_VISIBLE_DEVICES=0 swift export \--ckpt_dir '/data/swift2/swift/output/qwen2-vl-7b-instruct/v3-20240902-150740/checkpoint-93' \--merge_lora true --quant_bits 8 \--load_dataset_config true --quant_method gptq


http://www.mrgr.cn/news/27563.html

相关文章:

  • 使用tauri + naiveAdmin 构建桌面应用程序
  • JAVA接入WebScoket行情接口
  • css 溢出隐藏显示省略号
  • Python爬虫项目 | 一、网易云音乐热歌榜歌曲
  • 关于 MSVCP110.dll 缺失的解决方案
  • 坚持燃油新能源双赛道发力,MG ES5MG7 2025款亮相广州车展
  • L298N电机驱动方案简介
  • Promise查漏及回调地狱结构优化
  • 循环练习 案例
  • Linux权限
  • 鲸天科技外卖会员卡系统更专业
  • XShell快速连接虚拟机(Ubuntu系统)
  • react项目中使用html5-qrcode
  • 《SpringBoot+Vue》Chapter01_SpringBoot介绍
  • 安全通信网络等保
  • 【在Linux世界中追寻伟大的One Piece】网络命令|验证UDP
  • 俄罗斯方块——C语言实践(Dev-Cpp)
  • 开源PHP免费家谱应用Webtrees简介
  • 【Python基础】Python错误和异常处理(详细实例)
  • 【STM32 HAL库】IIC通信与CubeMX配置
  • 探索信号处理:使用傅里叶小波变换分析和恢复信号
  • hadoop3跑第一个例子wordcount
  • สำรวจโลกที่ลึกลับของไพ่ยิปซี
  • linux命令学习-sed命令
  • 时序数据库 TDengine 的入门体验和操作记录
  • 微型导轨在光学仪器中的应用!