MiniMind: 2 horas de formación desde cero 26M parámetros GPT herramienta de código abierto

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.

MiniMind:2小时从零训练26M参数GPT的开源工具

 

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

  1. 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 TrueEn caso contrario, deberá instalar la versión correspondiente de PyTorch.

    • Instala Git para clonar código.
  2. proyecto de clonación
    Introdúcelo en el terminal:
git clone https://github.com/jingyaogong/minimind.git
cd minimind
  1. 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.

  1. 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) y sft_mini_512.jsonl(1,2 GB).

Modelos de formación

  1. formación previa
  • Ejecute el script para iniciar el preentrenamiento:
    python train_pretrain.py
    
  • Uso por defecto pretrain_hq.jsonlLos pesos de salida se guardan como pretrain_*.pth.
  • Aceleración multitarjeta:
    torchrun --nproc_per_node 2 train_pretrain.py
    
  1. ajuste fino de comandos
  • Ejecute el script de ajuste:
    python train_full_sft.py
    
  • Uso por defecto sft_mini_512.jsonlLos pesos de salida se guardan como full_sft_*.pth.
  • Lo mismo ocurre con la compatibilidad multitarjeta.
  1. 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.
  1. RPD Mejora del aprendizaje
  • utilizar dpo.jsonl Datos, corre:
    python train_dpo.py
    
  • Los pesos de salida se guardan como rlhf_*.pth.
  1. Formación en visualización
  • Añadir parámetros --use_wandbComo:
    python train_pretrain.py --use_wandb
    
  • Consulta las curvas de formación en el sitio web oficial de wandb.

Razonar con modelos

  1. 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.
  1. webchat
  • Instala Streamlit:
    pip install streamlit
    
  • Interfaz de inicio:
    cd scripts
    streamlit run web_demo.py
    
  • Acceso desde un navegador localhost:8501Puedes dialogar.
  1. 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 ejemplo d_model tal vez n_layers).
  • Entrénate siguiendo los pasos anteriores.

advertencia

  • Cuando no haya suficiente memoria de vídeo, ajuste el batch_size o aumentar accumulation_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

  1. 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.
  2. Personalización de dominios
    Entrene modelos con datos privados, como preguntas y respuestas médicas o diálogos de atención al cliente.
  3. Implantación de bajo coste
    El modelo paramétrico 26M es adecuado para dispositivos integrados, como los hogares inteligentes.
  4. 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

  1. ¿Cuánto hardware necesita MiniMind?
    Una sola tarjeta gráfica NVIDIA 3090 es suficiente para el entrenamiento, una CPU puede ejecutarlo pero es lenta.
  2. ¿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.
  3. ¿Está disponible en el mercado?
    Sí, el proyecto se rige por la licencia Apache 2.0, que permite su libre uso y modificación.
  4. ¿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

Artículos relacionados

Sin comentarios

Debe iniciar sesión para participar en los comentarios.
Acceder ahora
ninguno
Sin comentarios...