🚀 袋鼠模型:支持長上下文視頻輸入的強大視頻語言模型
袋鼠(Kangaroo)模型 已發佈。如需瞭解詳情,請查看我們的 論文、博客 和 GitHub倉庫。
🚀 快速開始
📦 安裝指南
請查看我們的 GitHub頁面。
💻 使用示例
基礎用法
使用 🤗 Transformers 進行多輪對話:
import torch
from transformers import AutoTokenizer, AutoModelForCausalLM
tokenizer = AutoTokenizer.from_pretrained("KangarooGroup/kangaroo")
model = AutoModelForCausalLM.from_pretrained(
"KangarooGroup/kangaroo",
torch_dtype=torch.bfloat16,
trust_remote_code=True,
)
model = model.to("cuda")
terminators = [tokenizer.eos_token_id, tokenizer.convert_tokens_to_ids("<|eot_id|>")]
video_path = "/path/to/video"
query = "Give a brief description of the video."
out, history = model.chat(video_path=video_path,
query=query,
tokenizer=tokenizer,
max_new_tokens=512,
eos_token_id=terminators,
do_sample=True,
temperature=0.6,
top_p=0.9,)
print('Assitant: \n', out)
query = "What happend at the end of the video?"
out, history = model.chat(video_path=video_path,
query=query,
history=history,
tokenizer=tokenizer,
max_new_tokens=512,
eos_token_id=terminators,
do_sample=True,
temperature=0.6,
top_p=0.9,)
print('Assitant: \n', out)
✨ 主要特性
我們推出了 袋鼠(Kangaroo) 模型,這是一款專為長上下文視頻理解設計的強大多模態大語言模型。該模型在包括視頻字幕生成、問答和對話等多種視頻理解任務中表現出色。總體而言,我們在這項工作中的主要貢獻如下:
- 長上下文視頻輸入:為了增強模型理解更長視頻的能力,我們將輸入視頻的最大幀數擴展到了 160 幀。為此,我們將多個具有不同幀數和寬高比的視頻聚合為一個樣本,並進一步設計了一個時空分塊模塊來提高訓練效率。
- 強大的性能:我們在各種視頻理解基準測試中對模型進行了評估。結果表明,我們的模型在大多數綜合基準測試中達到了最先進的性能,並在其他測試中保持了具有競爭力的水平。值得注意的是,在某些基準測試中,我們的模型優於大多數參數超過 300 億的大型開源模型和一些專有模型。
- 視頻標註系統:我們開發了一個數據整理和自動標註系統,用於為開源和內部視頻生成字幕。生成的大規模數據集用於視頻 - 文本預訓練。在視頻指令調優階段,我們基於公共和內部數據集構建了一個視頻指令調優數據集,涵蓋了各種任務。
- 雙語對話:我們提出的模型具備中文、英文和雙語對話的能力,並支持單輪/多輪對話範式。
📚 詳細文檔
引用
如果您發現該模型對您的研究有用,請使用以下 BibTeX 引用相關論文/博客:
@misc{kangaroogroup,
title={Kangaroo: A Powerful Video-Language Model Supporting Long-context Video Input},
url={https://kangaroogroup.github.io/Kangaroo.github.io/},
author={Jiajun Liu and Yibing Wang and Hanghang Ma and Xiaoping Wu and Xiaoqi Ma and Jie Hu},
month={July},
year={2024}
}
📄 許可證
本項目採用 Apache-2.0 許可證。