🚀 360VL
360VL 是基于 LLama3 语言模型开发的,也是业界首个基于 LLama3 - 70B [🤗Meta - Llama - 3 - 70B - Instruct] 的开源大型多模态模型。除应用 Llama3 语言模型外,360VL 模型还设计了全局感知多分支投影器架构,使模型具备更充足的图像理解能力。
🚀 快速开始
from transformers import AutoModelForCausalLM, AutoTokenizer
import torch
from PIL import Image
checkpoint = "qihoo360/360VL-70B"
model = AutoModelForCausalLM.from_pretrained(checkpoint, torch_dtype=torch.float16, device_map='auto', trust_remote_code=True).eval()
tokenizer = AutoTokenizer.from_pretrained(checkpoint, trust_remote_code=True)
vision_tower = model.get_vision_tower()
vision_tower.load_model()
vision_tower.to(device="cuda", dtype=torch.float16)
image_processor = vision_tower.image_processor
tokenizer.pad_token = tokenizer.eos_token
image = Image.open("docs/008.jpg").convert('RGB')
query = "Who is this cartoon character?"
terminators = [
tokenizer.convert_tokens_to_ids("<|eot_id|>",)
]
inputs = model.build_conversation_input_ids(tokenizer, query=query, image=image, image_processor=image_processor)
input_ids = inputs["input_ids"].to(device='cuda', non_blocking=True)
images = inputs["image"].to(dtype=torch.float16, device='cuda', non_blocking=True)
output_ids = model.generate(
input_ids,
images=images,
do_sample=False,
eos_token_id=terminators,
num_beams=1,
max_new_tokens=512,
use_cache=True)
input_token_len = input_ids.shape[1]
outputs = tokenizer.batch_decode(output_ids[:, input_token_len:], skip_special_tokens=True)[0]
outputs = outputs.strip()
print(outputs)
✨ 主要特性
- 多轮文本 - 图像对话:360VL 可以同时接受文本和图像作为输入,并输出文本。目前,它支持单张图像的多轮视觉问答。
- 双语文本支持:360VL 支持中英文对话,包括图像中的文本识别。
- 强大的图像理解能力:360VL 擅长分析视觉信息,是从图像中提取、整理和总结信息等任务的高效工具。
- 细粒度图像分辨率:360VL 支持更高分辨率(672×672)的图像理解。
📦 模型库
360VL 已发布以下版本:
📊 性能表现
模型 |
检查点 |
MMBT |
MMBD |
MMB - CNT |
MMB - CND |
MMMUV |
MMMUT |
MME |
QWen - VL - Chat |
🤗LINK |
61.8 |
60.6 |
56.3 |
56.7 |
37 |
32.9 |
1860 |
mPLUG - Owl2 |
🤖LINK |
66.0 |
66.5 |
60.3 |
59.5 |
34.7 |
32.1 |
1786.4 |
CogVLM |
🤗LINK |
65.8 |
63.7 |
55.9 |
53.8 |
37.3 |
30.1 |
1736.6 |
Monkey - Chat |
🤗LINK |
72.4 |
71 |
67.5 |
65.8 |
40.7 |
- |
1887.4 |
MM1 - 7B - Chat |
LINK |
- |
72.3 |
- |
- |
37.0 |
35.6 |
1858.2 |
IDEFICS2 - 8B |
🤗LINK |
75.7 |
75.3 |
68.6 |
67.3 |
43.0 |
37.7 |
1847.6 |
SVIT - v1.5 - 13B |
🤗LINK |
69.1 |
- |
63.1 |
- |
38.0 |
33.3 |
1889 |
LLaVA - v1.5 - 13B |
🤗LINK |
69.2 |
69.2 |
65 |
63.6 |
36.4 |
33.6 |
1826.7 |
LLaVA - v1.6 - 13B |
🤗LINK |
70 |
70.7 |
68.5 |
64.3 |
36.2 |
- |
1901 |
Honeybee |
LINK |
73.6 |
74.3 |
- |
- |
36.2 |
- |
1976.5 |
YI - VL - 34B |
🤗LINK |
72.4 |
71.1 |
70.7 |
71.4 |
45.1 |
41.6 |
2050.2 |
360VL - 8B |
🤗LINK |
75.3 |
73.7 |
71.1 |
68.6 |
39.7 |
37.1 |
1944.6 |
360VL - 70B |
🤗LINK |
78.1 |
80.4 |
76.9 |
77.7 |
50.8 |
44.3 |
2012.3 |
📚 详细文档
模型类型
360VL - 70B 是一个通过在多模态指令跟随数据上微调大语言模型(LLM)训练得到的开源聊天机器人。它是一个基于 Transformer 架构的自回归语言模型。
基础大语言模型:meta - llama/Meta - Llama - 3 - 70B - Instruct
模型训练时间
360VL - 70B 于 2024 年 5 月完成训练。
📄 许可证
本项目使用了一些数据集和检查点,这些数据集和检查点受其各自的原始许可证约束。用户必须遵守这些原始许可证的所有条款和条件。
本项目内容本身采用 Apache 2.0 许可证。
反馈渠道:
https://github.com/360CVGroup/360VL
🌟 相关项目
本工作离不开以下项目的优秀开源代码,在此表示衷心感谢!
Github:https://github.com/360CVGroup/360VL