SmolVLM2輕量級視頻多模態模型,應用效果測評(風景、事故、仿真、統計、文字、識物)
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。
from transformers import AutoProcessor, AutoModelForImageTextToText import torch DEVICE = "cuda" if torch.cuda.is_available() else "cpu" print(DEVICE) model_path = "models/SmolVLM2-2.2B-Instruct" processor = AutoProcessor.from_pretrained(model_path) model = AutoModelForImageTextToText.from_pretrained( model_path, torch_dtype=torch.bfloat16, _attn_implementation="flash_attention_2" if DEVICE == "cuda" else "eager", device_map="cuda").to(DEVICE) #model = AutoModelForImageTextToText.from_pretrained( # model_path, # torch_dtype=torch.bfloat16, # _attn_implementation="flash_attention_2" if DEVICE == "cuda" else "eager").to(DEVICE) messages = [ { "role": "user", "content": [ {"type": "image", "url": "5.png"}, {"type": "text", "text": "結合圖像上的內容,請問簡單iNeuOS是什么?"}, ] }, ] inputs = processor.apply_chat_template( messages, add_generation_prompt=True, tokenize=True, return_dict=True, return_tensors="pt", ).to(model.device, dtype=torch.bfloat16) generated_ids = model.generate(**inputs, do_sample=False, max_new_tokens=5000) generated_texts = processor.batch_decode( generated_ids, skip_special_tokens=True, ) print(generated_texts[0])
3. 應用效果
1.1 風景圖像理解
User:請描述這張圖像?
Assistant: 這張圖片是一張美麗的花朵照片,其中主要的是一棵樹的枝條和花朵。樹枝的顏色是深紅色,而花朵的顏色是白色和紅色。樹枝上有一層雪,雪的顏色是白色,這使得樹枝和花朵的顏色顯得更加美麗。花朵的顏色是紅色和白色,這使得花朵的顏色顯得更加獨特。這張圖片的背景是白色的,這使得樹枝和花朵的顏色更加顯得突出。這張圖片的風格是美麗和美感的,它讓人感受到花朵的美麗和樹枝的美麗。

1.2 事故現場理解
User:請描述這個事故現場?
Assistant: 這是一次火災事故的事實場景,其中包含一個大型的爐子和一個高的柱子。爐子的外壁是灰色的,而柱子的外壁是黑色的。(注:后面有冗余的回復)

1.3 仿真圖像理解
User:這是溫度場仿真,請描述溫度變化趨勢?
Assistant: 溫度變化趨勢可以從圖像中看出,溫度在右側高于左側,這表明右側的溫度更高,左側的溫度更低。(注:后面有冗余和重復數據)

1.4 數量統計描述
User:這是蝦苗養殖圖像,請分析蝦苗數量?
Assistant: 蝦苗數量為1000多個。

1.5 圖像文字理解
User:結合圖像上的內容,請問簡單iNeuOS是什么?
Assistant: iNeuOS是一種操作系統,它是一種高級的操作系統,它可以被用來管理和管理計算機的系統,包括內存、硬盤和網絡等。(注:后面是冗余和重復的數據)

User:圖像上的文字是什么?
Assistant: 這是一個英文和中文的圖像,其中包含一些文字和圖片。圖像的左側有一些英文文字,包括"iNeuOS"、"OS"和"NeuOS"。(注:畢竟不是OCR,所以文字識別和提取有限)

1.6 物體識別理解
User:圖像上的鉛筆有多長?
Assistant: 鉛筆的長度是約10厘米。(注:實際長度為14.7厘米)

4. 待解決問題
問題:模型在回復的時候有冗余和重復的內容。
可能的原因:(1)提示詞需求進行優化;(2)程序參數設置的問題。暫時還沒有進一步測試。
5. 結論
測試比我預想的要好很多,但是針對特定應用場景,特別是工業領域,需要進一步調優。
物聯網&大數據技術 QQ群:54256083
物聯網&大數據項目 QQ群:727664080
QQ:504547114
微信:wxzz0151
博客:http://www.rzrgm.cn/lsjwq


浙公網安備 33010602011771號