基于Qwen2.5-VL-7B模型微调交通大模型效果展示

一、背景

Qwen2.5-VL是Qwen家族最新的旗舰款视觉模型。这个版本主要有以下两个特点:

  • 理解长视频和捕捉事件:Qwen2.5-VL 能够理解超过 1 小时的视频,并且这次它具备了通过精准定位相关视频片段来捕捉事件的新能力。
  • 视觉定位:Qwen2.5-VL 可以通过生成 bounding boxes 或者 points 来准确定位图像中的物体,并能够为坐标和属性提供稳定的 JSON 输出。

这次发布了72B,7B和3B版本。72B是旗舰款的模型,7B和3B更加倾向于小模型本地部署的应用,其中7B可以达到gpt4o-mini的效果,3B在同参数级别的模型中比较有优势。本次给大家带来的是7B模型微调交通车辆车牌属性相关微调记录。

二、微调数据

1、数据生成

1.1、首先我们对图片中的车辆属性和车牌属性进行定性:

  • 车辆属性我们主要分为车辆品牌(不包含年款)、车辆类型、车辆颜色、车辆朝向。
  • 车牌属性我们分为,车牌所属国家、车牌所属省份、车牌号码、车牌颜色、车牌层数、车牌用途。
    通过前期数据积累制作对应相关数据标签,生成如下数据:
    在这里插入图片描述

1.2 基于大模型+提示词对数据进行伪标签定性描述。

效果如下:

{'imgpath': '/home/jovyan/pvc-jiaotong/wqg_data/LLM_data/LLM_Vehicle_ATT/磨憨整理_20241210/已整理/车辆属性:东风-车头-轻微型货车-蓝色_车牌属性0:中国-云南省-云K CM158-蓝色-单层-燃油车_00032804_car10062_00336842.jpg', 
'shape': (612, 602, 3), 
'describe': '这辆蓝色的东风轻微型货车正迎面而来,车身线条流畅,显得十分稳重。阳光洒在车身上,反射出耀眼的光芒,使得蓝色更加鲜艳夺目。东风品牌的标志清晰可见,彰显着其卓越的品质与实力。\n\n车牌上显示的是中国云南省的车牌,号码为云K CM158。车牌的颜色为蓝色,与车身相得益彰,给人一种清新自然的感觉。车牌的层数为单层,用途为燃油车车牌,表明这是一辆传统的内燃机驱动的车辆。车牌上的文字和数字在阳光下显得格外醒目,仿佛在诉说着它的故事。\n\n总的来说,这辆车不仅外观时尚,而且充满了实用性和可靠性。无论是日常通勤还是长途旅行,它都能轻松应对各种路况。'}

{'imgpath': '/home/jovyan/pvc-jiaotong/wqg_data/LLM_data/LLM_Vehicle_ATT/磨憨整理_20241210/已整理/车辆属性:东风-车头-重型货车-棕色_车牌属性0:中国-云南省-云F 92639-黄色-单层-货车_00005229_car9450_00324509.jpg', 
'shape': (1146, 1010, 3), 
'describe': '这辆重型货车的品牌是东风,从其独特的前脸设计和标志性的东风车标可以看出。虽然照片拍摄于阴雨天气,但可以推测出这辆车在晴天时应该是棕色的。它正对着镜头,给人一种威严而坚固的感觉。\n\n车牌显示该车属于中国的云南省,车牌号码为云F 92639,颜色为黄色。车牌的单层设计清晰可见,表明它专为货车使用而设。尽管照片中光线较为昏暗,但车牌的颜色依然鲜明,黄色在雨天的反光下显得格外醒目。\n\n总的来说,这是一辆典型的东风重型货车,无论是从品牌、颜色还是车牌来看,都与提示信息相符。'}

1.3 基于大模型+描述性提问对数据进行伪标签定性描述。

效果如下:

{'imgpath': '/home/jovyan/pvc-jiaotong/wqg_data/LLM_data/LLM_Vehicle_ATT/磨憨整理_20241210/已整理/车辆属性:东风-车头-轻微型货车-蓝色_车牌属性0:中国-云南省-云K CM158-蓝色-单层-燃油车_00032804_car10062_00336842.jpg', 
'shape': (612, 602, 3), 
'describe': '这是一辆蓝色的东风牌货车,车牌号为“EK CM158”。车辆顶部装有太阳能板,车窗上可以看到车内的一些物品和驾驶者。背景中可以看到一些树木和建筑物。', 
'question': '请把图片中的信息转化为文字描述。'}

{'imgpath': '/home/jovyan/pvc-jiaotong/wqg_data/LLM_data/LLM_Vehicle_ATT/磨憨整理_20241210/已整理/车辆属性:东风-车头-重型货车-棕色_车牌属性0:中国-云南省-云F 92639-黄色-单层-货车_00005229_car9450_00324509.jpg', 
'shape': (1146, 1010, 3), 
'describe': '图片显示一辆大型货车在雨天行驶,车头前方有一个车牌号为“浙F-92639”的黄色车牌。车顶上装有设备,车窗内可以看到驾驶员戴着帽子。', 
'question': '用简洁的语言描述图片的主要内容。'}

1.4 通过大模型语义整合能力,对提示词信息和描述语言信息进行整合

效果如下:

{'imgpath': '/home/jovyan/pvc-jiaotong/wqg_data/LLM_data/LLM_Vehicle_ATT/磨憨整理_20241210/已整理/车辆属性:东风-车头-轻微型货车-蓝色_车牌属性0:中国-云南省-云K CM158-蓝色-单层-燃油车_00032804_car10062_00336842.jpg', 
'shape': (612, 602, 3), 
'describe': ['这辆蓝色的东风轻微型货车正迎面而来,车身线条流畅,显得格外稳重。东风品牌的标志清晰可见,彰显着其卓越的品质与实力。车身上的蓝色在阳光下更加鲜艳夺目,与车牌的颜色相得益彰,给人一种清新自然的感觉。车牌上显示的是中国云南省的车牌,号码为云K CM158,单层设计,用途为燃油车车牌,表明这是一辆传统的内燃机驱动的车辆。车牌上的文字和数字格外醒目,仿佛在诉说着它的故事。\n\n车辆顶部装有太阳能板,车窗上可以看到车内的一些物品和驾驶者。背景中可以看到一些树木和建筑物,与这辆充满实用性和可靠性的货车相映成趣。无论是日常通勤还是长途旅行,它都能轻松应对各种路况,成为一道亮丽的风景线。'],
'question': '请把图片中的信息转化为文字描述。'}

{'imgpath': '/home/jovyan/pvc-jiaotong/wqg_data/LLM_data/LLM_Vehicle_ATT/磨憨整理_20241210/已整理/车辆属性:东风-车头-重型货车-棕色_车牌属性0:中国-云南省-云F 92639-黄色-单层-货车_00005229_car9450_00324509.jpg', 
'shape': (1146, 1010, 3), 
'describe': ['这辆威严而坚固的重型货车,品牌为东风,其独特的前脸设计和标志性的东风车标清晰可见。尽管雨幕笼罩,仍能想象它在晴朗日子里的棕色身影。车头正对着镜头,散发出一股不可小觑的力量感。车牌显示该车隶属于中国的云南省,车牌号码为云F 92639,颜色为黄色,单层设计清晰可见,专为货车使用而设。尽管雨水模糊了视线,车牌的黄色依然在雨中格外醒目。\n\n图片中,这辆大型货车在雨天行驶,车顶上装有设备,车窗内驾驶员戴着帽子,与前文描述的东风重型货车相呼应。这辆东风重型货车,无论是从品牌、颜色还是车牌来看,都显得格外引人注目。'],
'question': '用简洁的语言描述图片的主要内容。'}

2 模型微调

微调是基于mc-swift框架来进行微调。微调相关参数:

# 22GB
# 1280*28*28  限制了最大图像像素数量
CUDA_VISIBLE_DEVICES=0,1,2,3 \
MAX_PIXELS=1003520 \
swift sft \
    --model Qwen/Qwen2.5-VL-7B-Instruct \
    --train_type lora \
    --dataset datapath \
    --freeze_vit false \
    --torch_dtype bfloat16 \
    --num_train_epochs 2 \
    --per_device_train_batch_size 3 \
    --per_device_eval_batch_size 1 \
    --learning_rate 1e-4 \
    --lora_rank 8 \
    --lora_alpha 32 \
    --target_modules all-linear \
    --gradient_accumulation_steps 16 \
    --eval_steps 50 \
    --save_steps 300 \
    --save_total_limit 5 \
    --logging_steps 5 \
    --max_length 2048 \
    --warmup_ratio 0.05 \
    --dataloader_num_workers 4 \
    --model_author swift \
    --model_name swift-robot \
    --max_pixels 1003520 \
    --output_dir output

三、效果展示

  • 中东车牌

在这里插入图片描述

输出结果:
{'车辆属性': {
	'车辆品牌': '丰田', 
	'车辆类型': '小轿车', 
	'车辆颜色': '白色', 
	'车辆朝向': '正面'}, 
'车牌属性': {
	'车牌国家': '阿布扎比', 
	'车牌省份': '未知', 
	'车牌号码': '14 11586', 
	'车牌颜色': '白色', 
	'车牌层数': '单层车牌', 
	'车牌用途': '私家车车牌'}}
  • 小轿车在这里插入图片描述
输出结果:
{'车辆属性': {
	'车辆品牌': '宝骏', 
	'车辆类型': '小轿车', 
	'车辆颜色': '红色', 
	'车辆朝向': '正面'}, 
'车牌属性': {
	'车牌国家': '中国', 
	'车牌省份': '云南省', 
	'车牌号码': '云NEW902', 
	'车牌颜色': '蓝色', 
	'车牌层数': '单层车牌', 
	'车牌用途': '燃油车车牌'}}
  • 模糊
    在这里插入图片描述
输出结果:
{'车辆属性': {
	'车辆品牌': '奥迪', 
	'车辆类型': '小轿车', 
	'车辆颜色': '黑色', 
	'车辆朝向': '背面'}, 
'车牌属性': {
	'车牌国家': '中国', 
	'车牌省份': '山东省', 
	'车牌号码': '鲁GCY987', 
	'车牌颜色': '蓝色', 
	'车牌层数': '单层车牌', 
	'车牌用途': '燃油车车牌'}}

注意 :这里结果识别有误,车牌中字符应该是黑,但是识别成鲁,省份会自动识别成山东省。

  • 货车
    在这里插入图片描述
输出结果:
{'车辆属性': {
	'车辆品牌': '乘龙', 
	'车辆类型': '挂车', 
	'车辆颜色': '红色', 
	'车辆朝向': '正面'}, 
'车牌属性': {
	'车牌国家': '中国', 
	'车牌省份': '云南省', 
	'车牌号码': '云N51323', 
	'车牌颜色': '黄色', 
	'车牌层数': '单层车牌', 
	'车牌用途': '货车车牌'}}
### 对Qwen2.5-VL-7B-Instruct进行微调的方法 对于Qwen2.5-VL-7B-Instruct模型微调,可以借鉴LLaVA-Instruct-158K数据集上的训练参数设置。具体而言,在该数据集上执行微调时采用的学习率为2e-5,批处理大小设定为32,并且整个过程持续了3个epoch[^1]。 为了确保模型能够适应特定的任务需求并优化性能表现,建议采取以下措施: #### 数据准备 构建高质量的数据集至关重要。应收集与目标应用场景紧密关联的图像及其对应的描述或问答对作为训练样本。这些样例需具备足够的多样性以覆盖各种可能的情况,从而帮助模型更好地泛化到未见过的数据。 #### 训练配置调整 基于先前的经验教训,当涉及到视觉问答任务时,应当特别注意输入提示的设计。为了避免模型倾向于生成过短的回答,可尝试改进提示模板,使其更加精确地指导预期输出格式。例如,可以通过显式指定希望获得的具体信息量级来引导更详细的回应[^2]。 此外,考虑到不同组件之间的协作机制,如果计划利用多模态架构,则有必要评估各部分间的交互效果以及整体系统的稳定性。这或许意味着要探索不同于传统方式的新颖设计方案,比如引入混合变换器结构来增强跨模式融合的能力[^3]。 ```python from transformers import AutoModelForVision2Seq, AutoTokenizer, Trainer, TrainingArguments model_name = "Qwen/Qwen2.5-VL-7B-Instruct" tokenizer = AutoTokenizer.from_pretrained(model_name) model = AutoModelForVision2Seq.from_pretrained(model_name) training_args = TrainingArguments( output_dir="./results", num_train_epochs=3, per_device_train_batch_size=32, learning_rate=2e-5, logging_dir='./logs', ) trainer = Trainer( model=model, args=training_args, train_dataset=train_dataset, tokenizer=tokenizer, ) trainer.train() ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

五小白

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值