Qwen3-VL-0.6B?Reyes轻量化折腾:一个从0到1开始训练的0.6B参数量的多模态大模型

标题一次,非Qwen3-VL-0.6B官方。最近手里有一台昇腾910B的服务器,顺便摸索下国产芯片的训练都有哪些坑,笔者时隔一年对Reyes《【多模态&LLM】Reyes:一个从0到1开始训练的多模态大模型(技术报告)》进行了改造,原本的Reyes由8B的参数构成(InternViT-300M-448px-V2_5+Qwen2.5-7B-Instruct),随着端侧模型的发展与手里资源的限制,最终笔者将Reyes参数量设置成0.6B,训练了一个轻量化的多模态模型,最终在MMMU-benchmark取得了38.7的得分。

模型架构

得益于开源社区优秀的开源模型(qwenvl、smolvlm等)在模型、代码、训练等提供的思路,Reyes-0.6B整体结构遵循经典的Vit+两层MLP+LLM架构:

  • vit视觉编码器:SigLIP2-Base-Patch16-512
  • LLM:qwen3-0.6B
优化trick
原生分辨率支持

在上个版本Reyes-8B中,主要采用了动态分辨率对图像进行预处理,包括归一化、缩放、裁剪、根据宽高比动态处理等操作。

在《多模态大模型中不同分辨率策略研究与原生分辨率的有效性评估》和现有多个VLMs(如qwenvl、keye-vl等)中都使用了原生分辨率。

因此本次Reyes-0.6B模型也增加了原生分辨率的支持,通过适配集成 2D Rotary Position Embeddings(2D-RoPE)和双三次插值适配位置嵌入实现。

像素洗牌(Pixel Shuffle)支持

在《开源的轻量化VLM-SmolVLM模型架构、数据策略及其衍生物PDF解析模型SmolDocling》提到,像素洗牌通过重新排列编码图像,以增加通道深度为代价换取空间分辨率。这减少了视觉标记数量,同时保持信息密度。

训练

训练数据得益于开源社区的快速发展,如FineVision、《多模态视觉语言模型:Molmo2训练数据、训练配方》提到的若干优质的数据集,结合一些筛选和净化手段。

训练整体分预训练和SFT两阶段:

  • 预训练:训练模型的对齐能力,由VQA+OCR+caption数据构成。1024x1024低分辨率训练。
  • SFT:训练模型的多模态理解能力,由纯文本+VQA的混合数据进行训练,2048x2048高分辨率训练。

推理代码

复制代码
import torch
from transformers import AutoModel, AutoTokenizer, CLIPImageProcessor


model_dir = "模型权重"

model = AutoModel.from_pretrained(model_dir, trust_remote_code=True, torch_dtype=torch.bfloat16)


tokenizer = AutoTokenizer.from_pretrained(model_dir, trust_remote_code=True)
image_processor = CLIPImageProcessor.from_pretrained(model_dir, trust_remote_code=True)

messages = [
    {
        "role": "user",
        "content": [
            {"type": "text", "text": "描述一下这张图片。"},
            {
                "type": "image_url",
                "image_url": {
                    "url": "test.png"
                },
            }
        ],
    },
]
res = model.chat(messages, tokenizer, image_processor, max_new_tokens=1024, do_sample=True, temperature=0.6)
print(res)

一些case

VQA:

  • prompt:描述一下这张图片。
  • 输出:这张图片展示了一只威尔士柯基犬,它正坐在一条灰色的石板路上。狗狗的毛色主要是棕色和白色相间的,面部和胸部有明显的白色部分。它的耳朵竖立,眼睛半闭,嘴巴微微张开,露出一点粉色的舌头,看起来非常开心和活泼。背景中可以看到一些树木和草地,表明这只狗可能在一个公园或类似的户外环境中。整体上,这张照片给人一种轻松愉快的感觉,体现了狗狗的活力和亲近人心的一面。

OCR:

  • prompt:识别图片中的文字,输出markdown格式。
  • 输出:

尾注:本次仅记录训练Reyes-0.6B的过程和一些trick的验证。

相关推荐
火山引擎开发者社区20 小时前
OpenViking x OpenClaw:开箱即用 解决 Agent 的长期记忆困局
人工智能
一瓢西湖水20 小时前
Windows安装OpenClaw实践指南
人工智能·windows·ai
翱翔的苍鹰21 小时前
实际项目中使用LangChain DeepAgent的完整流程(落地版)
大数据·人工智能·深度学习·语言模型·自然语言处理·langchain
冬奇Lab21 小时前
一天一个开源项目(第52篇):OPB-Skills - 一人公司的 AI 团队,91 个专业 Skill 覆盖完整业务
人工智能·开源·资讯
刀法如飞21 小时前
Agentic AI时代,程序员必备的算法思想指南
人工智能·算法·agent
罗西的思考21 小时前
【GUI-Agent】阶跃星辰 GUI-MCP 解读---(1)---论文
人工智能·机器学习
yongui478341 天前
基于小波分析与神经网络结合的风速预测方法
人工智能·深度学习·神经网络
萤丰信息1 天前
智慧园区系统:赋能园区数字化升级,开启智慧运营新时代
大数据·人工智能·科技·架构·智慧城市·智慧园区
九硕智慧建筑一体化厂家1 天前
楼控系统内 DDC 控制箱连接前端传感器、执行器、设备控制箱线缆类型说明
人工智能
NineData1 天前
杭州 OpenClaw 开发者聚会来了!NineData 叶正盛将带来主题分享
数据库·人工智能