模型介绍
内容详情
替代品
模型简介
LanguageBind采用以语言为核心的多模态预训练方法,通过语言绑定不同模态,支持视频、音频、深度、热成像等多种模态的语义对齐。
模型特点
语言为核心的多模态对齐
通过语言模态作为桥梁,实现视频、音频、深度、热成像等多种模态的语义对齐
海量多模态数据集
提供VIDAL-10M数据集,包含1000万跨视频、红外、深度、音频及其对应语言的数据
多视角增强描述训练
对语言进行多视角增强,融合元数据、空间与时间信息,并用ChatGPT增强语言描述
模型能力
视频-语言语义对齐
音频-语言语义对齐
深度图像-语言语义对齐
热成像-语言语义对齐
跨模态相似度计算
使用案例
视频理解
视频检索
通过文本查询检索相关视频内容
在MSR-VTT数据集上达到44.8的零样本检索准确率
音频分析
音频事件检测
识别音频中的特定事件或声音
在5个音频数据集上取得SOTA性能
特殊视觉模态处理
热成像分析
理解热成像图像的内容和语义
深度图像理解
解析深度图像中的场景和对象
license: mit
【ICLR 2024 🔥】LanguageBind:通过语言语义对齐将视频-语言预训练扩展至N模态
若喜欢我们的项目,请给GitHub点个星标⭐获取最新动态。
📰 新闻
- [2024.01.27] 👀👀👀 我们的MoE-LLaVA发布!仅30亿参数的稀疏模型性能超越70亿参数的密集模型。
- [2024.01.16] 🔥🔥🔥 LanguageBind论文被ICLR 2024收录!获评审得分6(3)8(6)6(6)6(6) 查看详情。
- [2023.12.15] 💪💪💪 VIDAL数据集扩展至💥💥💥 1000万视频-文本对,发布LanguageBind_Video 1.5版本,详见模型库。
- [2023.12.10] VIDAL数据集新增💥💥💥 1000万深度图与1000万热成像数据,正分批上传至Hugging Face,预计需1-2个月完成。
- [2023.11.27] 🔥🔥🔥 论文紧急更新零样本实验结果,查看✨效果展示。
- [2023.11.26] 💥💥💥 开源全部文本数据及对应YouTube ID,点此查看。
- [2023.11.26] 📣📣📣 开源全参数微调的视频&音频模型,性能再创新高,详见模型库。
- [2023.11.22] 即将发布全参数微调版本,超大模型正在训练中。
- [2023.11.21] 💥 发布DATASETS.md中的样例数据,方便研究者基于自有数据训练。
- [2023.11.20] 🚀🚀🚀 Video-LLaVA基于LanguageBind编码器构建多模态大模型,实现🎉多项SOTA。
- [2023.10.23] 🎶 LanguageBind-Audio在5个数据集上达到🎉🎉🎉业界最佳性能,查看✨结果!
- [2023.10.14] 😱 发布更强力的LanguageBind-Video,✨效果见此处!视频模型已更新至Huggingface模型库!
- [2023.10.10] 提供assets样例数据及紧急零样本使用指南。
- [2023.10.07] 模型权重已登陆🤗 Huggingface。
- [2023.10.04] 代码与演示Demo发布!点击👀Watch获取实时更新。
😮 核心亮点
💡 高性能,无需中间模态对齐
LanguageBind采用以语言为核心的多模态预训练框架,通过语言桥接不同模态,充分利用语言模态的丰富语义和成熟研究基础。
- 首张架构图展示LanguageBind的设计理念。可轻松扩展至分割、检测等任务,理论上支持无限模态。
⚡️ 多模态全对齐海量数据集
推出VIDAL-10M数据集,包含1000万条视频(V)、红外(I)、深度(D)、**音频(A)及对应语言(L)**数据,极大拓展了视觉模态外的数据规模。
- 第二张图展示VIDAL-10M数据集构成,涵盖视频、红外、深度、音频、语言五模态。
🔥 多视角强化的语言描述
通过元数据、空间、时间三维度增强语言描述,并引入ChatGPT优化语义空间,为各模态对齐提供优质语言锚点。
🤗 演示
- 本地演示。强烈推荐运行我们的Gradio演示,体验LanguageBind全部功能:
python gradio_app.py
- 在线演示。访问Huggingface Spaces,可计算音频-语言、视频-语言、深度-图像等多模态相似度。
🛠️ 安装要求
- Python >= 3.8
- Pytorch >= 1.13.1
- CUDA >= 11.6
- 安装依赖:
git clone https://github.com/PKU-YuanGroup/LanguageBind
cd LanguageBind
pip install torch==1.13.1+cu116 torchvision==0.14.1+cu116 torchaudio==0.13.1 --extra-index-url https://download.pytorch.org/whl/cu116
pip install -r requirements.txt
🐳 模型库
表格中的名称代表不同编码器模型。例如LanguageBind/LanguageBind_Video_FT
表示全参数微调版,LanguageBind/LanguageBind_Video
为LoRA微调版。推荐在API调用中使用全参数微调版以获得更强性能。
模态 | LoRA微调 | 全参数微调 |
---|---|---|
视频 | LanguageBind_Video | LanguageBind_Video_FT |
音频 | LanguageBind_Audio | LanguageBind_Audio_FT |
深度 | LanguageBind_Depth | - |
热成像 | LanguageBind_Thermal | - |
版本 | 微调方式 | 模型规模 | 帧数 | HF链接 | MSR-VTT | DiDeMo | ActivityNet | MSVD |
---|---|---|---|---|---|---|---|---|
LanguageBind_Video | LoRA | Large | 8 | 链接 | 42.6 | 37.8 | 35.1 | 52.2 |
LanguageBind_Video_FT | 全参数 | Large | 8 | 链接 | 42.7 | 38.1 | 36.9 | 53.5 |
LanguageBind_Video_V1.5_FT | 全参数 | Large | 8 | 链接 | 42.8 | 39.7 | 38.4 | 54.1 |
LanguageBind_Video_V1.5_FT | 全参数 | Large | 12 | 即将发布 | ||||
LanguageBind_Video_Huge_V1.5_FT | 全参数 | Huge | 8 | 链接 | 44.8 | 39.9 | 41.0 | 53.7 |
LanguageBind_Video_Huge_V1.5_FT | 全参数 | Huge | 12 | 即将发布 |
🤖 API
我们开源了全模态预处理代码。如需加载Huggingface模型库或本地的模型(如LanguageBind/LanguageBind_Thermal
),请参考以下代码示例!
多模态绑定推理
我们在assets中提供了样例数据,可快速验证LanguageBind效果。
import torch
from languagebind import LanguageBind, to_device, transform_dict, LanguageBindImageTokenizer
if __name__ == '__main__':
device = 'cuda:0'
device = torch.device(device)
clip_type = {
'video': 'LanguageBind_Video_FT', # 也可用'LanguageBind_Video'
'audio': 'LanguageBind_Audio_FT', # 也可用'LanguageBind_Audio'
'thermal': 'LanguageBind_Thermal',
'image': 'LanguageBind_Image',
'depth': 'LanguageBind_Depth',
}
model = LanguageBind(clip_type=clip_type, cache_dir='./cache_dir')
model = model.to(device)
model.eval()
pretrained_ckpt = f'lb203/LanguageBind_Image'
tokenizer = LanguageBindImageTokenizer.from_pretrained(pretrained_ckpt, cache_dir='./cache_dir/tokenizer_cache_dir')
modality_transform = {c: transform_dict[c](model.modality_config[c]) for c in clip_type.keys()}
image = ['assets/image/0.jpg', 'assets/image/1.jpg']
audio = ['assets/audio/0.wav', 'assets/audio/1.wav']
video = ['assets/video/0.mp4', 'assets/video/1.mp4']
depth = ['assets/depth/0.png', 'assets/depth/1.png']
thermal = ['assets/thermal/0.jpg', 'assets/thermal/1.jpg']
language = ["训练鹦鹉爬梯子", '狮子爬树抓猴子']
inputs = {
'image': to_device(modality_transform['image'](image), device),
'video': to_device(modality_transform['video'](video), device),
'audio': to_device(modality_transform['audio'](audio), device),
'depth': to_device(modality_transform['depth'](depth), device),
'thermal': to_device(modality_transform['thermal'](thermal), device),
}
inputs['language'] = to_device(tokenizer(language, max_length=77, padding='max_length',
truncation=True, return_tensors='pt'), device)
with torch.no_grad():
embeddings = model(inputs)
print("视频 x 文本: \n",
torch.softmax(embeddings['video'] @ embeddings['language'].T, dim=-1).detach().cpu().numpy())
print("图像 x 文本: \n",
torch.softmax(embeddings['image'] @ embeddings['language'].T, dim=-1).detach().cpu().numpy())
print("深度 x 文本: \n",
torch.softmax(embeddings['depth'] @ embeddings['language'].T, dim=-1).detach().cpu().numpy())
print("音频 x 文本: \n",
torch.softmax(embeddings['audio'] @ embeddings['language'].T, dim=-1).detach().cpu().numpy())
print("热成像 x 文本: \n",
torch.softmax(embeddings['thermal'] @ embeddings['language'].T, dim=-1).detach().cpu().numpy())
将输出如下结果:
视频 x 文本:
[[9.9989331e-01 1.0667283e-04]
[1.3255903e-03 9.9867439e-01]]
图像 x 文本:
[[9.9990666e-01 9.3292067e-05]
[4.6132666e-08 1.0000000e+00]]
深度 x 文本:
[[0.9954276 0.00457235]
[0.12042473 0.8795753 ]]
音频 x 文本:
[[0.97634876 0.02365119]
[0.02917843 0.97082156]]
热成像 x 文本:
[[0.9482511 0.0517489 ]
[0.48746133 0.5125386 ]]
紧急零样本
由于LanguageBind实现了模态间绑定,我们还发现了紧急零样本能力。使用方法极为简单:
print("视频 x 音频: \n", torch.softmax(embeddings['video'] @ embeddings['audio'].T, dim=-1).detach().cpu().numpy())
print("图像 x 深度: \n", torch.softmax(embeddings['image'] @ embeddings['depth'].T, dim=-1).detach().cpu().numpy())
print("图像 x 热成像: \n", torch.softmax(embeddings['image'] @ embeddings['thermal'].T, dim=-1).detach().cpu().numpy())
输出结果:
视频 x 音频:
[[1.0000000e+00 0.0000000e+00]
[3.1150486e-32 1.0000000e+00]]
图像 x 深度:
[[1. 0.]
[0. 1.]]
图像 x 热成像:
[[1. 0.]
[0. 1.]]
分模态任务处理
LanguageBind可拆分为独立分支处理特定模态任务。注意图像编码器直接继承OpenCLIP未经微调。
热成像
import torch
from languagebind import LanguageBindThermal, LanguageBindThermalTokenizer, LanguageBindThermalProcessor
pretrained_ckpt = 'LanguageBind/LanguageBind_Thermal'
model = LanguageBindThermal.from_pretrained(pretrained_ckpt, cache_dir='./cache_dir')
tokenizer = LanguageBindThermalTokenizer.from_pretrained(pretrained_ckpt, cache_dir='./cache_dir')
thermal_process = LanguageBindThermalProcessor(model.config, tokenizer)
model.eval()
data = thermal_process([r"热成像图片路径.jpg"], ['描述文本'], return_tensors='pt')
with torch.no_grad():
out = model(**data)
print(out.text_embeds @ out.image_embeds.T)
深度
import torch
from languagebind import LanguageBindDepth, LanguageBindDepthTokenizer, LanguageBindDepthProcessor
pretrained_ckpt = 'LanguageBind/LanguageBind_Depth'
model = LanguageBindDepth.from_pretrained(pretrained_ckpt, cache_dir='./cache_dir')
tokenizer = LanguageBindDepthTokenizer.from_pretrained(pretrained_ckpt, cache_dir='./cache_dir')
depth_process = LanguageBindDepthProcessor(model.config, tokenizer)
model.eval()
data = depth_process([r"深度图路径.png"], ['描述文本'], return_tensors='pt')
with torch.no_grad():
out = model(**data)
print(out.text_embeds @ out.image_embeds.T)
视频
import torch
from languagebind import LanguageBindVideo, LanguageBindVideoTokenizer, LanguageBindVideoProcessor
pretrained_ckpt = 'LanguageBind/LanguageBind_Video_FT' # 也可用'LanguageBind/LanguageBind_Video'
model = LanguageBindVideo.from_pretrained(pretrained_ckpt, cache_dir='./cache_dir')
tokenizer = LanguageBindVideoTokenizer.from_pretrained(pretrained_ckpt, cache_dir='./cache_dir')
video_process = LanguageBindVideoProcessor(model.config, tokenizer)
model.eval()
data = video_process(["视频路径.mp4"], ['描述文本'], return_tensors='pt')
with torch.no_grad():
out = model(**data)
print(out.text_embeds @ out.image_embeds.T)
音频
import torch
from languagebind
Align Base
ALIGN是一个视觉-语言双编码器模型,通过对比学习实现图像与文本表征的对齐,利用大规模噪声数据实现先进的跨模态表征效果。
多模态对齐
Transformers

英语
A
kakaobrain
78.28k
25
Biomedvlp CXR BERT Specialized
MIT
针对胸部X光领域优化的语言模型,通过改进词汇表、创新预训练流程和文本增强技术实现卓越性能
多模态对齐
Transformers

英语
B
microsoft
35.69k
28
Languagebind Image
MIT
LanguageBind是一种以语言为中心的多模态预训练方法,通过语言作为不同模态之间的纽带,实现语义对齐。
多模态对齐
Transformers

L
LanguageBind
25.71k
11
Languagebind Video FT
MIT
LanguageBind是一种以语言为中心的多模态预训练方法,通过语言作为不同模态之间的纽带,实现视频、红外、深度、音频等多种模态的语义对齐。
多模态对齐
Transformers

L
LanguageBind
22.97k
4
Languagebind Audio FT
MIT
LanguageBind是一种以语言为中心的多模态预训练方法,通过语言作为不同模态间的纽带实现语义对齐。
多模态对齐
Transformers

L
LanguageBind
12.59k
1
Languagebind Video Merge
MIT
LanguageBind是一种通过基于语言的语义对齐将视频-语言预训练扩展至N模态的多模态模型,获得了ICLR 2024的接收。
多模态对齐
Transformers

L
LanguageBind
10.96k
4
E5 V
E5-V是基于多模态大语言模型的通用嵌入方法,能够处理文本和图像输入并生成统一的嵌入表示。
多模态对齐
Transformers

E
royokong
5,619
22
M BERT Base ViT B
基于BERT-base-multilingual微调的多语言CLIP文本编码器,支持69种语言与CLIP视觉编码器对齐
多模态对齐
M
M-CLIP
3,376
12
M3D CLIP
Apache-2.0
M3D-CLIP是专为3D医学影像设计的CLIP模型,通过对比损失实现视觉与语言的对齐。
多模态对齐
Transformers

M
GoodBaiBai88
2,962
9
Languagebind Video Huge V1.5 FT
MIT
LanguageBind 是一种通过语言实现多模态语义对齐的预训练模型,能够将视频、音频、深度、热成像等多种模态与语言进行绑定,实现跨模态的理解和检索。
多模态对齐
Transformers

L
LanguageBind
2,711
4
精选推荐AI模型
Llama 3 Typhoon V1.5x 8b Instruct
专为泰语设计的80亿参数指令模型,性能媲美GPT-3.5-turbo,优化了应用场景、检索增强生成、受限生成和推理任务
大型语言模型
Transformers

支持多种语言
L
scb10x
3,269
16
Cadet Tiny
Openrail
Cadet-Tiny是一个基于SODA数据集训练的超小型对话模型,专为边缘设备推理设计,体积仅为Cosmo-3B模型的2%左右。
对话系统
Transformers

英语
C
ToddGoldfarb
2,691
6
Roberta Base Chinese Extractive Qa
基于RoBERTa架构的中文抽取式问答模型,适用于从给定文本中提取答案的任务。
问答系统
中文
R
uer
2,694
98
AIbase是一个专注于MCP服务的平台,为AI开发者提供高质量的模型上下文协议服务,助力AI应用开发。
简体中文