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

qwen3-vl 大模型lora微调官方版

这次的教程我们将使用官方的指定demo数据来进行qwen3-vl的微调并且将lora得到的内容进行合并使用新的模型来进行推理验证。由于官方库有些内容没有实现所以这里fork了一个新的仓库来实现一下管理gitclone https://github.com/chan-yuu/Qwen3-VL.git在正式微调之前我们先来认识一下这里的模型的架构是什么样的。主要分为了三个部分第一个是interleaved-MRoPE是一个随时间、宽度和通过位置嵌入确定的高度增强长视距的视频推理。第二个是DeepStack深度堆栈融合了多级ViT特征提取来捕捉细粒度细节和锐化的图文对齐。第三个是图像时间戳对齐超越T-RoPE来精确的基于时间戳事件定位用于更强的视频时序建模。其实我还是没有看懂但是我们可以求助一下llm。在主干大模型中dense/moe说明qwen3-vl既有稠密版也有混合专家版。家族包括dense的2B/4B/8B/32B以及MoE的30B-A3B、235B-A22B。它与底下的vision encoder的关系在于vision encoder负责把图像视频变为模型能看懂的视觉tokenLM decoder把图像和文本token统一放进大模型里推理并生成答案。下方图片和视频先进入vision encoder其中的图片包括了Picture 1Picture 2Picture 3Video 1这些都是视觉输入先进入了encoder中官方说明中指出qwen3-vl的一项结构升级就是通过视觉侧和语言侧更紧的对齐并使用多层视觉特征而不是只拿最后一层视觉表示。图中的native resolution input表示输入图像尽量按原始分辨率处理而不是一开始就强行缩到固定最小尺寸。这个也是qwen-vl系列强调的提升对文档、细粒度细节、复杂版面的感知能力。所以刚才的的三点总结就是在说它有更强的OCR、更强长文档结构解析和更细细粒度视觉理解。小方块表示的就是encoder输出的token序列这些token序列送进decoder中具体来说分成了文本token和vision token也就是一种interleaved multimodal inputs即文本图片视频交错混合输入。我们还可以看到一个有意思的现象是各个图片的token相差很大Picture 111427 tokensPicture 28 tokensPicture 31125 tokens这是因为不同分辨率、不同尺寸、不同视觉压缩结果对应的视觉token数量相差很多。native resolution就是原始分辨率说明图像本身是按照自己的分辨率进行原始输入的这样的token也就是表现他们的特点。在视频部分中有一串连续帧包括了时间序列它是把多帧送入了vision encoder再变成视觉token时间信息不只靠视觉位置编码而是把时间戳以文本形式更明确的对齐到视频内容上提升第几秒发生了什么的定位能力这项升级就是从T-RoPE走向更精确的timestamp-grounded event localization。总的来说就是视频帧提供视觉内容文本时间戳提供更明确的时间锚点二者一起进入大模型中。deepstack在右边vision encoder部分这是最关键的创新点也不容易看懂很多VLM的做法是图片→vision encoder只取最后一层视觉特征变成了视觉token一次性送给LLM但是deep stack不同不只使用视觉编码器的最后输出还把多个层级的视觉特征注入到了LLM的不同层里。官方的描述是DeepStack fuses multi-level ViT features技术报告摘要则说它effectively leverages multi-level ViT features to tighten vision-language alignment。也就是浅层视觉特征偏向于局部纹理、边缘、字形、小细节中层视觉特征更偏区域、部件、局部结构高层视觉特征更偏语义、物体、整体理解。deep stack的作用就是把这些分层的信息分层的送进LLM。最后总结一下图片/视频先经过 Vision Encoder变成视觉 token文本 token 和视觉 token 交错组成统一上下文送入 Qwen3 的语言解码器同时多层视觉特征通过 DeepStack 持续注入到 LLM 的不同层以增强细节感知、OCR、空间理解和视频时序理解。接下来我们就是对模型进行微调了这里使用的是80G显存的设备进行微调不过3B的模型应该本地也可以尝试一下LoRa微调。我们主要是通过sft(supervised fine-tuning)监督微调来实现所以需要准备QA问答对在https://github.com/chan-yuu/Qwen3-VL/tree/main/qwen-vl-finetune/demo文件夹下含有对应的json文件和图片文件因为是一个视觉模型的识别所以是需要传入实际的图像进行编码的。其中的json文件指向的是图片对话两个部分。这里我们就主要使用这个json来进行训练。当然要注意数据比较少的情况下无法看出实际的效果这里我们主要是跑通流程具体的数据集准备这里就不赘述。不过需要注意的是https://github.com/chan-yuu/Qwen3-VL/blob/main/qwen-vl-finetune/tools/process_bbox.ipynb中专门指出了如何通过已有的标记框来进行处理得到大模型需要的编码信息。同时在https://github.com/chan-yuu/Qwen3-VL/blob/main/qwen-vl-finetune/README.md中也说明了ground任务的数据集结构{image:demo/COCO_train2014_000000580957.jpg,conversations:[{from:human,value:image\nLocate house in this image and output the bbox coordinates in JSON format.},{from:gpt,value:{\nbbox_2d: [135, 114, 1016, 672]\n}}]}但是实测下来这里还有不足也就是应该同时标准类别和位置信息才是完整的gpt的输出这里可能得进行额外的测试才能得到更加合理的数据集结构。并且要特别说明的就是这个COCO_train2014_000000580957.jpg与demo中的图片不是一个。接下来进入云端服务器来实操官方的python推荐版本没有明确给出我们使用python3.12即可通过conda创建虚拟环境conda create-nqwen3_vlpython3.12然后进入环境中下载相关的依赖项conda activate qwen3_vlpipinstall-rrequirements_web_demo.txt然后再安装一些额外的依赖项torch2.6.0torchvision0.21.0transformers4.57.0.dev0deepspeed0.17.1triton3.2.0accelerate1.7.0torchcodec0.2peft0.17.1flash_attn2.7.4.post1这里我们先安装前面的内容最后一个flash_attn比较大经常会因为网络原因无法安装所以我们这里手动进行安装前往github的下载页一定要找对其余的基本都是无法与torch.2.6.0匹配的。以上搞定之后环境就可以使用了我们还需要去下载基础模型来调用这里我们通过脚本来直接下载即可from modelscopeimportsnapshot_download# 指定模型的下载路径cache_dirxxx/model# 补充实际的下载目录# 调用 snapshot_download 函数下载模型model_dirsnapshot_download(Qwen/Qwen3-VL-2B-Instruct,cache_dircache_dir)print(f模型已下载到: {model_dir})在微调之前需要先准备数据集并进行处理准备好的数据集就是一个图片文件夹以及一个json文件我们在https://github.com/chan-yuu/Qwen3-VL/blob/main/qwen-vl-finetune/qwenvl/data/init.py __init.py__文件中添加对应的数据集信息这样注册之后微调时就可以正常通过my_dataset来访问数据集了。注意给对路径这里我们可以考虑直接给全局路径。最后就是直接进行微调了他准备了一个一键微调的脚本我们修改上面的一些配置就可以训练了#!/bin/bash# # Distributed Configuration# MASTER_ADDR127.0.0.1# [Required] Master node IP for multi-GPU trainingMASTER_PORT$(shuf-i20000-29999-n1)# Random port to avoid conflictsNPROC_PER_NODE$(nvidia-smi --list-gpus|wc-l)# Automatically detects available GPUs# # Path Configuration# MODEL_PATH/mnt/project_modelware/zhaojian/cyun/qwen3-vl/model/Qwen/Qwen3-VL-2B-Instruct# [ModelArguments] Pretrained model pathOUTPUT_DIR./checkpoints# Directory for saving checkpointsCACHE_DIR./cache# [TrainingArguments] Cache directory for models# # Model Configuration# DATASETSmy_dataset%100# [DataArguments] Dataset with sampling rate# # Training Hyperparameters# torchrun--nproc_per_node$NPROC_PER_NODE\--master_addr$MASTER_ADDR\--master_port$MASTER_PORT\/mnt/project_modelware/zhaojian/cyun/qwen3-vl/Qwen3-VL/qwen-vl-finetune/qwenvl/train/train_qwen.py\--model_name_or_path$MODEL_PATH\--tune_mm_llmTrue\--tune_mm_visionFalse\--tune_mm_mlpFalse\--dataset_use$DATASETS\--output_dir$OUTPUT_DIR\--cache_dir$CACHE_DIR\--bf16\--per_device_train_batch_size4\--gradient_accumulation_steps4\--learning_rate2e-7\--mm_projector_lr1e-5\--vision_tower_lr1e-6\--optimadamw_torch\--model_max_length4096\--data_flattenTrue\--data_packingTrue\--max_pixels451584\--min_pixels12544\--video_fps2\--video_max_frames8\--video_min_frames4\--video_max_pixels1306112\--video_min_pixels200704\--num_train_epochs100\--warmup_ratio0.03\--lr_scheduler_typecosine\--weight_decay0.01\--logging_steps10\--save_steps500\--save_total_limit3\--lora_enableTrue\--lora_r8\--lora_alpha16\--lora_dropout0.0\--deepspeedzero3.json参考我的配置即可进行训练之前我们需要先登录一下wandb来记录训练的细节信息也就是wandb login然后通过wandb的密钥进行登录认证认证完成之后需要再wandb login验证一下如果出现了个人信息那就表明成功了。最后直接运行bashsft_3.14.sh注意训练之前需要保证当前文件夹下没有checkpoints文件夹他也是模型的保存文件夹否则无法训练可以看到这里的损失其实是不好计算的不是文本而是token的训俩。接下来需要使用训俩好的模型进行推理。我们先通过未合并的模型来测试此时的结果是python inference.py--model_path/mnt/project_modelware/zhaojian/cyun/qwen3-vl/model/Qwen/Qwen3-VL-2B-Instruct--checkpoint_path/mnt/project_modelware/zhaojian/cyun/qwen3-vl/Qwen3-VL/qwen-vl-finetune/scripts/checkpoints--image/mnt/project_modelware/zhaojian/cyun/qwen3-vl/Qwen3-VL/qwen-vl-finetune/demo/images/10095.png--promptIs the value of Favorable 38 in 2015?结果是当然从效果来说的话这点数据最终的效果其实是一般的然后我们使用那一张grouding的数据来训俩得到的内容依然是无法准确的定位。除了inference.py之外tools中还可以使用merge_lora它可以把训俩好的模型嵌入到原本的模型中得到最终的版本可以直接通过这个来和模型进行对话。

相关文章:

qwen3-vl 大模型lora微调官方版

这次的教程我们将使用官方的指定demo数据来进行qwen3-vl的微调,并且将lora得到的内容进行合并,使用新的模型来进行推理验证。 由于官方库有些内容没有实现,所以这里fork了一个新的仓库来实现一下管理, git clone https://github.c…...

下载Anaconda与环境配置

1、官网:Download Anaconda Distribution | Anaconda 2、登录后下载版本 3、默认安装即可 4、配置环境 打开系统属性-环境变量-添加path 添加anaconda路径 添加anaconda下的scripts路径 添加anaconda下的labs路径 5、验证 进入命令窗口 winr 输入cmd 在…...

毕业神器怎么选?国内篇看“毕业之家”

我为你梳理了毕业之家、PaperRed的核心信息,并推荐了两款专注于英文论文写作的高效工具。 📊 两款中文主力工具速览 这两款工具都非常适合中文学术写作的全流程,各有侧重: 工具名称官网信息与核心优势主要特点适合人群毕业之家…...

自学黑客的11个步骤,新手自学网络安全零基础入门到精通全干货解析,学黑客技术收藏这一篇就够了

黑客攻防是一个极具魅力的技术领域,但成为一名黑客毫无疑问也并不容易。你必须拥有对新技术的好奇心和积极的学习态度,具备很深的计算机系统、编程语言和操作系统知识,并乐意不断地去学习和进步。 如果你想成为一名优秀的黑客,下面…...

【Java 开发日记】你分得清 Prompt、Agent、Function Call、Skill、MCP 吗?

前言随着 AI 的迅速崛起,有很多词汇你可能会经常听到,但是让你来详细地说一下它们各自的区别与联系,有很多人还是回答不上来的,这期咱们就来详细地讲解一下它们各自的区别与联系,让你对它们有更多的了解。可以把它们想…...

气功点穴精粹

整理老书发再的,不敢私藏特分享给大家 链接1: https://pan.baidu.com/s/124M0S76gTc6FGAZSr4jBmg?pwd3mu3 链接2:https://pan.quark.cn/s/8f2c95a3d5bb...

2026智能体技术入门指南:轻松掌握大模型驱动下的工业变革,速收藏!

2025年被称为“智能体元年”,智能体技术凭借其自主性、反应性和社交能力,在工业领域展现出巨大潜力。本文介绍了基于大模型的智能体是什么,以及其在工业场景中的应用,特别是在数据治理和智慧运维方面的革新。智能体通过规划、记忆…...

Oxyde ORM:以 Rust 为核的类型安全异步 ORM 新势力

【导语:Oxyde ORM 作为一款以 Pydantic 为中心的类型安全异步 ORM,核心采用高性能 Rust 编写。它受 Django ORM 启发,注重明确性,为开发者带来现代、友好的工作流程。】Oxyde ORM:Rust 内核的高性能 ORMOxyde ORM 核心…...

亚马逊AI编码事故引发服务中断,安全隐患亟待解决

AI编码事故致亚马逊服务中断近6小时本周二,亚马逊电商业务召集大批工程师开会,深入探讨一系列服务中断问题,其中涉及与使用AI编码工具相关的事故。近几个月,亚马逊出现了“一系列事故”,影响范围广,且存在“…...

2026年靠谱的iPaaS厂商有哪些?iPaaS系统集成产品综合分析和选型指南

IDC 报告明确显示:2025年中国iPaaS市场规模,将持续保持25%以上的高速增长。你是否曾遭遇过这样的困扰:企业的云端系统不断增加,数据却变得愈发“分散”,业务之间的协作效率极其低下,信息孤岛问题也愈发严重…...

MySQL 索引下推(Index Condition Pushdown, ICP)机制详解

MySQL 索引下推(Index Condition Pushdown, ICP)机制详解 一、什么是索引下推? 索引下推(Index Condition Pushdown,简称 ICP)是 MySQL 5.6 版本引入的一种查询优化技术,默认开启。它的核心思想…...

问卷设计“智变”之旅:书匠策AI如何重塑学术调研新生态?

在学术研究的浩瀚征途中,问卷设计作为数据收集的前沿阵地,其重要性不言而喻。然而,传统问卷设计方法往往耗时费力,且易受主观因素影响,导致数据质量参差不齐。随着人工智能技术的蓬勃发展,书匠策AI科研工具…...

真实的重量:为何AI视频无法取代传统企业宣传片拍摄

2026年,生成式AI视频技术已呈燎原之势,从“文本生成视频”到“一键成片”,效率与成本的颠覆性优势令人咋舌。然而,在高端企业宣传片、品牌形象片及深度叙事领域,传统实拍依然占据不可动摇的核心地位。本文从情感颗粒度…...

OpenCV 案例六【道路裂缝检测】

目录:一、环境准备1、Anaconda 环境配置2、图像处理方法介绍二、代码案例三、运行效果一、环境准备 1、Anaconda 环境配置 环境配置参考前面章节: OpenCV 案例一【人脸检测】 2、图像处理方法介绍 主要用到了自适应阈值二值化(Adaptive …...

问卷设计“新老对决”:书匠策AI如何重塑科研数据收集新生态?

在科研的浩瀚征途中,问卷设计作为数据收集的“先锋官”,其重要性不言而喻。传统问卷设计,如同一位经验丰富的老匠人,凭借着多年的手艺和直觉,雕琢出一个个数据收集的“容器”。然而,随着人工智能时代的到来…...

AnswerThis:打造科学知识操作系统的新征程

AnswerThis:开启科学研究工作新变革AnswerThis 正在为企业打造科学知识操作系统,其智能代理可自主搜索、整合并撰写基于证据的研究报告。该平台拥有超 20 万名来自大学和《财富》500 强公司的研究人员,且正深入生命科学领域,致力于…...

别再手动调 Prompt 了!这款国产神器让 AI 输出质量提升 300%!免费开源!

你是不是也这样? 写 10 版提示词,AI 还是答非所问想让小模型做角色扮演,结果它“人格分裂”提取知识图谱,输出格式天天变本地部署 Ollama,但 Web 工具连不上…… 而今天,我要介绍的这个 GitHub 23k Star …...

大语言模型团队:分布式系统视角下的新突破

【导语:随着大语言模型(LLMs)能力增强,大语言模型团队备受关注。但目前缺乏解决关键问题的框架,康奈尔大学研究人员建议以分布式系统为基础创建和评估大语言模型团队,为该领域带来新见解。】大语言模型团队…...

搜索之DFS

一.搜索 1.概念(暴力):按照题目要求构造可能的答案,对所有可能的答案进行枚举,通过穷尽所有的可能来找最优解,或者统计合法解的个数 2.种类:搜索分为DFS和BFS 3.优化:搜索有很多优化方式&…...

javafx中能有异步调用业务方法吗

JavaFX 中完全可以进行异步调用业务方法,这是处理耗时操作(如网络请求、数据库查询、文件IO)的标准做法,以避免阻塞 JavaFX 应用程序线程(UI线程),保持界面响应。以下是几种常用的异步调用方式&…...

2026年护理考试TOP5押题率高机构最新排名揭晓

大家好,我是你们的老朋友,今天要和大家分享的是2026年护理考试押题率高的培训机构最新排名。对于即将参加护士资格、初级护师、主管护师考试的小伙伴们来说,选择一个靠谱的培训机构至关重要。那么,哪些机构在押题方面表现突出呢&a…...

fs-cli连接到不同的freeSwitch

fscli不仅可以连接到本机的FreeSWITCCH,也可以连接到其他机器的FreeSWITCH上(或本机另外的FreeSWITCH实例上),通过在用户主目录下编辑配置文件.fs_cli_conf(注意前面的点"."),可以定义要连接的多个机器标签:注意,如果要连接到其他机器,要确保目标机器的FreeSWITCH的E…...

书匠策AI:问卷设计领域的“匠心”与“智心”之争

在学术研究的广袤天地中,问卷设计作为数据收集的先锋,其重要性不言而喻。传统问卷设计,如同一位老匠人,凭借多年的经验和精湛的手艺,一砖一瓦地搭建起研究的基石。然而,随着科技的飞速发展,书匠…...

PTA 6-12 二叉搜索树的操作集

本题要求实现给定二叉搜索树的5种常用操作。函数接口定义:BinTree Insert( BinTree BST, ElementType X ); BinTree Delete( BinTree BST, ElementType X ); Position Find( BinTree BST, ElementType X ); Position FindMin( BinTree BST ); Position FindMax( Bin…...

前架构师转行AI风水师:给机房看罗盘——软件测试从业者的专业启示

在数字化转型的浪潮中,一名前IT架构师转型为“AI风水师”,专为机房(如数据中心)布局提供风水指导,这看似荒诞的跨界实则蕴含深刻的测试专业智慧。作为软件测试从业者,我们习惯于用严谨的逻辑工具预测风险、…...

摆脱浏览器书签混乱!Fenrus+cpolar解锁公网访问新玩法

Fenrus 是一款主打个性化的开源导航页工具,支持添加自定义网站链接、切换暗色 / 亮色主题、设置快捷搜索引擎,还能整合天气、壁纸轮播等小部件,依托 Docker 可快速部署在极空间、群晖 NAS 或普通服务器上,无需复杂操作就能搭建专属…...

计算机毕业设计java基于人脸识别的医疗保险系统的设计与实现 基于面部识别技术的智慧医保服务平台的设计与开发 融合生物特征识别的医疗健康保险管理系统的构建与实现

计算机毕业设计java基于人脸识别的医疗保险系统的设计与实现0a8359(配套有源码 程序 mysql数据库 论文) 本套源码可以在文本联xi,先看具体系统功能演示视频领取,可分享源码参考。随着我国医疗保障体系的不断完善和人口老龄化进程的加快&#…...

用Selenium操控寺庙:香火钱自动分账系统

一、系统架构与测试挑战寺庙香火分账系统采用“支付-清算-分账”三层架构:前端支付层:多殿堂独立收款码(微信/支付宝/云闪付)及现金通道,需兼容老年香客的无感支付流程规则引擎层:预设阶梯分账比例&#xf…...

数据类型之——变量

形式:数据类型 变量 数据 例如:int age 18;byte ss22;short dd 33;long ff 44;float gg 55.5f;double hh 66.6;char jj z;boolean kk false;boolean llture ;...

C语言lesson6

#选择结构程序设计一、关系运算符1.1以“1”代表“真”,以“0”代表“假”(在C的逻辑运算中)例题1:表达式的结果是0或者1当a3,b2,c1时 a>b的值为“真”,表达式值为1 (a>b)c的值为“真”&a…...