Llava Llama 3 8b
模型简介
该模型针对多模态基准评估进行了微调,也可用作多模态聊天机器人。
模型特点
多模态能力
结合视觉编码器和语言模型,能够理解和生成与图像相关的文本内容。
高性能基准
在多个多模态基准测试中表现优异,如GQA、MMVP、Pope等。
基于LLaVA-v1.5框架
采用改进的视觉指令调优基线,提升了多模态任务的性能。
模型能力
图像理解
多模态对话
视觉问答
图像描述生成
使用案例
多模态评估
多模态基准测试
用于评估模型在多模态任务中的性能表现。
在GQA、MMVP、Pope等基准测试中取得较高分数。
聊天机器人
多模态聊天
作为多模态聊天机器人,能够理解和回答与图像相关的问题。
🚀 LLaVA-llama-3-8B大语言模型
llava-llama-3-8b
是一个大型多模态模型(LMM),它基于 LLaVA-v1.5框架 进行训练。该模型以拥有80亿参数的 meta-llama/Meta-Llama-3-8B-Instruct
模型作为语言主干,并采用了基于CLIP的视觉编码器。
🚀 快速开始
本模型已针对多模态基准评估进行了微调,也可用作多模态聊天机器人。不过,请注意我们仅提供训练后的权重差异,不提供基础模型 meta-llama/Meta-Llama-3-8B-Instruct
的副本。使用这些权重需要单独下载基础模型。
✨ 主要特性
模型指标
属性 | 详情 |
---|---|
模型类型 | 大型多模态模型(LMM) |
训练数据 | LLaVA-v1.5数据混合,包括558K来自LAION/CC/SBU的过滤图像 - 文本对(由BLIP添加字幕)、158K GPT生成的多模态指令跟随数据、450K面向学术任务的VQA数据混合以及40K ShareGPT数据 |
GQA | 60.6138 |
MMVP | 36 |
Pope Acc | 87.33 |
Pope F1 | 86.5 |
MMVet | 31.9725 |
ScienceQA | 72.9797 |
llavaw (1) | 56.9 |
llavaw (2) | 61.9 |
llavaw (3) | 73.6 |
llavaw (4) | 65.7 |
模型详情
模型详情 | 描述 |
---|---|
作者 | 英特尔:Musashi Hinck*、Matthew L. Olson*、Vasudev Lal |
日期 | 2024年5月 |
版本 | 1 |
类型 | 大型多模态模型(LMM) |
论文或其他资源 | Improved Baselines with Visual Instruction Tuning |
许可证 | 英特尔研究使用许可,所有使用代码遵循Apache 2.0许可 |
问题或建议 | 社区板块 和 英特尔DevHub Discord |
预期用途
预期用途 | 描述 |
---|---|
主要预期用途 | 该模型已针对多模态基准评估进行微调,也可用作多模态聊天机器人 |
主要预期用户 | 任何使用或评估多模态模型的人 |
非预期用途 | 此模型不适用于需要高度事实性的用途、高风险情况、心理健康或医疗应用、生成错误信息或虚假信息、冒充他人、助长或煽动骚扰或暴力,以及任何可能导致违反《联合国人权宣言》所规定人权的用途 |
影响因素
因素 | 描述 |
---|---|
环境 | 在一个包含4个节点、共32个Gaudi 2加速器的集群上进行训练 |
卡片提示 | 在其他硬件和软件上进行模型训练和部署会改变模型性能 |
伦理考量
英特尔致力于尊重人权,避免对人权造成或促成不利影响。请参阅 英特尔全球人权原则。英特尔的产品和软件仅旨在用于不会对人权造成或促成不利影响的应用。
伦理考量 | 描述 |
---|---|
数据 | 该模型使用上述的LLaVA-v1.5数据混合进行训练 |
人类生活 | 该模型并非用于为对人类生活或繁荣至关重要的决策提供信息 |
缓解措施 | 在模型开发过程中未考虑额外的风险缓解策略 |
风险和危害 | 此模型尚未进行危害或偏差评估,不应用于可能造成危害的敏感应用 |
使用案例 | - |
注意事项和建议
⚠️ 重要提示
用户(直接用户和下游用户)应了解该模型的风险、偏差和局限性。此模型尚未进行危害或偏差评估,不应用于可能造成危害的敏感应用。
📦 安装指南
由于仅提供权重差异,需要单独下载基础模型 meta-llama/Meta-Llama-3-8B-Instruct
。
💻 使用示例
基础用法
# Copyright 2024 Intel Corporation
# SPDX-License-Identifier: Apache-2.0
import requests
import torch
from PIL import Image
from transformers import AutoProcessor, AutoModelForPreTraining
import transformers
def expand2square(pil_img, background_color):
width, height = pil_img.size
if width == height:
return pil_img
elif width > height:
result = Image.new(pil_img.mode, (width, width), background_color)
result.paste(pil_img, (0, (width - height) // 2))
return result
else:
result = Image.new(pil_img.mode, (height, height), background_color)
result.paste(pil_img, ((height - width) // 2, 0))
return result
def add_model_a_to_b(model_a, model_b):
state_dict_a = model_a.state_dict()
state_dict_b = model_b.state_dict()
# Ensure keys match before subtraction
if set(state_dict_a.keys()) != set(state_dict_b.keys()):
raise ValueError("Model state dicts do not have the same keys.")
for key in state_dict_a:
if state_dict_a[key].shape != state_dict_b[key].shape:
raise ValueError(f"Shape mismatch for key '{key}': {state_dict_a[key].shape} vs {state_dict_b[key].shape}")
# Subtract model_a's weights from model_b for the matching key
state_dict_b[key] = state_dict_b[key] + state_dict_a[key]
# Update model_b with the new weights
model_b.load_state_dict(state_dict_b)
output_checkpoint = "" # set if you don't want to merge every time
hf_checkpoint = "Intel/llava-llama-3-8b"
device = "cuda" if torch.cuda.is_available() else "cpu"
processor = AutoProcessor.from_pretrained(hf_checkpoint)
model = AutoModelForPreTraining.from_pretrained(hf_checkpoint)
if model.language_model.model.embed_tokens.weight[-1].sum() == 0:
print("adding llama3 weights")
model_id = "meta-llama/Meta-Llama-3-8B-Instruct"
pipeline = transformers.pipeline(
"text-generation",
model=model_id,
model_kwargs={"torch_dtype": torch.bfloat16},
device_map="cpu",
)
llama3 = pipeline.model
add_model_a_to_b(llama3, model.language_model)
if output_checkpoint:
print("saving weights, so no adding is needed again")
model.save_pretrained(output_checkpoint)
device = "cuda" if torch.cuda.is_available() else "cpu"
model.to(device)
prompt = processor.tokenizer.apply_chat_template(
[{'role': 'user', 'content': "<image>\nWhat's the content of the image?"}],
tokenize=False,
add_generation_prompt=True
)
url = "https://www.ilankelman.org/stopsigns/australia.jpg"
image = Image.open(requests.get(url, stream=True).raw)
#original llava pads with mean, HF llava pads with zeros
image = expand2square(image, tuple(int(x*255) for x in processor.image_processor.image_mean))
inputs = processor(text=prompt, images=image, return_tensors="pt").to(device)
# Generate
generate_ids = model.generate(**inputs, max_length=30)
output = processor.batch_decode(generate_ids, skip_special_tokens=True, clean_up_tokenization_spaces=False)[0]
print(output)
📚 详细文档
此模型卡由 Eduardo Alvarez 和上述作者创建。
📄 许可证
英特尔研究使用许可,所有使用代码遵循Apache 2.0许可。
Clip Vit Large Patch14
CLIP是由OpenAI开发的视觉-语言模型,通过对比学习将图像和文本映射到共享的嵌入空间,支持零样本图像分类
图像生成文本
C
openai
44.7M
1,710
Clip Vit Base Patch32
CLIP是由OpenAI开发的多模态模型,能够理解图像和文本之间的关系,支持零样本图像分类任务。
图像生成文本
C
openai
14.0M
666
Siglip So400m Patch14 384
Apache-2.0
SigLIP是基于WebLi数据集预训练的视觉语言模型,采用改进的sigmoid损失函数,优化了图像-文本匹配任务。
图像生成文本
Transformers

S
google
6.1M
526
Clip Vit Base Patch16
CLIP是由OpenAI开发的多模态模型,通过对比学习将图像和文本映射到共享的嵌入空间,实现零样本图像分类能力。
图像生成文本
C
openai
4.6M
119
Blip Image Captioning Base
Bsd-3-clause
BLIP是一个先进的视觉-语言预训练模型,擅长图像描述生成任务,支持条件式和非条件式文本生成。
图像生成文本
Transformers

B
Salesforce
2.8M
688
Blip Image Captioning Large
Bsd-3-clause
BLIP是一个统一的视觉-语言预训练框架,擅长图像描述生成任务,支持条件式和无条件式图像描述生成。
图像生成文本
Transformers

B
Salesforce
2.5M
1,312
Openvla 7b
MIT
OpenVLA 7B是一个基于Open X-Embodiment数据集训练的开源视觉-语言-动作模型,能够根据语言指令和摄像头图像生成机器人动作。
图像生成文本
Transformers 英语

O
openvla
1.7M
108
Llava V1.5 7b
LLaVA 是一款开源多模态聊天机器人,基于 LLaMA/Vicuna 微调,支持图文交互。
图像生成文本
Transformers

L
liuhaotian
1.4M
448
Vit Gpt2 Image Captioning
Apache-2.0
这是一个基于ViT和GPT2架构的图像描述生成模型,能够为输入图像生成自然语言描述。
图像生成文本
Transformers

V
nlpconnect
939.88k
887
Blip2 Opt 2.7b
MIT
BLIP-2是一个视觉语言模型,结合了图像编码器和大型语言模型,用于图像到文本的生成任务。
图像生成文本
Transformers 英语

B
Salesforce
867.78k
359
精选推荐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