找回密码
 立即注册
首页 业界区 业界 SmolVLM2轻量级视频多模态模型,应用效果测评(风景、事 ...

SmolVLM2轻量级视频多模态模型,应用效果测评(风景、事故、仿真、统计、文字、识物)

铵滔 前天 10:27
SmolVLM2轻量级视频多模态模型,应用效果测评
目       录
1.     前言... 2
2.     应用部署... 2
3.     应用效果... 4
1.1          风景图像理解... 4
1.2          事故现场理解... 5
1.3          仿真图像理解... 6
1.4          数量统计描述... 7
1.5          图像文字理解... 8
1.6          物体识别理解... 10
4.     待解决问题... 11
5.     结论... 11
1.     前言

  SmolVLM2 是由 Hugging Face 开发的一系列紧凑型但功能强大的大型模型,旨在为资源受限的设备(如智能手机和嵌入式系统)带来先进的语言和视觉语言处理能力。这些模型以其小型化设计著称,适合在设备上运行,填补了大型模型与小型设备性能差距的空白。本文将详细介绍这两个系列的背景、技术细节、性能和应用,旨在为研究者和开发者提供全面的理解。
  SmolVLM2 扩展了 Smol 系列的能力,专注于视觉语言任务,可处理视频、图像和文本输入,生成文本输出。模型提供三种参数规模:2.2B、500M 和 256M,旨在实现高效的多模态处理。相较于前代产品,新版 22 亿模型在图像数学解题、图片文字识别、复杂图表解析和科学视觉问答方面表现显著提升。
2.     应用部署

模型下载:HuggingFaceTB/SmolVLM2-2.2B-Instruct · Hugging Face。
  1. from transformers import AutoProcessor, AutoModelForImageTextToText
  2. import torch
  3. DEVICE = "cuda" if torch.cuda.is_available() else "cpu"
  4. print(DEVICE)
  5. model_path = "models/SmolVLM2-2.2B-Instruct"
  6. processor = AutoProcessor.from_pretrained(model_path)
  7. model = AutoModelForImageTextToText.from_pretrained(
  8.     model_path,
  9.     torch_dtype=torch.bfloat16,
  10.     _attn_implementation="flash_attention_2" if DEVICE == "cuda" else "eager",
  11.    device_map="cuda").to(DEVICE)
  12. #model = AutoModelForImageTextToText.from_pretrained(
  13. #    model_path,
  14. #    torch_dtype=torch.bfloat16,
  15. #   _attn_implementation="flash_attention_2" if DEVICE == "cuda" else "eager").to(DEVICE)
  16. messages = [
  17.     {
  18.         "role": "user",
  19.         "content": [
  20.             {"type": "image", "url": "5.png"},
  21.             {"type": "text", "text": "结合图像上的内容,请问简单iNeuOS是什么?"},
  22.         ]
  23.     },
  24. ]
  25. inputs = processor.apply_chat_template(
  26.     messages,
  27.     add_generation_prompt=True,
  28.     tokenize=True,
  29.     return_dict=True,
  30.     return_tensors="pt",
  31. ).to(model.device, dtype=torch.bfloat16)
  32. generated_ids = model.generate(**inputs, do_sample=False, max_new_tokens=5000)
  33. generated_texts = processor.batch_decode(
  34.     generated_ids,
  35.     skip_special_tokens=True,
  36. )
  37. print(generated_texts[0])
复制代码
3.     应用效果
1.1       风景图像理解

User:请描述这张图像?
Assistant: 这张图片是一张美丽的花朵照片,其中主要的是一棵树的枝条和花朵。树枝的颜色是深红色,而花朵的颜色是白色和红色。树枝上有一层雪,雪的颜色是白色,这使得树枝和花朵的颜色显得更加美丽。花朵的颜色是红色和白色,这使得花朵的颜色显得更加独特。这张图片的背景是白色的,这使得树枝和花朵的颜色更加显得突出。这张图片的风格是美丽和美感的,它让人感受到花朵的美丽和树枝的美丽。
1.png

1.2       事故现场理解

User:请描述这个事故现场?
Assistant: 这是一次火灾事故的事实场景,其中包含一个大型的炉子和一个高的柱子。炉子的外壁是灰色的,而柱子的外壁是黑色的。(注:后面有冗余的回复
2.png

1.3       仿真图像理解

User:这是温度场仿真,请描述温度变化趋势?
Assistant: 温度变化趋势可以从图像中看出,温度在右侧高于左侧,这表明右侧的温度更高,左侧的温度更低。(注:后面有冗余和重复数据
3.png

1.4       数量统计描述

User:这是虾苗养殖图像,请分析虾苗数量?
Assistant: 虾苗数量为1000多个。
4.png

1.5       图像文字理解

User:结合图像上的内容,请问简单iNeuOS是什么?
Assistant: iNeuOS是一种操作系统,它是一种高级的操作系统,它可以被用来管理和管理计算机的系统,包括内存、硬盘和网络等。(注:后面是冗余和重复的数据
5.png

User:图像上的文字是什么?
Assistant: 这是一个英文和中文的图像,其中包含一些文字和图片。图像的左侧有一些英文文字,包括"iNeuOS"、"OS"和"NeuOS"。(注:毕竟不是OCR,所以文字识别和提取有限
6.png

1.6       物体识别理解

User:图像上的铅笔有多长?
Assistant: 铅笔的长度是约10厘米。(注:实际长度为14.7厘米
7.png

 
4.     待解决问题

问题:模型在回复的时候有冗余和重复的内容。
可能的原因:(1)提示词需求进行优化;(2)程序参数设置的问题。暂时还没有进一步测试。
5.     结论

  测试比我预想的要好很多,但是针对特定应用场景,特别是工业领域,需要进一步调优。
 
物联网&大数据技术 QQ群:54256083
物联网&大数据项目 QQ群:727664080
QQ:504547114
微信:wxzz0151
博客:https://www.cnblogs.com/lsjwq
8.png


来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
您需要登录后才可以回帖 登录 | 立即注册