MiniMind: 2 horas de formación desde cero 26M parámetros GPT herramienta de código abierto
Últimos recursos sobre IAPublicado hace 5 meses Círculo de intercambio de inteligencia artificial 2.8K 00
Introducción general
MiniMind es un proyecto de código abierto creado por el desarrollador jingyaogong. La principal característica de MiniMind es que tarda dos horas en entrenar un modelo GPT de 26 millones de parámetros desde cero en una sola tarjeta gráfica NVIDIA 3090, con un coste de sólo 3 RMB. El proyecto proporciona código de flujo completo, desde el preentrenamiento hasta el ajuste fino, incluida la limpieza del conjunto de datos, el preentrenamiento, el ajuste fino de comandos, LoRA, DPO y la destilación de modelos, así como soporte para la extensión visual multimodal MiniMind-V. Todo el código se ha refactorizado desde cero basándose en PyTorch, sin depender de interfaces de abstracción de terceros. Desde febrero de 2025, MiniMind se ha publicado en varias versiones, con un tamaño mínimo de modelo de 25,8 millones de parámetros, y ha recibido una respuesta abrumadora de la comunidad.

Lista de funciones
- Soporte para el entrenamiento de modelos GPT de 26M parámetros desde cero en menos de 2 horas, funcionando en una sola tarjeta gráfica 3090.
- Proporciona código de flujo completo para preentrenamiento, ajuste de instrucciones, LoRA, DPO y destilación de modelos.
- Incluye la extensión visual multimodal MiniMind-V para el tratamiento de imágenes y textos.
- Admite la formación con una o varias tarjetas y es compatible con las visualizaciones DeepSpeed y wandb.
- Proporcionar servidor de protocolo API OpenAI para facilitar el acceso a interfaces de chat de terceros.
- Conjuntos de datos de alta calidad y ponderaciones de modelos de código abierto para descarga directa o desarrollo secundario.
- Admite la formación con tokenizadores y listas de palabras personalizadas para ajustar con flexibilidad la estructura del modelo.
Utilizar la ayuda
El uso de MiniMind se divide en tres pasos: instalación, formación y razonamiento. A continuación se ofrece una guía detallada para ayudar a los usuarios a empezar rápidamente.
Proceso de instalación
- Preparación medioambiental
- Requiere Python 3.10 o posterior.
- Comprueba que la tarjeta gráfica soporta CUDA ejecutando el siguiente código:
import torch print(torch.cuda.is_available())
Si la devolución
True
En caso contrario, deberá instalar la versión correspondiente de PyTorch. - Instala Git para clonar código.
- proyecto de clonación
Introdúcelo en el terminal:
git clone https://github.com/jingyaogong/minimind.git
cd minimind
- Instalación de dependencias
Instalación acelerada mediante espejos Tsinghua:
pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
Si tiene problemas, puede instalarlo manualmente torch
tal vez flash_attn
.
- Descargar conjunto de datos
- Descargue el conjunto de datos en GitHub README o https://www.modelscope.cn/datasets/gongjy/minimind_dataset/files.
- establecer
./dataset
extraiga los archivos a este directorio. - Descargas recomendadas
pretrain_hq.jsonl
(1,6 GB) ysft_mini_512.jsonl
(1,2 GB).
Modelos de formación
- formación previa
- Ejecute el script para iniciar el preentrenamiento:
python train_pretrain.py
- Uso por defecto
pretrain_hq.jsonl
Los pesos de salida se guardan comopretrain_*.pth
. - Aceleración multitarjeta:
torchrun --nproc_per_node 2 train_pretrain.py
- ajuste fino de comandos
- Ejecute el script de ajuste:
python train_full_sft.py
- Uso por defecto
sft_mini_512.jsonl
Los pesos de salida se guardan comofull_sft_*.pth
. - Lo mismo ocurre con la compatibilidad multitarjeta.
- Ajuste de LoRA
- Preparar los datos del dominio (por ejemplo
lora_medical.jsonl
), corre:python train_lora.py
- Los pesos de salida se guardan como
lora_xxx_*.pth
.
- RPD Mejora del aprendizaje
- utilizar
dpo.jsonl
Datos, corre:python train_dpo.py
- Los pesos de salida se guardan como
rlhf_*.pth
.
- Formación en visualización
- Añadir parámetros
--use_wandb
Como:python train_pretrain.py --use_wandb
- Consulta las curvas de formación en el sitio web oficial de wandb.
Razonar con modelos
- razonamiento en línea de comandos
- Descargar modelos de pesos (por ejemplo, MiniMind2):
git clone https://huggingface.co/jingyaogong/MiniMind2
- Razonamiento de carrera:
python eval_model.py --load 1 --model_mode 2
- Descripción de los parámetros:
--load 1
En formato transformador, el--model_mode 2
Con MiniMind2.
- webchat
- Instala Streamlit:
pip install streamlit
- Interfaz de inicio:
cd scripts streamlit run web_demo.py
- Acceso desde un navegador
localhost:8501
Puedes dialogar.
- Servicios API
- Inicie el servidor:
python serve_openai_api.py
- Prueba la interfaz:
curl http://localhost:8000/v1/chat/completions -H "Content-Type: application/json" -d '{"model": "MiniMind2", "messages": [{"role": "user", "content": "你好"}], "max_tokens": 512}'
Función destacada Operación
- Multimodalidad visual (MiniMind-V)
- Descargar el modelo MiniMind-V:
git clone https://huggingface.co/jingyaogong/MiniMind2-V
- Descargue el modelo de visualización CLIP para
./model/vision_model
::
git clone https://huggingface.co/openai/clip-vit-base-patch16
- Corriendo:
python eval_vlm.py --load 1
- Introduzca texto e imágenes y el modelo generará una descripción.
- Formación a medida
- Organice los datos como
.jsonl
en el formato./dataset
. - modificaciones
./model/LMConfig.py
parámetros (por ejemplod_model
tal vezn_layers
). - Entrénate siguiendo los pasos anteriores.
advertencia
- Cuando no haya suficiente memoria de vídeo, ajuste el
batch_size
o aumentaraccumulation_steps
. - Cuando los conjuntos de datos sean grandes, procésalos por lotes para evitar el desbordamiento de la memoria.
- Los contextos ultralargos permiten ajustar los parámetros RoPE hasta 2048.
escenario de aplicación
- AI Aprendizaje
MiniMind proporciona un conjunto completo de código y datos para que los principiantes puedan estudiar el proceso de entrenamiento de grandes modelos. - Personalización de dominios
Entrene modelos con datos privados, como preguntas y respuestas médicas o diálogos de atención al cliente. - Implantación de bajo coste
El modelo paramétrico 26M es adecuado para dispositivos integrados, como los hogares inteligentes. - Demostración didáctica
Los profesores pueden utilizarlo para demostrar el proceso de entrenamiento de la IA y los alumnos pueden practicar.
CONTROL DE CALIDAD
- ¿Cuánto hardware necesita MiniMind?
Una sola tarjeta gráfica NVIDIA 3090 es suficiente para el entrenamiento, una CPU puede ejecutarlo pero es lenta. - ¿Son fiables 2 horas de formación?
Sí, basándonos en la prueba de una sola tarjeta 3090, el modelo paramétrico 26M sólo tarda unas 2 horas en entrenarse desde cero. - ¿Está disponible en el mercado?
Sí, el proyecto se rige por la licencia Apache 2.0, que permite su libre uso y modificación. - ¿Cómo ampliar la duración del contexto?
Ajusta los parámetros RoPE o afina con datos más largos para admitir hasta 2048.
© 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...