核心内容摘要
豆浆飘香,师生情深:一杯温情,一份传承
标题一次非Qwen3-VL-
6B官方。
最近手里有一台昇腾910B的服务器顺便摸索下国产芯片的训练都有哪些坑笔者时隔一年对Reyes《【多模态LLM】Reyes一个从0到1开始训练的多模态大模型技术报告》进行了改造原本的Reyes由8B的参数构成InternViT-300M-448px-V2_5Qwen
2.
B-Instruct随着端侧模型的发展与手里资源的限制最终笔者将Reyes参数量设置成
6B训练了一个轻量化的多模态模型最终在MMMU-benchmark取得了
3
7的得分。
权重开源https://modelscope.cn/models/yujunhuinlp/Reyes-
6Bgithubhttps://github.com/yujunhuics/Reyes模型架构得益于开源社区优秀的开源模型qwenvl、smolvlm等在模型、代码、训练等提供的思路Reyes-
6B整体结构遵循经典的Vit两层MLPLLM架构vit视觉编码器SigLIP2-Base-Patch
LLMqwen3-
6B优化trick原生分辨率支持在上个版本Reyes-8B中主要采用了动态分辨率对图像进行预处理包括归一化、缩放、裁剪、根据宽高比动态处理等操作。
在《多模态大模型中不同分辨率策略研究与原生分辨率的有效性评估》和现有多个VLMs如qwenvl、keye-vl等中都使用了原生分辨率。
因此本次Reyes-
6B模型也增加了原生分辨率的支持通过适配集成 2D Rotary Position Embeddings2D-RoPE和双三次插值适配位置嵌入实现。
像素洗牌Pixel Shuffle支持在《开源的轻量化VLM-SmolVLM模型架构、数据策略及其衍生物PDF解析模型SmolDocling》提到像素洗牌通过重新排列编码图像以增加通道深度为代价换取空间分辨率。
这减少了视觉标记数量同时保持信息密度。
训练训练数据得益于开源社区的快速发展如FineVision、《多模态视觉语言模型Molmo2训练数据、训练配方》提到的若干优质的数据集结合一些筛选和净化手段。
训练整体分预训练和SFT两阶段预训练训练模型的对齐能力由VQAOCRcaption数据构成。
1024x1024低分辨率训练。
SFT训练模型的多模态理解能力由纯文本VQA的混合数据进行训练2048x2048高分辨率训练。
推理代码import torch from transformers import AutoModel, AutoTokenizer, CLIPImageProcessor model_dir 模型权重 model AutoModel.from_pretrained(model_dir, trust_remote_codeTrue, torch_dtypetorch.bfloat
tokenizer AutoTokenizer.from_pretrained(model_dir, trust_remote_codeTrue) image_processor CLIPImageProcessor.from_pretrained(model_dir, trust_remote_codeTrue) messages [ { role: user, content: [ {type: text, text: 描述一下这张图片。
}, { type: image_url, image_url: { url: test.png }, } ], }, ] res model.chat(messages, tokenizer, image_processor, max_new_tokens1024, do_sampleTrue, temperature
0.
print(res)一些caseVQAprompt描述一下这张图片。
输出这张图片展示了一只威尔士柯基犬它正坐在一条灰色的石板路上。
狗狗的毛色主要是棕色和白色相间的面部和胸部有明显的白色部分。
它的耳朵竖立眼睛半闭嘴巴微微张开露出一点粉色的舌头看起来非常开心和活泼。
背景中可以看到一些树木和草地表明这只狗可能在一个公园或类似的户外环境中。
整体上这张照片给人一种轻松愉快的感觉体现了狗狗的活力和亲近人心的一面。
OCRprompt识别图片中的文字输出markdown格式。
输出尾注本次仅记录训练Reyes-