🚀 袋鼠模型:支持长上下文视频输入的强大视频语言模型
袋鼠(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 许可证。