⭐️ Nuestra serie funciona: [ MMStar ] [ ShareGPT4Video ] [ ShareGPT4Omni ]
??? Implementación oficial de ShareGPT4V: mejora de modelos multimodales grandes con mejores subtítulos en ECCV 2024.
Autores : Lin Chen*, Jinsong Li*, Xiaoyi Dong, Pan Zhang, Conghui He, Jiaqi Wang, Feng Zhao?, Dahua Lin?
Institutos : Universidad de Ciencia y Tecnología de China; Laboratorio de IA de Shanghai
Recursos : [Documento] [Página del proyecto] [ Compartir conjunto de datos GPT4V]
Modelos : [ShareGPT4V-7B] [ShareCaptioner]
Demostración de ShareGPT4V-7B [OpenXLab] [?HuggingFace] [Colab]
Demostración de Share-Captioner [OpenXlab] [?HuggingFace]
? Un conjunto de datos de imagen y texto altamente descriptivo a gran escala
? 100.000 subtítulos generados por GPT4-Vision, 1,2 millones de subtítulos de alta calidad
? Un subtítulo de imágenes general , que se acerca a la capacidad de subtítulos de GPT4-Vision.
? Un modelo multimodal grande superior, ShareGPT4V-7B
[2024/7/2] ¡Feliz de anunciar que ECCV 2024 acepta ShareGPT4V!
[2024/5/8] Lanzamos ShareGPT4Video , un conjunto de datos de subtítulos de vídeo a gran escala, con 40.000 subtítulos anotados por GPT4V y 4,8 millones de subtítulos anotados por nuestro ShareCaptioner-Video. ¡Los videos totales duran 300 horas y 3000 horas por separado!
[2024/4/1] Lanzamos un punto de referencia multimodal indispensable para la visión de élite , MMStar. ¿¡Divertirse!?
[2023/12/14] Lanzamos el modelo ShareGPT4V-13B. ¿¡Divertirse!?
[2023/12/13] El código de capacitación y evaluación está disponible.
[2023/12/13] ¡ Local ShareCaptioner ya está disponible! Puede utilizarlo para generar subtítulos de alta calidad para su conjunto de datos con inferencia por lotes ejecutando directamente tools/share-cap_batch_infer.py
.
[2023/11/23] ¿ ¡Lanzamos la demostración web de Share-Captioner general!?
[2023/11/23] ¿¡Lanzamos código para crear su demostración local de ShareGPT4V-7B!?
[2023/11/22] ¿ La demostración web y el punto de control ya están disponibles?
[2023/11/21] ¿ El conjunto de datos ShareGPT4V ya está disponible?
[2023/11/20] ¡Se publica el artículo y la página del proyecto!
Código de capacitación y evaluación para ShareGPT4V-7B
Subtítulo compartido local
Demostración web y demostración local de ShareGPT4V-7B
Puntos de control de ShareGPT4V-7B
Ver más detalles en ModelZoo.md.
Nombre | LLM | Control | LLaVA-Banco-Salvaje | Percepción MME | cognición MME | MMBanco | MMBench-CN | Imagen de SEMILLA | MM-Vet | Banco Q | Imagen SQA | VQA-v2 | VizWiz | GQA | TextoVQA |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
CompartirGPT4V-7B | Vicuña-7B | CompartirGPT4V-7B | 72,6 | 1567.4 | 376,4 | 68,8 | 62.2 | 69,7 | 37,6 | 63.4 | 68,4 | 80,6 | 57.2 | 63.3 | 60,4 |
CompartirGPT4V-13B | Vicuña-13B | CompartirGPT4V-13B | 79,9 | 1618.7 | 303.2 | 68,5 | 63,7 | 70,8 | 43.1 | 65.2 | 71.2 | 81.0 | 55,6 | 64,8 | 62.2 |
from share4v.model.builder import load_pretrained_modelfrom share4v.mm_utils import get_model_name_from_pathfrom share4v.eval.run_share4v import eval_modelmodel_path = "Lin-Chen/ShareGPT4V-7B"tokenizer, modelo, image_processor, context_len = load_pretrained_model( model_path=model_path, model_base=Ninguno, nombre_modelo=obtener_nombre_modelo_desde_ruta(ruta_modelo) )
Consulte los detalles con la función load_pretrained_model
en share4v/model/builder.py
.
También puede utilizar la función eval_model
en share4v/eval/run_llava.py
para obtener el resultado fácilmente. Al hacerlo, podrá utilizar este código en Colab directamente después de descargar este repositorio.
model_path = "Lin-Chen/ShareGPT4V-7B"prompt = "¿Cuál es el eslogan más común del personaje de la derecha?"image_file = "examples/breaking_bad.png"args = type('Args', (), { " model_path": model_path, "model_base": Ninguno, "model_name": get_model_name_from_path(model_path), "query": solicitud, "conv_mode": Ninguno, "image_file": archivo_imagen, "sep": ",", "temperature": 0, "top_p": Ninguno, "num_beams": 1, "max_new_tokens": 512})()eval_model(args )
clon de git https://github.com/InternLM/InternLM-XComposer --profundidad=1cd proyectos/ShareGPT4V conda crear -n share4v python=3.10 -y conda activar share4v instalación de pip --actualizar pip pip install -e .pip install -e ".[tren]"pip install flash-attn --no-build-isolation
Puede crear su demostración local mediante:
# run script python tools/app.py
Debe seguir estas instrucciones Data.md para administrar los conjuntos de datos. Actualmente, proporcionamos acceso de descarga directa a los datos web. Sin embargo, para evitar posibles disputas, planeamos publicar URL para estos conjuntos de datos en lugar de los datos sin procesar en un futuro próximo.
El entrenamiento del modelo ShareGPT4V consta de dos etapas: (1) etapa de alineación de características: utilice nuestro conjunto de datos ShareGPT4V-PT con 1,2 millones de pares de imagen y texto de alta calidad generados por ShareCaptioner para ajustar el codificador de visión, el proyector y el LLM para alinear el texto y modalidades visuales; (2) etapa de ajuste de instrucciones visuales: ajuste el proyector y LLM para enseñar al modelo a seguir instrucciones multimodales.
Para entrenar con menos GPU, puede reducir per_device_train_batch_size
y aumentar gradient_accumulation_steps
en consecuencia. Mantenga siempre el mismo tamaño de lote global: per_device_train_batch_size x gradient_accumulation_steps x num_gpus
.
Utilizamos un conjunto similar de hiperparámetros al de ShareGPT4V-7B en el ajuste fino. A continuación se proporcionan ambos hiperparámetros utilizados en el preentrenamiento y el ajuste fino.
Preentrenamiento
Hiperparámetro | Tamaño de lote global | Tasa de aprendizaje | Épocas | Longitud máxima | Caída de peso |
---|---|---|---|---|---|
CompartirGPT4V-7B | 256 | 2e-5 | 1 | 2048 | 0 |
Sintonia FINA
Hiperparámetro | Tamaño de lote global | Tasa de aprendizaje | Épocas | Longitud máxima | Caída de peso |
---|---|---|---|---|---|
CompartirGPT4V-7B | 128 | 2e-5 | 1 | 2048 | 0 |
Primero, debe descargar el proyector MLP previamente entrenado por LLaVA-1.5 con LAION-CC-SBU-558K. Porque un proceso aproximado de alineación de modalidades es beneficioso antes de utilizar subtítulos detallados de alta calidad para la alineación de modalidades.
Puede ejecutar projects/ShareGPT4V/scripts/sharegpt4v/slurm_pretrain_7b.sh
para preparar previamente el modelo. Recuerde especificar la ruta del proyector en el guión. En esta etapa, ajustamos la segunda mitad de los bloques, el proyector y el LLM del codificador de visión.
En nuestra configuración utilizamos 16 GPU A100 (80G) y todo el proceso de preentrenamiento duró aproximadamente 12 horas. Puede ajustar la cantidad de pasos de acumulación de gradiente para reducir la cantidad de GPU.
En esta etapa, ajustamos el proyector y el LLM con sharegpt4v_mix665k_cap23k_coco-ap9k_lcs3k_sam9k_div2k.json.
Puede ejecutar projects/ShareGPT4V/scripts/sharegpt4v/slurm_finetune_7b.sh
para ajustar el modelo.
En nuestra configuración utilizamos 16 GPU A100 (80G) y todo el proceso de preentrenamiento duró aproximadamente 7 horas. Puede ajustar la cantidad de pasos de acumulación de gradiente para reducir la cantidad de GPU.
Para garantizar la reproducibilidad, evaluamos los modelos con decodificación codiciosa. No evaluamos el uso de la búsqueda por haz para que el proceso de inferencia sea coherente con la demostración de chat de resultados en tiempo real.
Consulte Evaluación.md.
LLaVA: el código base sobre el que construimos. Gracias por su maravilloso trabajo.
Vicuña: ¡el increíble modelo de lenguaje grande de código abierto!
Si encuentra que nuestro trabajo es útil para su investigación, considere otorgar una estrella ⭐ y una cita.
@article{chen2023sharegpt4v, title={ShareGPT4V: Mejora de modelos multimodales grandes con mejores leyendas}, autor={Chen, Lin y Li, Jisong y Dong, Xiaoyi y Zhang, Pan y He, Conghui y Wang, Jiaqi y Zhao, Feng y Lin, Dahua}, diario = {arXiv preprint arXiv:2311.12793}, año={2023}}@article{chen2024sharegpt4video, title={ShareGPT4Video: Mejorar la comprensión y generación de videos con mejores subtítulos}, autor={Chen, Lin y Wei, Xilin y Li, Jinsong y Dong, Xiaoyi y Zhang, Pan y Zang , Yuhang y Chen, Zehui y Duan, Haodong y Lin, Bin y Tang, Zhenyu y otros}, diario={arXiv preprint arXiv:2406.04325}, año={2024}}@article{chen2024we, title={¿Estamos en el camino correcto para evaluar modelos de visión-lenguaje de gran tamaño?}, autor={Chen, Lin y Li, Jinsong y Dong, Xiaoyi y Zhang, Pan y Zang, Yuhang y Chen, Zehui y Duan, Haodong y Wang, Jiaqi y Qiao, Yu y Lin, Dahua y otros}, diario={arXiv preprint arXiv:2403.20330}, año={2024}}
Avisos de uso y licencia : los datos y el punto de control están destinados y autorizados para uso de investigación únicamente. También están restringidos a usos que siguen el acuerdo de licencia de LLaMA, Vicuña y GPT-4. El conjunto de datos es CC BY NC 4.0 (permite únicamente el uso no comercial) y los modelos entrenados con el conjunto de datos no deben usarse fuera de fines de investigación.