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

阿里重磅发布Qwen3最佳开源LLM,击败 DeepSeek-R1,Llama4 Qwen3 在架构设计上融合了前沿的技术理念,延续并优化了 Transformer 架构。通过精心调整网络层数、注意力机制等关键组件,显著提升了模型对长序列文本的处理能力与效率。 阅读详情

这次的教程我们将使用官方的指定demo数据来进行qwen3-vl的微调,并且将lora得到的内容进行合并,使用新的模型来进行推理验证。

由于官方库有些内容没有实现,所以这里fork了一个新的仓库来实现一下管理,

git clone 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负责把图像视频变为模型能看懂的视觉token,LM decoder:把图像和文本token统一放进大模型里推理并生成答案。

下方,图片和视频先进入vision encoder,其中的图片包括了:

  • Picture 1
  • Picture 2
  • Picture 3
  • Video 1

这些都是视觉输入,先进入了encoder中,官方说明中指出,qwen3-vl的一项结构升级就是通过视觉侧和语言侧更紧的对齐,并使用多层视觉特征,而不是只拿最后一层视觉表示。图中的native resolution input表示输入图像尽量按原始分辨率处理,而不是一开始就强行缩到固定最小尺寸。这个也是qwen-vl系列强调的提升对文档、细粒度细节、复杂版面的感知能力。所以刚才的的三点总结就是在说它有更强的OCR、更强长文档结构解析和更细细粒度视觉理解。

小方块表示的就是encoder输出的token序列,这些token序列送进decoder中,具体来说,分成了文本token和vision token,也就是一种interleaved multimodal inputs,即文本图片视频交错混合输入。

我们还可以看到一个有意思的现象是,各个图片的token相差很大:

  • Picture 1:11427 tokens
  • Picture 2:8 tokens
  • Picture 3:1125 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": "{\n"bbox_2d": [135, 114, 1016, 672]\n}"
        }
    ]
}

但是实测下来这里还有不足,也就是应该同时标准类别和位置信息才是完整的gpt的输出,这里可能得进行额外的测试才能得到更加合理的数据集结构。并且要特别说明的就是这个COCO_train2014_000000580957.jpg,与demo中的图片不是一个。

接下来进入云端服务器来实操,官方的python推荐版本没有明确给出,我们使用python3.12即可,通过conda创建虚拟环境

conda  create -n qwen3_vl python=3.12

然后进入环境中,下载相关的依赖项:

conda activate qwen3_vl
pip install -r requirements_web_demo.txt

然后再安装一些额外的依赖项:

  • torch==2.6.0
  • torchvision==0.21.0
  • transformers==4.57.0.dev0
  • deepspeed==0.17.1
  • triton==3.2.0
  • accelerate==1.7.0
  • torchcodec==0.2
  • peft==0.17.1
  • flash_attn==2.7.4.post1

这里我们先安装前面的内容,最后一个flash_attn比较大,经常会因为网络原因无法安装,所以我们这里手动进行安装,前往github的下载页,一定要找对
在这里插入图片描述

其余的基本都是无法与torch.2.6.0匹配的。以上搞定之后,环境就可以使用了,我们还需要去下载基础模型来调用,这里我们通过脚本来直接下载即可:

from modelscope import snapshot_download

# 指定模型的下载路径
cache_dir = 'xxx/model' # 补充实际的下载目录
# 调用 snapshot_download 函数下载模型
model_dir = snapshot_download('Qwen/Qwen3-VL-2B-Instruct', cache_dir=cache_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_ADDR="127.0.0.1"                     # [Required] Master node IP for multi-GPU training
MASTER_PORT=$(shuf -i 20000-29999 -n 1)     # Random port to avoid conflicts
NPROC_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 path
OUTPUT_DIR="./checkpoints"                   # Directory for saving checkpoints
CACHE_DIR="./cache"                          # [TrainingArguments] Cache directory for models
# ======================
# Model Configuration
# ======================
DATASETS="my_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_llm True \
            --tune_mm_vision False \
            --tune_mm_mlp False \
            --dataset_use $DATASETS \
            --output_dir $OUTPUT_DIR \
            --cache_dir $CACHE_DIR \
            --bf16 \
            --per_device_train_batch_size 4 \
            --gradient_accumulation_steps 4 \
            --learning_rate 2e-7 \
            --mm_projector_lr 1e-5 \
            --vision_tower_lr 1e-6 \
            --optim adamw_torch \
            --model_max_length 4096 \
            --data_flatten True \
            --data_packing True \
            --max_pixels 451584 \
            --min_pixels 12544  \
            --video_fps 2 \
            --video_max_frames 8 \
            --video_min_frames 4 \
            --video_max_pixels 1306112 \
            --video_min_pixels 200704 \
            --num_train_epochs 100 \
            --warmup_ratio 0.03 \
            --lr_scheduler_type "cosine" \
            --weight_decay 0.01 \
            --logging_steps 10 \
            --save_steps 500 \
            --save_total_limit 3 \
            --lora_enable True \
            --lora_r 8 \
            --lora_alpha 16 \
            --lora_dropout 0.0 \
            --deepspeed zero3.json

参考我的配置即可,进行训练之前,我们需要先登录一下wandb来记录训练的细节信息,也就是

wandb login

然后通过wandb的密钥进行登录认证,认证完成之后需要再wandb login验证一下,如果出现了个人信息那就表明成功了。

最后直接运行

bash sft_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  --prompt "Is the value of Favorable 38 in 2015?"

结果是:

当然,从效果来说的话,这点数据最终的效果其实是一般的:
在这里插入图片描述
在这里插入图片描述

然后我们使用那一张grouding的数据来训俩,得到的内容依然是无法准确的定位。

在这里插入图片描述

除了inference.py之外,tools中还可以使用merge_lora,它可以把训俩好的模型嵌入到原本的模型中得到最终的版本,可以直接通过这个来和模型进行对话。

Qwen-3 微调实战指南 Qwen3 MoE 架构动态专家选择机制LoRA 微调参数配置与显存优化RAG + 微调协同增强领域知识双模式推理在复杂任务中的应用。 阅读详情

相关推荐

视觉能力倍增!Qwen3-VL史诗级更新!多维度客观测评Qwen3-VL-235B-A22B-Instruct!OCR精准识别模糊扫描件、繁体古籍轻松提取、9分钟视频内容精准分析、目标人物精准定位

视觉 + 语言双强能力:在视觉理解、语言理解、推理表达上都高度强化长上下文与视频处理能力:可处理大规模文本 / 视频内容空间 / 时间推理优势:具有较强的时空理解能力代码 / 界面生成能力:支持视觉 → 代码 / 结构化输出灵活部署方案:Dense / MoE 架构、Instruct / Thinking 版本,可按需选择对于开发者、研究者甚至未来产品化落地而言,Qwen3-VL 是一个极具潜力的工具。它让我们更靠近“真正能看、能思考、能说”的 AI 模型。

m0_71165399的博客 1481

程序员必学收藏:Qwen3-VL全面解析 - Qwen系列最强视觉语言模型架构与应用详解

Qwen3-VL是Qwen系列最强视觉语言模型,具备长上下文视频理解(256K-1M)和高级空间感知能力。其架构采用视觉编码器+语言模型解码器设计,将视觉信息作为特殊token深度注入到语言模型多个层级,实现深度视觉-语言交互。支持多图多视频混合输入,能理解物体位置、视角和遮挡关系,代表多模态学习从"模态拼接"向"统一建模"的转变。

2401_85373691的博客 4023

Qwen3-VL-8B Lora微调打造定制化菜品识别大模型

采用“Lora微调 + 全参数训练”的两阶段策略,对Qwen3-vl 8B多模态大模型进行深度定制,打造高精度、专属化的垂直领域菜品识别大模型。

weixin_40117655的博客 838

Qwen3-VL LoRA 微调 和 部分参数全量微调

flyfish

二分掌柜的 5381

Qwen3-VL大模型LoRA微调实战指南

LoRA(Low-Rank Adaptation)是一种参数高效微调技术,通过低秩矩阵分解实现大模型轻量化适配。其核心原理是在原始模型参数旁路添加可训练的低秩矩阵,既能保留预训练知识,又能显著降低计算资源消耗。在NLP和多模态领域,LoRA技术可节省70%以上显存,成为大模型领域适配的首选方案。以Qwen3-VL多模态大模型为例,官方LoRA方案支持注意力矩阵定向微调,配合HuggingFace生态实现开箱即用。典型应用场景包括电商图文问答、医疗影像分析等,实测显示在RTX 4090单卡环境下即可完成高效微

weixin_30905133的博客 390

十三、FLUENT蒸发/冷凝模型实战:从沸腾模拟到常温蒸发的UDF进阶

本文深入探讨FLUENT蒸发/冷凝模型的应用实践,从沸腾模拟到常温蒸发的UDF进阶。通过分析相变模型的核心逻辑、关键陷阱及UDF动态饱和温度场的实现,帮助工程师准确模拟不同场景下的蒸发/冷凝过程。结合太阳能蒸馏器等工程案例,提供优化方案和常见问题解决方案,显著提升模拟精度与效率。

weixin_42548893的博客 571

Qwen-VL图文多模态大模型LoRA微调指南

Qwen-VL 是阿里云研发的大规模视觉语言模型(Large Vision Language Model, LVLM)。Qwen-VL 可以以图像、文本、检测框作为输入,并以文本和检测框作为输出。Qwen-VL 系列模型的特点包括:多语言对话模型:天然支持英文、中文等多语言对话,端到端支持图片里中英双语的长文本识别;多图交错对话:支持多图输入和比较,指定图片问答,多图文学创作等;开放域目标定位:通过中文开放域语言表达进行检测框标注;本文基于此进行微调。

5626

2025反爬终极方案:Python破解Cloudflare v2行为指纹,设备伪装+轨迹模拟拦截率压至1%

Cloudflare v2的反爬逻辑越来越接近“人类行为识别”,单纯的技术破解已失效,核心竞争力变成“模拟真实用户的能力”。本文的终极方案本质是“全方位复刻人类行为”——从设备指纹到操作轨迹,从网络特征到交互模式,让爬虫成为“无法被区分的真实用户”。这套方案的优势是“通用性强”,不仅适用于Cloudflare v2,也能破解大多数高反爬网站(如小红书、知乎、跨境电商)的行为检测;且代码可直接复用,新手只需替换目标URL和数据提取逻辑,就能快速落地。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 2353

Qwen2-VL多模态大模型微调实战教程

Qwen2-VL是通义千问团队最近开源的大语言模型,由阿里云通义实验室研发。以Qwen2-VL作为基座多模态大模型,通过的方式实现特定场景下的OCR,是学习的入门任务。本文我们将简要介绍基于 transformers、peft 等框架,使用 Qwen2-VL-2B-Instruct 模型在上进行Lora微调训练,同时使用监控训练过程与评估模型效果。

SoulmateY的博客 1万+

DAIC-WOZ抑郁数据集实战:从申请到特征提取的全流程避坑指南

本文详细解析了DAIC-WOZ抑郁数据集从申请到特征提取的全流程,提供了实用的避坑指南和代码模板。涵盖数据获取技巧、多模态特征工程(面部动作单元、音频特征、文本处理)以及样本不平衡解决方案,帮助研究者高效处理这一经典抑郁分析数据集。

weixin_29196315的博客 170

如何在huggingface上申请下载使用llama2/3模型

huggingface-cli download --resume-download 模型名称 --local-dir 存放模型的位置 --local-dir-use-symlinks False --resume-download --token token序列号xxxxxxx。登录huggingface,在模型详情页面上,找到这个表单,填写内容,提交申请。需要使用梯子,country填写梯子的位置吧(比如美国)等待一小时左右,会有邮件通知。

a61022706的博客 1万+

【多模态大模型实战】使用LoRA微调Qwen2.5-VL

本文将直接使用 Qwen2.5-VL-7B-Instruct 模型在 coco_2014_caption 数据集上进行LoRA微调训练,旨在熟悉Qwen2.5-VL数据处理和训练流程。 GitHub地址:https://github.com/Donvink/Qwen2.5-VL-Finetune

https://github.com/Donvink,专注于计算机视觉、目标检测、目标跟踪等方向 9477

OpenDRIVE车道计算避坑指南:为什么你的poly3曲线总对不齐?

本文深入解析OpenDRIVE标准中车道几何计算的三大核心难题:参数化三次多项式(ParamPoly3)的坐标系转换与参数映射、车道偏移与宽度的优先级判定,以及螺旋线(Spiral)接续的平滑性保障。通过实战案例与代码示例,提供了一套避免车道线错位与曲率不连续的精确计算与验证方法,是高精地图开发与仿真场景构建的实用避坑指南。

q9w8e7r6t5的博客 421

LLaMA-Factory微调多模态大模型Qwen3-VL

本文介绍了使用LLaMA-Factory微调多模态大模型Qwen3-VL的全流程。首先配置NVIDIA显卡驱动,确保显存满足要求(12G以上)。然后通过LLaMA-Factory进行模型微调,包括数据准备、参数设置和训练启动。微调完成后,将LoRA适配器与基础模型合并导出完整模型。最后使用vLLM部署服务,并提供了API调用示例进行多模态对话测试。整个过程涵盖了从环境配置到模型部署的完整链路,适用于Qwen3-VL系列模型的定制化开发。

AI吃大瓜的博客 4675

【PyTorch项目实战】之ResNet系列:resnet18、resnet34、resnet50、resnet101、resnet152

ResNet (Residual Network) :是一种深度卷积神经网络(CNN)架构,其核心思想是引入残差学习(Residual Learning)机制,通过跳跃连接(skip connections)来解决深层网络训练中的退化问题。

📷 图像处理践行者 | 传统算法 · 深度学习 · 多模态 | 分享实战经验与技术洞见,探索从像素到智能的无限可能。 6372

基于STM32、HAL库的ZMOD4510AI4R气体传感器驱动程序设计

ZMOD4510AI4R是Renesas公司推出的一款数字空气质量传感器,主要用于检测臭氧(O₃)和总挥发性有机化合物(TVOC)浓度。(status & 0x80)) // 检查数据就绪位。// 等待测量完成 (实际应用中应该使用非阻塞方式)// 转换为ppb (简化转换,实际应根据传感器文档校准)* @param hzmod: ZMOD4510句柄。* @param tvoc: TVOC浓度(ppb)* @param ozone: 臭氧浓度(ppb)* @param hi2c: I2C句柄。

corlin6688的博客 311

【大模型量化】Qwen3-VL + Lora监督微调 + 4bit量化 | VLM模型

本文介绍了对Qwen3-VL-4B多模态模型进行LoRA监督微调及4bit量化的完整流程。首先使用LLaMAFactory工具进行LoRA微调,采用4bit QLoRA量化策略降低显存消耗,设置学习率3e-5、批大小2等参数完成3轮训练。随后合并基础模型与LoRA权重,并通过BitsAndBytes工具进行4bit量化,模型大小从8.3G压缩至2.7G。量化后的模型仍能准确完成物体检测任务,在办公场景测试中成功识别桌子、椅子等物体并输出边界框和属性描述。该方案使大模型能在消费级显卡上运行,为轻量化部署提供了

黎国溥 3095

【FISCO BCOS】二十、多机部署区块链

实际开发中,为了满足高可用性和高容错性的需求,往往会采用多级部署区块链的方式,今天介绍一下FISCO BCOS的多机部署流程。

naihe_fish的博客 3645

『大模型量化』Qwen3-VL + Lora监督微调 + 8bit量化 + 实践推理

本文详细介绍了Qwen3-VL-4B多模态模型的LoRA微调、8bit量化及推理实践。首先使用LLaMAFactory对Qwen3-VL-4B进行LoRA监督微调,通过8bit量化将模型从8.3G压缩到4.6G。文章提供了两个量化后模型的应用案例:1)单张图像详细描述生成;2)特定类别物体检测与可视化,展示了模型在保持性能的同时显著降低资源占用的效果。实践表明,8bit量化后的Qwen3-VL-4B模型仍能准确完成多模态任务,为轻量化部署提供了可行方案。

黎国溥 3292

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

Qwen3-VL-8B模型LoRA微调实战指南

详解如何使用LoRA技术对Qwen3-VL-8B轻量级多模态模型进行高效微调,支持中文图文理解与生成,适用于电商、医疗等场景,在单卡GPU上即可完成训练与部署。

weixin_34640289的博客 2875

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

Qwen3-VL + LLama-Factory进行针对Grounding任务LoRA微调

本文介绍了Qwen3-VL模型在图片目标检测任务中的本地推理方法及LoRA微调技术。本地推理部分详细说明了如何部署Qwen3-VL模型,加载预训练权重,并实现高效的图片目标检测功能。LoRA微调部分阐述了如何通过低秩适应技术对模型进行轻量级训练,以提升其在特定任务上的性能,同时减少计算资源消耗。

wwwwww7733的博客 2822

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain&#39;s apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath(&#39;DeepLearnToolbox&#39;));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand(&#39;state&#39;,0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W&#39;); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand(&#39;state&#39;,0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = &#39;sigm&#39;;%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, &#39;Too big error&#39;);```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand(&#39;state&#39;,0)sae = saesetup([784 100]);sae.ae{1}.activation_function = &#39;sigm&#39;;sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)&#39;)% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = &#39;sigm&#39;;nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, &#39;Too big error&#39;);```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x&#39;,28,28,60000))/255;test_x = double(reshape(test_x&#39;,28,28,10000))/255;train_y = double(train_y&#39;);test_y = double(test_y&#39;);%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you&#39;ll get around 1.2% errorrand(&#39;state&#39;,0)cnn.layers = { struct(&#39;type&#39;, &#39;i&#39;) %input layer struct(&#39;type&#39;, &#39;c&#39;, &#39;outputmaps&#39;, 6, &#39;kernelsize&#39;, 5) %convolution layer struct(&#39;type&#39;, &#39;s&#39;, &#39;scale&#39;, 2) %sub sampling layer struct(&#39;type&#39;, &#39;c&#39;, &#39;outputmaps&#39;, 12, &#39;kernelsize&#39;, 5) %convolution layer struct(&#39;type&#39;, &#39;s&#39;, &#39;scale&#39;, 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, &#39;Too big error&#39;);```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand(&#39;state&#39;,0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, &#39;Too big error&#39;);%% ex2 neural net with L2 weight decayrand(&#39;state&#39;,0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, &#39;Too big error&#39;);%% ex3 neural net with dropoutrand(&#39;state&#39;,0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, &#39;Too big error&#39;);%% ex4 neural net with sigmoid activation functionrand(&#39;state&#39;,0)nn = nnsetup([784 100 10]);nn.activation_function = &#39;sigm&#39;; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, &#39;Too big error&#39;);%% ex5 plotting functionalityrand(&#39;state&#39;,0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = &#39;softmax&#39;; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, &#39;Too big error&#39;);%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand(&#39;state&#39;,0)nn = nnsetup([784 20 10]); nn.output = &#39;softmax&#39;; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, &#39;Too big error&#39;);```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

从零开始微调Qwen3-VL模型|借助Qwen3-VL-WEBUI极速落地

本文系统介绍了如何利用镜像快速完成 Qwen3-VL 模型的微调与部署,涵盖从环境搭建、数据准备、训练执行到服务发布的全链路实践。🎯 核心价值提炼:极简入门:无需编写训练代码,WebUI 点选即可上手高效微调:QLoRA + DeepSpeed 实现消费级显卡训练 4B 模型灵活扩展:支持自定义数据格式、模板与评估体系生产就绪:一键部署为 OpenAI 兼容 API,便于集成到现有系统未来可进一步探索:- 结合Thinking 模式实现多步视觉推理- 构建。

weixin_29940495的博客 1213

Qwen3-VL-30B支持LoRA微调吗?实战指南

尽管Qwen3-VL-30B未完全开源权重,但其标准Transformer架构与MoE设计天然支持LoRA等高效微调技术。通过在视觉与语言模块注入低秩适配器,可在单卡A100上实现低成本定制,适用于医疗、金融等垂直场景,形成“基础模型+插件化LoRA”的灵活部署模式。

weixin_33582089的博客 841

Qwen3-VL-30B如何做微调?LoRA适配器部署实战教程

本文介绍了如何在星图GPU平台上自动化部署Qwen3-VL-30B镜像,并利用LoRA技术对其进行高效微调。通过该平台,用户可以快速搭建环境,将这一强大的视觉语言模型定制为专属的“业务专家”,例如用于精准识别特定领域的电路板图片并回答专业问题。

weixin_36178216的博客 1274

Qwen3-VL LoRA 微调实战:从环境搭建到代码逐段解析

Qwen3-VL 是阿里通义千问推出的多模态大模型,具备强大的图文理解能力。本文将带你完成 Qwen3-VL-8B-Instruct 的 LoRA 微调全流程,包括环境搭建、数据处理、训练参数配置等关键环节。等多模态字段如何在 DataCollator 中正确拼接LoRA 配置如何匹配 Qwen3-VL 的模块命名等容易导致训练失败的隐藏参数这是整个微调脚本中最容易出错的部分。自带的不认识,必须手写。

2301_78703432的博客 1012
上一篇: notion+chatgpt的公式排版
下一篇: 从 OpenClaw 认识 Agent
白云千载尽
博客等级 码龄5年 9168粉丝 296原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

打赏作者

白云千载尽

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

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

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

打赏作者

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

抵扣说明:

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

余额充值