大家好,我是刘聪NLP。
端午节前,分享了一篇小米的开源多模态模型的文章,啥?小米又开源了多模态理解大模型。
当时只解读了论文,没有实测。
今天来填坑。
当然,看了这篇论文的,都知道,MiMo-VL-7B模型把一众多模态理解模型按在地上暴捶,尤其是Qwen2.5-VL,哈哈哈哈。
当然这里没有拉仇恨的意思。
他们自己人也说是站在巨人的肩膀上,巨人就是Qwen,虽然Qwen-VL被锤了,但是Qwen的含金量依然存在,毕竟ViT部分是直接用Qwen2.5-VL的ViT初始化的。
话不多说,开始实测,因为MiMo-VL-7B有两个SFT和RL两个版本,并且均可以使用think或no-think,都测试,与Qwen2.5-VL-7B进行对比。
懒人不爱看版:
- MiMo-VL-7B个人测试下来SFT和RL相差不大;
- MiMo-VL-7B的think和no-think相差较大,think版本要好的更多一些;
- MiMo-VL-7B的think模型整体要比Qwen2.5-VL-7B好一些,但是我的体感是没有Qwen2.5-VL-72B好;
- MiMo-VL-7B对手写体OCR的效果不好。
结论可能会因为测试样例不足、不同,而不一样,欢迎评论区讨论!
表格识别任务
先来表格识别,共三个表格图片,难度为低中高,prompt如下:
## Role
你是一位有多年经验的OCR表格识别专家。
## Goals
需要通过给定的图片,识别表格里的内容,并以html表格结果格式输出结果。
## Constrains
- 需要认识识别图片中的内容,将每个表格单元格中的内容完整的识别出来,并填入html表格结构中;
- 图片中的表格单元格中可能存在一些占位符需要识别出来,例如"-"、"—"、"/"等;
- 输出表格结构一定遵循图片中的结构,表格结构完全一致;
- 特别注意图片中存在合并单元格的情况,结构不要出错;
- 对于内容较多的图片,一定要输出完整的结果,不要断章取义,更不要随意编造;
- 最终输出结果需要是html格式的表格内容。
## Initialization
请仔细思考后,输出html表格结果。
对于简单表格,MiMo-VL-7B-Think版模型可以正确,但No-think模型错误,Qwen2.5-VL-7B错误。
简单表格
Qwen2.5-VL-7B
MiMo-VL-7B-SFT Think
MiMo-VL-7B-SFT No-Think
MiMo-VL-7B-RL Think
MiMo-VL-7B-RL No-Think
对于中等表格,7B模型全都全军覆没,但MiMo-VL-7B-SFT Think接近正确。
中等表格
Qwen2.5-VL-7B结果
MiMo-VL-7B-SFT Think
MiMo-VL-7B-SFT No-Think
MiMo-VL-7B-RL Think
MiMo-VL-7B-RL No-Think
复杂表格,MiMo-VL-7B-SFT Think结果更好。
复杂表格
Qwen2.5-VL-7B
MiMo-VL-7B-SFT Think
MiMo-VL-7B-SFT No-Think
MiMo-VL-7B-RL Think
MiMo-VL-7B-RL No-Think
但看过我Qwen2.5-VL-72B测试的,都知道,这几道题,是都对的,但是MiMo-VL-7B只有简单的正确了。
数学题任务
两道2024年高考题,prompt如下:
请解题。
2024年年高考全国甲卷数学(文)试题,Qwen2.5-VL-7B、MiMo-VL-7B-SFT、MiMo-VL-7B-RL Think对了,
,MiMo-VL-7B-RL No-Think错了。
发现RL-No-Think模型感觉不太好。
试题
Qwen2.5-VL-7B
MiMo-VL-7B-SFT Think
MiMo-VL-7B-SFT No-Think
MiMo-VL-7B-RL Think
MiMo-VL-7B-RL No-Think
2024年高考全国甲卷数学(理)试题,都对了,C方程为
;
试题
Qwen2.5-VL-7B
MiMo-VL-7B-SFT Think
MiMo-VL-7B-SFT No-Think
MiMo-VL-7B-RL Think
MiMo-VL-7B-RL No-Think
OCR+计算任务
识别手写体,Qwen2.5-VL-7B更好一些,错了两个字,MiMo-VL所有模型都细碎。
prompt如下:
请逐步详细分析,输出图片中的文字内容
Qwen2.5-VL-7B
MiMo-VL-7B-SFT Think
MiMo-VL-7B-SFT No-Think
MiMo-VL-7B-RL Think
MiMo-VL-7B-RL No-Think
识别图片中数字,并计算,Qwen2.5-VL-7B对了,MiMo-VL-7B的Think模型对了,No-Think模型错了。
prompt如下:
请逐步详细分析,告诉我在中文数据和英文数据分别占比是多少,并且告诉我总和
Qwen2.5-VL-7B
MiMo-VL-7B-SFT Think
MiMo-VL-7B-SFT No-Think
MiMo-VL-7B-RL Think
MiMo-VL-7B-RL No-Think
图像识别
识别图片中的内容,都正确了。
prompt如下:
这张图片里是有两只狗,对吗
Qwen2.5-VL-7B
MiMo-VL-7B-SFT Think
MiMo-VL-7B-SFT No-Think
MiMo-VL-7B-RL Think
MiMo-VL-7B-RL No-Think
测试代码
Qwen2.5-VL和MiMo-VL模型,均用vLLM框架,单卡4090启动,最大长度为12800。
测试代码:
from openai import OpenAI
import base64
def trans\_base64(image\_path):
with open(image\_path, "rb") as image\_file:
encoded\_string = base64.b64encode(image\_file.read())
base64\_image = encoded\_string.decode('utf-8')
return base64\_image
api\_key = "sk-xxxxxxxxxxxxxxxxxxxx"
base\_url = "http://0.0.0.0:54188/v1"
model = "MiMo-VL-7B-RL"
client = OpenAI(api\_key=api\_key, base\_url=base\_url)
image\_path = "image.png"
query = "prompt"
base64\_image = trans\_base64(image\_path)
response = client.chat.completions.create(
model=model,
messages=[
{
"role": "user",
"content": [
{
"type": "image\_url",
"image\_url": {
"url": f"data:image/png;base64,{base64\_image}"
}
},
{
"type": "text",
"text": query
}
]
}]
)
print(response.choices[0].message.content)
写在最后
整体感觉小米这次的多模态MiMo-VL模型还是不错的,尤其是Think模型,整体体验下来出来纯手写OCR之外,其他的能力都要更好一些。
但应该没有榜单那么夸张,暴打72B应该不至于,但是确实比7B要好。
欢迎评论区讨论!!!
PS:看到这里,如果觉得不错,可以来个点赞 、在看 、关注 。 给公众号添加【星标⭐️】不迷路!您的支持是我坚持的最大动力!
欢迎多多关注公众号「刘聪NLP」,加入交流群,交个朋友吧,一起学习,一起进步!