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的验证。

相关推荐
Jutick5 分钟前
远程 MCP 已配置,为什么你的 AI 开发工具仍查不到 A 股行情?
人工智能·mcp
phltxy5 分钟前
Spring AI Agents 智能体模式实战
java·人工智能·spring
li-xun9 分钟前
2026年6月14日博客精选
人工智能·ai
DogDaoDao19 分钟前
【GitHub】 Headroom 深度解析:AI Agent 上下文压缩层的完整技术拆解
人工智能·深度学习·程序员·github·ai agent·智能体·agent skill
挖坑的张师傅26 分钟前
方便 Mac 本机运行 e2b 的沙箱方案 e2b-local
人工智能·后端
生成论实验室32 分钟前
认知芯片:让判断力在物理定律上运行——AI芯片的第三条路
人工智能·语言模型·机器人·自动驾驶·安全架构
浦信仿真大讲堂32 分钟前
达索系统SIMULIA Abaqus 2026接触和约束的增强新功能介绍
人工智能·python·算法·仿真软件·达索软件
文艺倾年38 分钟前
【强化学习】MDP、贝尔曼方程与CartPole 编程,20W字总结(二)
人工智能·软件工程·强化学习
ttt606_44 分钟前
门店业绩上报系统功能拆解:门店业绩上报如何提高数据精确度与时效性?
大数据·人工智能
phltxy1 小时前
Spring AI 可观测性与 Zipkin 实战
java·人工智能·spring