MegaPairs: un nuevo modelo de incrustación vectorial multimodal de BGE
Últimos recursos sobre IAPublicado hace 6 meses Círculo de intercambio de inteligencia artificial 10.5K 00
Introducción general
MegaPairs es un proyecto de código abierto en GitHub del equipo VectorSpaceLab para generar modelos de incrustación multimodal para tareas de recuperación de imagen-texto-a-imagen mediante técnicas de síntesis de datos a gran escala. El proyecto se basa en más de 26 millones de conjuntos de datos heterogéneos de tríadas KNN , modelos entrenados de la serie BGE-VL , incluyendo BGE-VL-CLIP (versiones base y grande) y BGE-VL-MLLM (versiones S1 y S2). Entre ellos, BGE-VL-MLLM-S1 mejora el rendimiento en 8,1% en la prueba de referencia de recuperación de imágenes de muestra cero CIRCO (mAP@5) y también obtiene buenos resultados en la prueba de referencia de incrustación multimodal MMEB. El código y el modelo se han publicado en GitHub y Hugging Face, y el conjunto de datos se publicará posteriormente bajo licencia MIT, con datos procedentes de Recap-Datacomp (licencia CC BY 4.0).

Lista de funciones
- Generar conjuntos de datos a gran escalaProporciona más de 26 millones de triplas KNN heterogéneas para el entrenamiento de modelos de incrustación multimodal.
- Modelo de incrustación BGE-VL-CLIP: Incluye versiones base y ampliadas, genera representaciones incrustadas de imágenes y texto, y admite una recuperación eficaz.
- Modelo de incrustación BGE-VL-MLLM: están disponibles las versiones S1 y S2, que generan incrustaciones multimodales de alto rendimiento compatibles con la recuperación de muestras cero.
- Admite búsqueda de muestra ceroGenerar incrustaciones y realizar tareas de recuperación de texto-imagen sin formación.
- Modelo de código abierto y ampliación: Proporciona modelos preentrenados en Hugging Face, facilitando su descarga, uso y puesta a punto.
Utilizar la ayuda
MegaPairs distribuye código y modelos a través de GitHub y Hugging Face, lo que permite a los usuarios generar rápidamente incrustaciones multimodales y completar tareas de recuperación. A continuación se ofrece una guía detallada basada en las instrucciones oficiales de BGE-VL-MLLM-S1 (Hugging Face).
Adquisición e instalación
- Acceso a los repositorios de GitHub: Abierto
https://github.com/VectorSpaceLab/MegaPairs
Ver detalles del proyecto. - almacén de clonesEjecute el siguiente comando en el terminal para descargar el código:
git clone https://github.com/VectorSpaceLab/MegaPairs.git
cd MegaPairs
- Instalación de dependencias: Usando Python 3.10, crea un entorno virtual e instala las librerías necesarias:
python -m venv venv
source venv/bin/activate # Linux/Mac
venv\Scripts\activate # Windows
pip install torch transformers==4.41.2 sentencepiece
Solicitud de Cara de Abrazo transformers==4.41.2
responder cantando sentencepiece
.
4. Descargar modelosConsigue BGE-VL-MLLM-S1 de Hugging Face:
- Visite https://huggingface.co/BAAI/BGE-VL-MLLM-S1
- Descarga automática mediante script Python (véase más abajo).
Utilización de las funciones principales
1. Utilización de conjuntos de datos
El conjunto de datos MegaPairs, que contiene 26 millones de triplas para entrenar modelos de incrustación multimodal, aún no se ha publicado en su totalidad y está previsto que se publique a través de la Cara de abrazo Oferta.
- Método de adquisición: Esté atento a la actualización oficial, descárguela y utilícela para el entrenamiento o la validación del modelo.
- formato de los datos: ternario (imagen de consulta, descripción de texto, imagen de destino) con soporte para la generación y recuperación de incrustaciones.
2. Generación de incrustaciones multimodales (BGE-VL-MLLM-S1)
BGE-VL-MLLM-S1 es el modelo de incrustación central para generar representaciones incrustadas de imágenes y texto y completar la recuperación. A continuación se muestra el código oficial:
- Modelos de carga:
import torch
from transformers import AutoModel, AutoProcessor
model_name = "BAAI/BGE-VL-MLLM-S1"
processor = AutoProcessor.from_pretrained(model_name, trust_remote_code=True)
model = AutoModel.from_pretrained(model_name, trust_remote_code=True)
model.eval()
model.cuda() # 使用 GPU 加速
- Generar incrustación y recuperar:
from PIL import Image # 准备输入 query_image = Image.open("./cir_query.png").convert("RGB") query_text = "Make the background dark, as if the camera has taken the photo at night" candidate_images = [Image.open("./cir_candi_1.png").convert("RGB"), Image.open("./cir_candi_2.png").convert("RGB")] # 处理查询数据 query_inputs = processor( text=query_text, images=query_image, task_instruction="Retrieve the target image that best meets the combined criteria by using both the provided image and the image retrieval instructions: ", return_tensors="pt", q_or_c="q" ) query_inputs = {k: v.cuda() for k, v in query_inputs.items()} # 处理候选数据 candidate_inputs = processor( images=candidate_images, return_tensors="pt", q_or_c="c" ) candidate_inputs = {k: v.cuda() for k, v in candidate_inputs.items()} # 生成嵌入并计算相似度 with torch.no_grad(): query_embs = model(**query_inputs, output_hidden_states=True).hidden_states[-1][:, -1, :] candi_embs = model(**candidate_inputs, output_hidden_states=True).hidden_states[-1][:, -1, :] query_embs = torch.nn.functional.normalize(query_embs, dim=-1) candi_embs = torch.nn.functional.normalize(candi_embs, dim=-1) scores = torch.matmul(query_embs, candi_embs.T) print(scores) # 输出相似度得分
- Interpretación de los resultados:
scores
denota la similitud entre la incrustación de la consulta y la incrustación candidata; cuanto mayor sea la puntuación, mayor será la coincidencia.
- Interpretación de los resultados:
3. Generación de incrustaciones con BGE-VL-CLIP
BGE-VL-CLIP (base/grande) también puede generar incrustaciones multimodales:
- Cargar y ejecutar:
from transformers import AutoModel model_name = "BAAI/BGE-VL-base" model = AutoModel.from_pretrained(model_name, trust_remote_code=True) model.set_processor(model_name) model.eval() with torch.no_grad(): query = model.encode(images="./cir_query.png", text="Make the background dark") candidates = model.encode(images=["./cir_candi_1.png", "./cir_candi_2.png"]) scores = query @ candidates.T print(scores)
4. Ajuste del modelo
Los usuarios pueden ajustar el modelo con el conjunto de datos:
- Preparación de datos: Prepara pares o triples imagen-texto.
- proceso de ajuste: Se publicará un código perfeccionado, disponible en
transformers
(utilizado como expresión nominal)Trainer
API. - validar (una teoría)Prueba el efecto utilizando las referencias CIRCO o MMEB.
Función destacada Operación
Generación y recuperación de muestras cero
El BGE-VL-MLLM-S1 admite el funcionamiento con muestreo cero:
- Introduzca imágenes y texto, genere incrustaciones y recupérelas directamente sin formación.
- Actualización de mAP@5 de 8.1% en CIRCO.
Alto rendimiento y escalabilidad
- actuacionesGenerar excelentes incrustaciones multimodales en MMEB, optimizadas para la versión S2.
- escalabilidad: La calidad de la incrustación mejora a medida que aumenta el volumen de datos, y 500.000 muestras ya superan a los modelos tradicionales.
advertencia
- requisitos de hardwareGPU recomendada (16 GB de memoria de vídeo o más).
- versión de dependencia: Uso
transformers==4.41.2
responder cantandosentencepiece
. - Soporte documental: Echa un vistazo a las páginas GitHub y Hugging Face.
- Ayuda comunitariaHaz una pregunta en GitHub Issues o en Hugging Face Discussions.
Con los pasos anteriores, el usuario puede generar la incrustación multimodal y completar la tarea de recuperación.
© declaración de copyright
Derechos de autor del artículo Círculo de intercambio de inteligencia artificial Todos, por favor no reproducir sin permiso.
Artículos relacionados
Sin comentarios...