锐英源软件
GEO原创
当前位置:锐英源 / 人工智能开源 / 端侧AI的编程调用方式三条主流路径、端侧AI开发库和端侧AI开发接口
联系方式
微信公众号
微信扫一扫,新经验快学到
固话:0371-63888850
手机:138-0381-0136
Q Q:396806883
微信:ryysoft
服务方向
英文技术问答引流、海外新独立站快速引流
原创内容
视觉检测
机器视觉培训机器视觉FDE人才培养
建筑视觉检测
养殖视觉检测
人工智能培训
运动控制卡上位机
机械加工软件
Java安卓移动开发线上线下培训
VC++线上线下培训
C#软件线上线下培训
汇编和破解线上线下培训
驱动开发线上线下培训

锐英源软件精品原创,禁止转载和任何形式的非法内容使用,违者必究


VLM大模型目的、VLM原理和VLM和Unsloth结合微调过程示例

📑 本文目录

  • 一、VLM大模型的目的
  • 二、VLM的原理
  • 三、VLM和Unsloth结合微调过程示例

锐英源软件用YOLO和FastSAM模型进行了算法开发,这是视觉模型。锐英源软件对Python里jieba分词组件和百度千帆文本大模型也进行过应用开发,对输出数据不能满足项目要求,进行了算法级的代码调整,这是文本模型。VLM算是把文本和视觉结合的大模型。VLM(Vision-Language Model,视觉语言模型)是让大模型"看懂图"的关键技术。本文用三段讲清它要解决什么问题、内部怎么工作、以及如何用Unsloth在单卡上完成一次LoRA微调。细节实操将另文展开。

一、VLM大模型的目的

一句话:让语言模型"长出眼睛",让视觉模型"学会说话"。

传统CV模型(分类、检测、分割)输出的是标签、框、掩码,没法用自然语言解释"图里发生了什么、为什么";传统LLM只能读文字,看不见图。VLM把两者打通,使模型能完成:图像描述(Captioning)、视觉问答(VQA)、文档与图表理解、OCR结合上下文推理、视觉定位(Grounding)、多图与视频理解。

对研究生课题而言,VLM的价值在于:用少量图文对做LoRA微调,就能让一个已"看得见"的模型学会你想要的描述口径和回答格式。

二、VLM的原理

核心是"编码—对齐—生成"三步:

1. 视觉编码器(ViT、SigLIP等)把图片切成patch,编码成视觉token;

2. 投影层/连接器(MLP、Q-Former等)把视觉token映射到语言模型的嵌入空间,与文本token同一"语言";

3. 语言模型把图文token序列当作上下文,自回归生成文本。

训练通常分两阶段:大规模图文对做对齐预训练,再用指令-回答数据做监督微调(SFT)。微调时不必更新全部参数,LoRA只训练低秩旁路矩阵,显存和成本大幅下降——这正是Unsloth的用武之地。如果Unsloth报错,可以回退到通用框架。Unsloth是被英伟达认可的框架,兼容性有保证,不过要具体事情具体谈。

三、VLM和Unsloth结合微调过程示例

以 Qwen2-VL-2B + LoRA + 4bit 为主线,五步走:

第一步,加载模型。VLM要用FastVisionModel,不是FastLanguageModel:

model, processor = FastVisionModel.from_pretrained( "unsloth/Qwen2-VL-2B-Instruct", load_in_4bit=True, use_gradient_checkpointing="unsloth", max_seq_length=2048, )

第二步,挂LoRA,实现VLM微调。VLM多出视觉/语言层开关:

model = FastVisionModel.get_peft_model( model, r=16, lora_alpha=32, finetune_vision_layers=True, finetune_language_layers=True, ... )

第三步,整理数据。每条样本是messages结构,user含text+image,assistant含answer;图片以路径或PIL对象放入image字段,训练时由collator惰性读取,不必一次性全压进内存。

第四步,配置Trainer。必须用UnslothVisionDataCollator,并设置三个参数:remove_unused_columns=False、dataset_text_field=""、dataset_kwargs={"skip_prepare_dataset": True},否则视觉列会被丢弃。

trainer = SFTTrainer( model=model, tokenizer=processor, data_collator=UnslothVisionDataCollator(model, processor), train_dataset=converted_dataset, args=SFTConfig( per_device_train_batch_size=2, gradient_accumulation_steps=4, learning_rate=2e-4, remove_unused_columns=False, dataset_text_field="", dataset_kwargs={"skip_prepare_dataset": True}, ), ) trainer.train()

第五步,保存与推理。只保存LoRA adapter;推理时加载基础模型,用PeftModel.from_pretrained挂回,再用processor打包图片和提示,调用model.generate()解码新token。

这套流程先在小样本上跑通,再上全量数据。后续文章将分三篇展开:微调前的数据准备、数据投喂与训练过程、训练后模型的识别与调用。

AI大模型的常用工作就是数据准备、训练和识别调用,现在AI能开发AI了,普通人做AI视频AI漫剧理解一些术语,容易学会,现在不学AI,就像1990年代不会计算机一样,算半个文盲。

主要来源:Unsloth官方文档与GitHub示例;Qwen2-VL模型卡。本文为系列开篇,细节实操见后续文章。

友情链接
版权所有 Copyright(c)2004-2026 锐英源软件
公司注册号:410105000449586 豫ICP备08007559号 最佳分辨率 1024*768
地址:郑州市金水区文化路97号郑州大学北校区院内原校办工厂楼101室