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