模型简介
模型特点
模型能力
使用案例
🚀 XGen-MM - 最新多模态基础大模型
XGen-MM 是 Salesforce AI Research 开发的一系列最新的大型多模态基础模型(LMMs)。该系列在 BLIP
系列的成功设计基础上进行了改进,融入了基础增强功能,确保了更强大和卓越的基础。这些模型在高质量的图像字幕数据集和交错的图像文本数据上进行了大规模训练。
🚀 快速开始
模型使用示例
from transformers import AutoModelForVision2Seq, AutoTokenizer, AutoImageProcessor, StoppingCriteria
import torch
import requests
from PIL import Image
# define the prompt template
def apply_prompt_template(prompt):
s = (
'<|system|>\nA chat between a curious user and an artificial intelligence assistant. '
"The assistant gives helpful, detailed, and polite answers to the user's questions.<|end|>\n"
f'<|user|>\n<image>\n{prompt}<|end|>\n<|assistant|>\n'
)
return s
class EosListStoppingCriteria(StoppingCriteria):
def __init__(self, eos_sequence = [32007]):
self.eos_sequence = eos_sequence
def __call__(self, input_ids: torch.LongTensor, scores: torch.FloatTensor, **kwargs) -> bool:
last_ids = input_ids[:,-len(self.eos_sequence):].tolist()
return self.eos_sequence in last_ids
# load models
model_name_or_path = "Salesforce/xgen-mm-phi3-mini-instruct-r-v1"
model = AutoModelForVision2Seq.from_pretrained(model_name_or_path, trust_remote_code=True)
tokenizer = AutoTokenizer.from_pretrained(model_name_or_path, trust_remote_code=True, use_fast=False, legacy=False)
image_processor = AutoImageProcessor.from_pretrained(model_name_or_path, trust_remote_code=True)
tokenizer = model.update_special_tokens(tokenizer)
# craft a test sample
img_url = 'https://storage.googleapis.com/sfr-vision-language-research/BLIP/demo.jpg'
raw_image = Image.open(requests.get(img_url, stream=True).raw).convert('RGB')
query = "how many dogs are in the picture?"
model = model.cuda()
inputs = image_processor([raw_image], return_tensors="pt", image_aspect_ratio='anyres')
prompt = apply_prompt_template(query)
language_inputs = tokenizer([prompt], return_tensors="pt")
inputs.update(language_inputs)
inputs = {name: tensor.cuda() for name, tensor in inputs.items()}
generated_text = model.generate(**inputs, image_size=[raw_image.size],
pad_token_id=tokenizer.pad_token_id,
do_sample=False, max_new_tokens=768, top_p=None, num_beams=1,
stopping_criteria = [EosListStoppingCriteria()],
)
prediction = tokenizer.decode(generated_text[0], skip_special_tokens=True).split("<|end|>")[0]
print("==> prediction: ", prediction)
# output: ==> prediction: There is one dog in the picture.
更多全面的示例可在 notebook 中找到。
环境依赖安装
如果你缺少任何包,请考虑执行以下命令:
pip install torch==2.2.1 torchvision==0.17.1 torchaudio==2.2.1 --index-url https://download.pytorch.org/whl/cu121
pip install open_clip_torch==2.24.0
pip install einops
pip install einops-exts
pip install transformers==4.41.1
✨ 主要特性
- 品牌升级:将原有的 BLIP 系列 延续并更名为 XGen-MM,以更好地与 Salesforce 统一的大型基础模型 XGen 计划保持一致。
- 性能卓越:
- 预训练基础模型
xgen-mm-phi3-mini-base-r-v1
在 50 亿参数下达到了最先进的性能,并展示出强大的上下文学习能力。 - 指令微调模型
xgen-mm-phi3-mini-instruct-r-v1
在 50 亿参数的开源和闭源视觉语言模型中达到了最先进的性能。
- 预训练基础模型
- 灵活编码:
xgen-mm-phi3-mini-instruct-r-v1
支持灵活的高分辨率图像编码,并具有高效的视觉令牌采样功能。
📊 模型效果
预训练(无指令微调的基础模型)
模型 | 样本数 | COCO (验证集) | NoCaps (验证集) | TextCaps (验证集) | OKVQA (验证集) | TextVQA (验证集) | VizWiz (测试开发集) | VQAv2 (测试开发集) |
---|---|---|---|---|---|---|---|---|
Flamingo - 3B | 4 | 85.0 | - | - | 43.3 | 32.7 | 34 | 53.2 |
8 | 90.6 | - | - | 44.6 | 32.4 | 38.4 | 55.4 | |
MM1 - 3B | 0 | 73.5 | 55.6 | 63.3 | 26.1 | 29.4 | 15.6 | 46.2 |
4 | 112.3 | 99.7 | 84.1 | 48.6 | 45.3 | 38.0 | 57.9 | |
8 | 114.6 | 104.7 | 88.8 | 48.4 | 44.6 | 46.4 | 63.6 | |
xgen - mm - phi3 - mini - base - r - v1 (我们的模型) | 0 | 81.7 | 80.2 | 60.7 | 26.5 | 36.0 | 21.2 | 48.1 |
4 | 110.5 | 101.7 | 84.6 | 49.2 | 46.1 | 38.4 | 63.9 | |
8 | 112.1 | 104.4 | 87.7 | 49.1 | 46.4 | 44.3 | 63.8 |
指令微调后
模型 | SEED - IMG | MMBench (开发集) | MME - 总分 | MME - P | MME - C | MMStar | MMMU (验证集) | MMVet | MathVista (迷你版) | ScienceQA (测试集) | POPE | AI2D |
---|---|---|---|---|---|---|---|---|---|---|---|---|
MM1 - 3B - Chat | 68.8 | 67.8 | 1761 | 1482 | 279 | - | 33.9 | 43.7 | - | - | 87.4 | - |
openbmb/MiniCPM - V - 2 | 67.1 | 69.6 | 1808 | - | - | - | 38.2 | - | 38.7 | - | - | - |
VILA1.5 - 3B | 67.9 | 63.4 | - | 1442 | - | - | 33.3 | 35.4 | - | 69.0 | 85.9 | - |
xtuner/llava - phi - 3 - mini - hf | 70.0 | 69.2 | 1790 | 1477 | 313 | 43.7 | 41.4 | - | - | 73.7 | 87.3 | 69.3 |
xgen - mm - phi3 - mini - instruct - r - v1 (我们的模型) | 72.1 | 74.1 | 1827 | 1467 | 360 | 44.6 | 39.8 | 45.1 | 39.3 | 74.2 | 87.2 | 75.8 |
🔍 可复现性说明
我们的 SFT 评估基于 VLMEvalKit,在其中我们修复了与官方基准测试的一些不一致之处(例如,LLM 评判 API)。在开发过程中,我们注意到在某些情况下,输入图像的原始分辨率会显著影响模型输出。
⚠️ 偏差、风险、局限性和伦理考量
数据来源与偏差
主要数据来源是互联网,包括网页、图像素材网站以及研究社区发布的精选数据集。由于已知的儿童性虐待材料(CSAM)问题,我们排除了某些数据,如 LAION。模型可能会受到原始数据源的偏差影响,以及大语言模型(LLMs)和商业 API 的偏差影响。我们强烈建议用户在应用于下游任务之前评估安全性和公平性。
伦理考量
本次发布仅用于支持学术论文的研究目的。我们的模型、数据集和代码并非专门为所有下游用途而设计或评估。我们强烈建议用户在部署此模型之前评估并解决与准确性、安全性和公平性相关的潜在问题。我们鼓励用户考虑人工智能的常见局限性,遵守适用法律,并在选择用例时采用最佳实践,特别是在错误或滥用可能会对人们的生活、权利或安全产生重大影响的高风险场景中。有关用例的进一步指导,请参考我们的使用协议(AUP)和人工智能使用协议(AI AUP)。
📄 许可证
我们的代码和权重遵循知识共享署名 - 非商业性使用 4.0 国际许可协议 LICENSE。如需咨询模型权重的商业使用,请填写 此表格。
🙏 代码致谢
📚 引用
@misc{xue2024xgenmmblip3familyopen,
title={xGen-MM (BLIP-3): A Family of Open Large Multimodal Models},
author={Le Xue and Manli Shu and Anas Awadalla and Jun Wang and An Yan and Senthil Purushwalkam and Honglu Zhou and Viraj Prabhu and Yutong Dai and Michael S Ryoo and Shrikant Kendre and Jieyu Zhang and Can Qin and Shu Zhang and Chia-Chih Chen and Ning Yu and Juntao Tan and Tulika Manoj Awalgaonkar and Shelby Heinecke and Huan Wang and Yejin Choi and Ludwig Schmidt and Zeyuan Chen and Silvio Savarese and Juan Carlos Niebles and Caiming Xiong and Ran Xu},
year={2024},
eprint={2408.08872},
archivePrefix={arXiv},
primaryClass={cs.CV},
url={https://arxiv.org/abs/2408.08872},
}
📣 新闻
📌 [2024 年 8 月 19 日] xGen - MM - v1.5 发布:
- [🤗 xgen - mm - phi3 - mini - instruct - interleave - r - v1.5](https://huggingface.co/Salesforce/xgen - mm - phi3 - mini - instruct - interleave - r - v1.5)
- [🤗 xgen - mm - phi3 - mini - base - r - v1.5](https://huggingface.co/Salesforce/xgen - mm - phi3 - mini - base - r - v1.5)
- [🤗 xgen - mm - phi3 - mini - instruct - singleimg - r - v1.5](https://huggingface.co/Salesforce/xgen - mm - phi3 - mini - instruct - singleimg - r - v1.5)
- [🤗 xgen - mm - phi3 - mini - instruct - dpo - r - v1.5](https://huggingface.co/Salesforce/xgen - mm - phi3 - mini - instruct - dpo - r - v1.5)








