Views
No views yet
Note: Due to a predominantly English training corpus, the model only exhibits basic Chinese comprehension, to ensure optimal performance, using English for interaction is recommended.
| Model | MVBench | LongVideoBench | VideoMME(w/o sub) | Max Input Frames |
|---|---|---|---|---|
| VideoChat-Flash-Qwen2_5-2B@448 | 70.0 | 58.3 | 57.0 | 10000 |
| VideoChat-Flash-Qwen2-7B@224 | 73.2 | 64.2 | 64.0 | 10000 |
| VideoChat-Flash-Qwen2_5-7B-1M@224 | 73.4 | 66.5 | 63.5 | 50000 |
| VideoChat-Flash-Qwen2_5-7B_InternVideo2-1B@224 | 74.3 | 64.5 | 65.1 | 10000 |
| VideoChat-Flash-Qwen2-7B@448 | 74.0 | 64.7 | 65.3 | 10000 |
pip install transformers==4.40.1
pip install av
pip install imageio
pip install decord
pip install opencv-python
# optional
pip install flash-attn --no-build-isolation1from transformers import AutoModel, AutoTokenizer
2import torch
3
4# model setting
5model_path = 'OpenGVLab/VideoChat-Flash-Qwen2-7B_res224'
6
7tokenizer = AutoTokenizer.from_pretrained(model_path, trust_remote_code=True)
8model = AutoModel.from_pretrained(model_path, trust_remote_code=True).to(torch.bfloat16).cuda()
9image_processor = model.get_vision_tower().image_processor
10
11mm_llm_compress = False # use the global compress or not
12if mm_llm_compress:
13 model.config.mm_llm_compress = True
14 model.config.llm_compress_type = "uniform0_attention"
15 model.config.llm_compress_layer_list = [4, 18]
16 model.config.llm_image_token_ratio_list = [1, 0.75, 0.25]
17else:
18 model.config.mm_llm_compress = False
19
20# evaluation setting
21max_num_frames = 512
22generation_config = dict(
23 do_sample=False,
24 temperature=0.0,
25 max_new_tokens=1024,
26 top_p=0.1,
27 num_beams=1
28)
29
30video_path = "your_video.mp4"
31
32# single-turn conversation
33question1 = "Describe this video in detail."
34output1, chat_history = model.chat(video_path=video_path, tokenizer=tokenizer, user_prompt=question1, return_history=True, max_num_frames=max_num_frames, generation_config=generation_config)
35
36print(output1)
37
38# multi-turn conversation
39question2 = "How many people appear in the video?"
40output2, chat_history = model.chat(video_path=video_path, tokenizer=tokenizer, user_prompt=question2, chat_history=chat_history, return_history=True, max_num_frames=max_num_frames, generation_config=generation_config)
41
42print(output2)1
2@article{li2024videochatflash,
3 title={VideoChat-Flash: Hierarchical Compression for Long-Context Video Modeling},
4 author={Li, Xinhao and Wang, Yi and Yu, Jiashuo and Zeng, Xiangyu and Zhu, Yuhan and Huang, Haian and Gao, Jianfei and Li, Kunchang and He, Yinan and Wang, Chenting and others},
5 journal={arXiv preprint arXiv:2501.00574},
6 year={2024}
7}
8