
社群是國內外知名的機器學習與自然語言處理社群,受眾覆蓋國內外NLP碩博生、高校老師以及企業研究人員。
你永遠可以相信通義千問,就在今天(春節前最後一天),正式開源Qwen2.5-VL系列模型,讓LLM更清晰的看世界!!!
2025年的第一個月,國內大模型廠商太爭氣了,前有minimax、kimi、deepseek,後有qwen,春節放假期間真是不給我們一點休息時間呀。
不過,我個人真的是樂在其中,難道這就是所謂的幸福的煩惱?
HF: https://huggingface.co/collections/Qwen/qwen25-vl-6795ffac22b334a837c0f9a5
Qwen2.5-VL模型
下面說回模型本身。
開源的Qwen2.5-VL模型共包含3個尺寸,3B(更易端側部署)、7B(速度與效果的平衡)以及72B(效果最強)。

在7B基本的模型在多個榜單上都達到了開源Top1,並且72B跟GPT4-o、Claude3.5都有一拼。

Qwen2.5-VL-7B

Qwen2.5-VL-72B
Qwen2.5-VL模型不僅在對話、指令跟隨、數學、程式碼等能力上有所提高,還支援座標、json等返回格式、支援更長(1小時)的影片理解、更細粒度的時間感知、更全面的知識解析能力、具備更強的agent能力來操作手機和電腦。

來自官方-QQ發祝福
Agent和即時影片互動能力,看了官方几個影片,感覺處理相關任務效果還不錯,具體等模型下完之後,體驗再評價。
Qwen2.5-VL模型,在視覺編碼器部分是原生訓練的支援動態解析度的ViT。同時在空間維度引入大量檢測框和點等座標,讓模型理解空間的尺寸;
在時間維度引入動態FPS和絕對時間編碼,使mRoPE的ids與時間快慢進行對齊,讓模型理解時間的流速。

實測
由於模型還在下載,實測源自官方連結:https://chat.qwenlm.ai/
之前大家都應該知道我寫了一篇大模型無法做表格識別的東西,因為Qwen2.5-VL特意提到加強結構化內容輸出,先來測測表格解析效果。
-
簡單表格:

解析結果完全正確,比較簡單表格。

-
中等表格:

這個比上一個有一些難度,主要是字多了一點,然後合併單元的不錯有交錯(6、7行的2、4列),之前的多模態大模型們全軍覆沒,Qwen2.5-VL-72B模型依然完全正確。

-
複雜表格:

這個更難了,之前依舊全軍覆沒,但Qwen2.5-VL-72B模型依然完全正確。

Qwen2.5-VL的表格解析太牛了,之前GPT4-o和Claude、Gemini都沒對的,他竟然全對!!!
下面看看Qwen2.5-VL的數學能力,
-
2024年年高考全國甲卷數學(文)試題


-
2024年高考全國甲卷數學(理)試題



-
測試一下單圖片資訊抽取+計算功能


-
測試一下單圖片理解功能

-
測試一下單圖片手寫ORC功能

-
再測試一下多圖片資訊抽取+計算功能






HF快速使用
pip install git+https://github.com/huggingface/transformer accelerate
from transformers import Qwen2_5_VLForConditionalGeneration, AutoTokenizer, AutoProcessor
from qwen_vl_utils import process_vision_info
model = Qwen2_5_VLForConditionalGeneration.from_pretrained(
"Qwen/Qwen2.5-VL-7B-Instruct"
, torch_dtype=
"auto"
, device_map=
"auto"
)
processor = AutoProcessor.from_pretrained(
"Qwen/Qwen2.5-VL-7B-Instruct"
)
messages = [
{
"role"
:
"user"
,
"content"
: [
{
"type"
:
"image"
,
"image"
:
"https://qianwen-res.oss-cn-beijing.aliyuncs.com/Qwen-VL/assets/demo.jpeg"
,
},
{
"type"
:
"text"
,
"text"
:
"Describe this image."
},
],
}
]
text = processor.apply_chat_template(
messages, tokenize=False, add_generation_prompt=True
)
image_inputs, video_inputs = process_vision_info(messages)
inputs = processor(
text=[text],
images=image_inputs,
videos=video_inputs,
padding=True,
return_tensors=
"pt"
,
)
inputs = inputs.to(
"cuda"
)
generated_ids = model.generate(**inputs, max_new_tokens=128)
generated_ids_trimmed = [
out_ids[len(in_ids) :]
for
in_ids, out_ids
in
zip(inputs.input_ids, generated_ids)
]
output_text = processor.batch_decode(
generated_ids_trimmed, skip_special_tokens=True, clean_up_tokenization_spaces=False
)
print
(output_text)
寫在最後
技術交流群邀請函

△長按新增小助手
掃描二維碼新增小助手微信
關於我們
