MiniMind-V: 1 hora de entrenamiento de un modelo de lenguaje visual de 26 millones de parámetros
Últimos recursos sobre IAPublicado hace 4 meses Círculo de intercambio de inteligencia artificial 1.4K 00
Introducción general
MiniMind-V es un proyecto de código abierto, alojado en GitHub, diseñado para ayudar a los usuarios a entrenar un modelo de lenguaje visual ligero (VLM) con sólo 26 millones de parámetros en menos de una hora. Se basa en el modelo de lenguaje MiniMind , el nuevo codificador visual y el módulo de proyección de características , el apoyo a la imagen y el texto de procesamiento conjunto . El proyecto proporciona el código completo, desde la limpieza del conjunto de datos hasta la inferencia del modelo, con un coste de entrenamiento tan bajo como ~RMB1,3 para una sola GPU (por ejemplo, NVIDIA 3090). MiniMind-V hace hincapié en la simplicidad y la facilidad de uso, con menos de 50 líneas de cambios en el código, lo que lo convierte en una herramienta adecuada para que los desarrolladores experimenten y aprendan sobre el proceso de construcción de un modelo de lenguaje visual.

Lista de funciones
- Proporciona código de entrenamiento completo para 26 millones de parámetros de modelos de lenguaje visual, lo que permite un entrenamiento rápido en una sola GPU.
- Utilizando el codificador visual CLIP, se procesó una imagen de 224x224 píxeles para generar 196 fichas visuales.
- Admite la introducción de una o varias imágenes, combinadas con texto para diálogos, descripción de imágenes o preguntas y respuestas.
- Se incluyen secuencias de comandos completas para la limpieza del conjunto de datos, el preentrenamiento y el ajuste fino supervisado (SFT).
- Proporciona la implementación nativa de PyTorch, soporta la aceleración multitarjeta y es altamente compatible.
- Incluye descargas de pesos de modelos y es compatible con las plataformas Hugging Face y ModelScope.
- Proporciona una interfaz web y un razonamiento de línea de comandos para probar fácilmente los efectos del modelo.
- Apoyo a la herramienta wandb para registrar las pérdidas y el rendimiento durante la formación.
Utilizar la ayuda
El proceso de utilización de MiniMind-V incluye la configuración del entorno, la preparación de los datos, la formación del modelo y la comprobación de los efectos. A continuación se describe detalladamente cada paso para ayudar a los usuarios a empezar rápidamente.
Configuración del entorno
MiniMind-V requiere un entorno Python y soporte para GPU. Estos son los pasos de instalación:
- Clonación de código
Ejecute el siguiente comando en el terminal para descargar el código del proyecto:git clone https://github.com/jingyaogong/minimind-v cd minimind-v
- Instalación de dependencias
Ofertas de proyectosrequirements.txt
que contiene las bibliotecas necesarias. Ejecute el siguiente comando:pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
Se recomienda Python 3.9 o superior. Asegúrese de que PyTorch soporta CUDA (si tiene una GPU). Esto puede verificarse ejecutando el siguiente código:
import torch print(torch.cuda.is_available())
exportaciones
True
Indica que la GPU está disponible. - Descargar modelos CLIP
MiniMind-V utiliza el modelo CLIP (clip-vit-base-patch16
) como codificador visual. Ejecute el siguiente comando para descargar y colocar el./model/vision_model
::git clone https://huggingface.co/openai/clip-vit-base-patch16 ./model/vision_model
También se puede descargar desde ModelScope:
git clone https://www.modelscope.cn/models/openai-mirror/clip-vit-base-patch16 ./model/vision_model
- Descargar los pesos del modelo lingüístico base
MiniMind-V se basa en el modelo de lenguaje MiniMind, que requiere la descarga de los pesos del modelo de lenguaje al./out
Catálogo. Ejemplo:wget https://huggingface.co/jingyaogong/MiniMind2-V-PyTorch/blob/main/lm_512.pth -P ./out
o descargar
lm_768.pth
según la configuración del modelo.
Preparación de datos
MiniMind-V utiliza unas 570.000 imágenes de preentrenamiento y 300.000 datos de ajuste de comandos con unos 5 GB de espacio de almacenamiento. el procedimiento es el siguiente:
- Crear un catálogo de conjuntos de datos
En el directorio raíz del proyecto, cree el archivo./dataset
Carpeta:mkdir dataset
- Descargar conjunto de datos
Descargue un conjunto de datos de Hugging Face o ModelScope que contenga los datos*.jsonl
Datos de preguntas y respuestas y*images
Datos de la imagen:- Cara de abrazo: https://huggingface.co/datasets/jingyaogong/minimind-v_dataset
- Alcance del modelo: https://www.modelscope.cn/datasets/gongjy/minimind-v_dataset
Descargue y descomprima los datos de la imagen en./dataset
::
unzip pretrain_images.zip -d ./dataset unzip sft_images.zip -d ./dataset
- Conjunto de datos de validación
seguro./dataset
Contiene los siguientes archivos:pretrain_vlm_data.jsonl
Datos de preentrenamiento, aproximadamente 570.000 entradas.sft_vlm_data.jsonl
Datos de ajuste de una sola cifra, aproximadamente 300.000 entradas.sft_vlm_data_multi.jsonl
Datos de ajuste fino multimapa, aproximadamente 13.600 entradas.- Carpeta de imágenes: contiene archivos de imágenes para el preentrenamiento y el ajuste.
formación de modelos
El entrenamiento de MiniMind-V se divide en preentrenamiento y ajuste fino supervisado, y admite la aceleración de una o varias tarjetas.
- Parámetros de configuración
compilador./model/LMConfig.py
Configure los parámetros del modelo. Ejemplo:- Miniaturas:
dim=512
,n_layers=8
- Modelo mediano:
dim=768
,n_layers=16
Estos parámetros determinan el tamaño y el rendimiento del modelo.
- Miniaturas:
- formación previa
Ejecute scripts de preentrenamiento para aprender las capacidades de descripción de imágenes:python train_pretrain_vlm.py --epochs 4
Los pesos de salida se guardan como
./out/pretrain_vlm_512.pth
(o768.pth
El modelo CLIP se congela). Una sola NVIDIA 3090 tarda aproximadamente 1 hora en completar 1 epoch. congela el modelo CLIP y entrena sólo la capa de proyección y la última capa del modelo de lenguaje. - Ajuste fino supervisado (SFT)
Ajuste fino mediante pesos preentrenados para optimizar las capacidades de diálogo:python train_sft_vlm.py --epochs 4
Los pesos de salida se guardan como
./out/sft_vlm_512.pth
. Este paso entrena la capa de proyección y el modelo lingüístico con todos los parámetros. - Formación Doka (opcional)
Si tienes N tarjetas gráficas, utiliza el siguiente comando para acelerar:torchrun --nproc_per_node N train_pretrain_vlm.py --epochs 4
intercambiabilidad
train_pretrain_vlm.py
Para otros guiones de formación (p. ej.train_sft_vlm.py
). - Supervisar la formación
Las pérdidas de formación pueden registrarse mediante wandb:python train_pretrain_vlm.py --epochs 4 --use_wandb
Consulta los datos en tiempo real en el sitio web oficial de wandb.
Prueba de eficacia
Una vez completado el entrenamiento, se puede probar la capacidad del modelo para dialogar con imágenes.
- razonamiento en línea de comandos
Ejecute el siguiente comando para cargar el modelo:python eval_vlm.py --load 1 --model_mode 1
--load 1
: Carga el modelo de formato de transformadores de Cara Abrazada.--load 0
: De./out
Cargar pesos PyTorch.--model_mode 1
Probando modelos de ajuste fino;0
Prueba de modelos preentrenados.
- Pruebas de la interfaz web
Inicie la interfaz web:python web_demo_vlm.py
entrevistas
http://localhost:8000
Sube una imagen e introduce el texto que quieras probar. - formato de entrada
MiniMind-V utiliza 196@@@
Los marcadores de posición representan una imagen. Ejemplo:@@@...@@@\n这张图片是什么内容?
Ejemplo de entrada de varias imágenes:
@@@...@@@\n第一张图是什么?\n@@@...@@@\n第二张图是什么?
- Descargar las pesas de preentrenamiento
Si no entrenas, puedes descargarte directamente las pesas oficiales:- Formato PyTorch:https://huggingface.co/jingyaogong/MiniMind2-V-PyTorch
- Formato Transformers:https://huggingface.co/collections/jingyaogong/minimind-v-67000833fb60b3a2e1f3597d
advertencia
- Memoria de vídeo recomendada 24 GB (por ejemplo, RTX 3090). Si la memoria de vídeo es insuficiente, reduzca el tamaño del lote (
batch_size
). - Asegurarse de que la ruta del conjunto de datos es correcta.
*.jsonl
y los archivos de imagen deben colocarse en la carpeta./dataset
. - La congelación de los modelos CLIP durante el entrenamiento reduce los requisitos aritméticos.
- Los diálogos multiimagen tienen una eficacia limitada, por lo que se recomienda probar prioritariamente escenarios de una sola imagen.
escenario de aplicación
- Aprendizaje algorítmico AI
MiniMind-V proporciona un código de modelado de lenguaje visual conciso adecuado para que los estudiantes comprendan los principios del modelado cross-modal. Los usuarios pueden modificar el código para experimentar con distintos parámetros o conjuntos de datos. - Creación rápida de prototipos
Los desarrolladores pueden crear prototipos de aplicaciones de diálogo de imágenes basadas en MiniMind-V. Es ligera y eficiente, y resulta adecuada para dispositivos de bajo consumo como PC o sistemas integrados. Es ligero y eficiente, y resulta adecuado para dispositivos de bajo consumo informático, como PC o sistemas integrados. - Herramientas de educación y formación
Los colegios y universidades pueden utilizar MiniMind-V en cursos de IA para mostrar todo el proceso de entrenamiento de modelos. El código está claramente comentado y es adecuado para la práctica en el aula. - Experimentos de bajo coste
El coste de formación del proyecto es bajo, adecuado para que equipos con presupuesto limitado prueben el efecto de los modelos multimodales sin necesidad de servidores de alto rendimiento.
CONTROL DE CALIDAD
- ¿Qué tamaño de imágenes admite MiniMind-V?
El procesamiento por defecto es de imágenes de 224x224 píxeles, limitado por el modelo CLIP. Las imágenes de los conjuntos de datos pueden comprimirse a 128x128 para ahorrar espacio. En el futuro podrán probarse modelos CLIP de mayor resolución. - ¿Cuánto tiempo durará la formación?
En una sola NVIDIA 3090, 1 epoch de preentrenamiento tarda aproximadamente 1 hora, con un ajuste fino un poco más rápido. El tiempo exacto varía en función del hardware y la cantidad de datos. - ¿Puedo ponerlo a punto sin formación previa?
Puede. Descarga directamente las pesas oficiales de preentrenamiento y corretrain_sft_vlm.py
Puesta a punto. - ¿Qué idiomas se admiten?
Soporta principalmente chino e inglés, el efecto depende del conjunto de datos. Los usuarios pueden ampliarlo a otros idiomas mediante ajustes. - ¿Qué tal funciona el diálogo multiimagen?
La actual capacidad de diálogo multiimagen es limitada, por lo que se recomienda utilizar preferentemente escenarios de una sola imagen. En el futuro podrán introducirse mejoras con modelos y conjuntos de datos de mayor tamaño.
© declaración de copyright
El artículo está protegido por derechos de autor y no debe reproducirse sin autorización.
Artículos relacionados
Sin comentarios...