Gme Qwen2 VL 7B Instruct
模型简介
模型特点
模型能力
使用案例
🚀 gme-Qwen2-VL-7B
GME-Qwen2VL
系列统一多模态嵌入模型震撼登场!该系列模型基于先进的 Qwen2-VL 多模态大语言模型(MLLMs)构建。
GME
模型支持三种类型的输入:文本、图像和图像 - 文本对,均可生成通用向量表示,具备强大的检索性能。
GME 模型的关键优势:
- 统一多模态表示:GME 模型能够处理单模态和组合模态输入,生成统一的向量表示。这使得它能应用于多种检索场景(任意到任意搜索),支持文本检索、文本到图像检索以及图像到图像搜索等任务。
- 高性能表现:在我们的通用多模态检索基准(UMRB)中取得了最先进(SOTA)的成果,在多模态文本评估基准(MTEB)中也展现出了出色的评估分数。
- 动态图像分辨率:得益于
Qwen2-VL
和我们的训练数据,GME 模型支持动态分辨率的图像输入。 - 强大的视觉检索性能:在 Qwen2-VL 模型系列的加持下,我们的模型在需要对文档截图进行细致理解的视觉文档检索任务中表现卓越。这一能力在复杂文档理解场景中尤为有用,例如专注于学术论文的多模态检索增强生成(RAG)应用。
开发者:阿里巴巴集团通义实验室
论文:GME: Improving Universal Multimodal Retrieval by Multimodal LLMs
GME: General Multimodal Embedding
✨ 主要特性
- 统一多模态表示:可处理单模态和组合模态输入,生成统一向量表示,支持多种检索场景。
- 高性能:在通用多模态检索基准(UMRB)和多模态文本评估基准(MTEB)中表现出色。
- 动态图像分辨率:支持动态分辨率的图像输入。
- 强大的视觉检索性能:在视觉文档检索任务中表现卓越,适用于复杂文档理解场景。
📦 安装指南
微调所需依赖安装
GME 模型可以使用 SWIFT 进行微调,需安装以下依赖:
pip install ms-swift -U
💻 使用示例
基础用法
# You can find the script gme_inference.py in https://huggingface.co/Alibaba-NLP/gme-Qwen2-VL-2B-Instruct/blob/main/gme_inference.py
from gme_inference import GmeQwen2VL
model = GmeQwen2VL('Alibaba-NLP/gme-Qwen2-VL-7B-Instruct')
texts = [
"What kind of car is this?",
"The Tesla Cybertruck is a battery electric pickup truck built by Tesla, Inc. since 2023."
]
images = [
'https://en.wikipedia.org/wiki/File:Tesla_Cybertruck_damaged_window.jpg',
'https://en.wikipedia.org/wiki/File:2024_Tesla_Cybertruck_Foundation_Series,_front_left_(Greenwich).jpg',
]
# Single-modal embedding
e_text = gme.get_text_embeddings(texts=texts)
e_image = gme.get_image_embeddings(images=images)
print((e_text * e_image).sum(-1))
## tensor([0.1702, 0.5278], dtype=torch.float16)
# How to set embedding instruction
e_query = gme.get_text_embeddings(texts=texts, instruction='Find an image that matches the given text.')
# If is_query=False, we always use the default instruction.
e_corpus = gme.get_image_embeddings(images=images, is_query=False)
print((e_query * e_corpus).sum(-1))
## tensor([0.2000, 0.5752], dtype=torch.float16)
# Fused-modal embedding
e_fused = gme.get_fused_embeddings(texts=texts, images=images)
print((e_fused[0] * e_fused[1]).sum())
## tensor(0.6826, dtype=torch.float16)
高级用法
# 微调示例
# MAX_PIXELS settings to reduce memory usage
# check: https://swift.readthedocs.io/en/latest/BestPractices/Embedding.html
nproc_per_node=8
MAX_PIXELS=1003520 \
USE_HF=1 \
NPROC_PER_NODE=$nproc_per_node \
swift sft \
--model Alibaba-NLP/gme-Qwen2-VL-7B-Instruct \
--train_type lora \
--dataset 'HuggingFaceM4/TextCaps:emb' \
--torch_dtype bfloat16 \
--num_train_epochs 1 \
--per_device_train_batch_size 2 \
--per_device_eval_batch_size 2 \
--gradient_accumulation_steps $(expr 64 / $nproc_per_node) \
--eval_steps 100 \
--save_steps 100 \
--eval_strategy steps \
--save_total_limit 5 \
--logging_steps 5 \
--output_dir output \
--lazy_tokenize true \
--warmup_ratio 0.05 \
--learning_rate 5e-6 \
--deepspeed zero3 \
--dataloader_num_workers 4 \
--task_type embedding \
--loss_type infonce \
--dataloader_drop_last true
📚 详细文档
模型列表
模型 | 模型大小 | 最大序列长度 | 维度 | MTEB - 英文 | MTEB - 中文 | UMRB |
---|---|---|---|---|---|---|
gme-Qwen2-VL-2B |
2.21B | 32768 | 1536 | 65.27 | 68.41 | 64.45 |
gme-Qwen2-VL-7B |
8.29B | 32768 | 3584 | 67.48 | 71.36 | 67.44 |
评估结果
我们在通用多模态检索基准(UMRB)等基准上验证了模型的性能。
单模态 | 跨模态 | 融合模态 | 平均 | ||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
T→T (16) | I→I (1) | T→I (4) | T→VD (10) | I→T (4) | T→IT (2) | IT→T (5) | IT→I (2) | IT→IT (3) | (47) | ||
VISTA | 0.2B | 55.15 | 31.98 | 32.88 | 10.12 | 31.23 | 45.81 | 53.32 | 8.97 | 26.26 | 37.32 |
CLIP - SF | 0.4B | 39.75 | 31.42 | 59.05 | 24.09 | 62.95 | 66.41 | 53.32 | 34.9 | 55.65 | 43.66 |
One - Peace | 4B | 43.54 | 31.27 | 61.38 | 42.9 | 65.59 | 42.72 | 28.29 | 6.73 | 23.41 | 42.01 |
DSE | 4.2B | 48.94 | 27.92 | 40.75 | 78.21 | 52.54 | 49.62 | 35.44 | 8.36 | 40.18 | 50.04 |
E5 - V | 8.4B | 52.41 | 27.36 | 46.56 | 41.22 | 47.95 | 54.13 | 32.9 | 23.17 | 7.23 | 42.52 |
[GME - Qwen2 - VL - 2B](https://huggingface.co/Alibaba - NLP/gme - Qwen2 - VL - 2B - Instruct) | 2.2B | 55.93 | 29.86 | 57.36 | 87.84 | 61.93 | 76.47 | 64.58 | 37.02 | 66.47 | 64.45 |
[GME - Qwen2 - VL - 7B](https://huggingface.co/Alibaba - NLP/gme - Qwen2 - VL - 7B - Instruct) | 8.3B | 58.19 | 31.89 | 61.35 | 89.92 | 65.83 | 80.94 | 66.18 | 42.56 | 73.62 | 67.44 |
MTEB 排行榜 的英文板块展示了我们模型的文本嵌入性能。
更多详细的实验结果可在 论文 中查看。
🔧 技术细节
- 单图像输入限制:在
Qwen2-VL
中,一张图像可能会转换为大量的视觉标记。为了获得良好的训练效率,我们将视觉标记的数量限制为 1024。由于缺乏相关数据,我们的模型和评估仅保留单张图像。 - 仅英文训练:我们的模型仅在英文数据上进行训练。尽管
Qwen2-VL
模型支持多语言,但多语言 - 多模态嵌入性能无法保证。
我们将在未来版本中扩展到多图像输入、图像 - 文本交错数据以及多语言数据。
📄 许可证
本项目采用 Apache 2.0 许可证。
其他说明
再分发和使用
我们鼓励并重视 GME 模型的多样化应用以及对模型本身的持续改进。
- 如果您分发或提供 GME 模型(或任何衍生作品),或者创建包含它们的产品或服务(包括其他 AI 模型),您必须在您的网站、用户界面、博客文章、关于页面或产品文档中显著显示
Built with GME
。 - 如果您利用 GME 模型或其输出来开发、训练、微调或改进一个可分发或可用的 AI 模型,您必须在任何此类 AI 模型的名称前加上
GME
。
云 API 服务
除了开源的 GME 系列模型外,GME 系列模型还作为商业 API 服务在阿里云上提供。
- 多模态嵌入模型:
multimodal-embedding-v1
模型服务可用。
请注意,商业 API 背后的模型与开源模型并不完全相同。
招聘信息
我们在通义实验室有研究实习生和全职研究员的职位空缺。我们正在寻找在表示学习、大语言模型驱动的信息检索、检索增强生成(RAG)和基于代理的系统方面有专业知识的热情人士。我们的团队位于充满活力的北京和杭州,提供一个协作和动态的工作环境,您可以在这里为人工智能和机器学习的前沿发展做出贡献。如果您对工作充满好奇并渴望产生有意义的影响,我们很乐意收到您的来信。请将您的简历和简要介绍发送至 dingkun.ldk@alibaba-inc.com。
引用
如果您觉得我们的论文或模型有帮助,请考虑引用:
@misc{zhang2024gme,
title={GME: Improving Universal Multimodal Retrieval by Multimodal LLMs},
author={Zhang, Xin and Zhang, Yanzhao and Xie, Wen and Li, Mingxin and Dai, Ziqi and Long, Dingkun and Xie, Pengjun and Zhang, Meishan and Li, Wenjie and Zhang, Min},
year={2024},
eprint={2412.16855},
archivePrefix={arXiv},
primaryClass={cs.CL},
url={http://arxiv.org/abs/2412.16855},
}









