Home
Login

Framework de treinamento GPT leve, treine um pequeno modelo de linguagem de 26M parâmetros completamente do zero em 2 horas.

Apache-2.0Python 22.6kjingyaogongminimind Last Updated: 2025-04-30

MiniMind - Framework de Treinamento GPT Ultraleve

Visão Geral do Projeto

MiniMind é um framework de treinamento de modelos de linguagem grandes extremamente leve, com a versão mínima sendo apenas 1/7000 do tamanho do GPT-3, permitindo treinamento rápido em GPUs pessoais comuns. Este projeto permite treinar um modelo GPT de pequeno porte com 26 milhões de parâmetros completamente do zero em 2 horas.

Principais Características

🚀 Design Ultraleve

  • Quantidade Mínima de Parâmetros: O modelo mínimo requer apenas 26M (0.02B) parâmetros para alcançar capacidades de diálogo fluentes.
  • Treinamento Eficiente: Suporta treinamento completo em 2 horas em uma única placa de vídeo 3090.
  • Amigo dos Recursos: Pode ser executado em GPUs pessoais comuns, reduzindo significativamente as barreiras de entrada para o treinamento.

🧠 Ecossistema de Treinamento Completo

O projeto abre o código da estrutura minimalista de modelos grandes, incluindo as seguintes funcionalidades principais:

  1. Pré-treinamento (Pretraining) - Treinar um modelo de linguagem básico do zero
  2. Ajuste Fino Supervisionado (SFT) - Ajuste fino supervisionado com instruções
  3. Ajuste Fino LoRA - Técnica de ajuste fino de adaptação de baixa patente
  4. Algoritmo DPO - Algoritmo de Otimização de Preferência Direta
  5. Destilação de Modelo - Algoritmo de destilação de conhecimento
  6. Extensão MoE - Suporte para Modelo de Mistura de Especialistas

🎯 Arquitetura Técnica

Suporte ao Framework

  • PyTorch Nativo: Construído com base no framework PyTorch nativo, suportando aceleração multi-GPU
  • Alta Compatibilidade: Compatível com frameworks populares como transformers, accelerate, trl, peft
  • Implantação Flexível: Suporta configurações de treinamento de GPU única e multi-GPU (DDP, DeepSpeed)

Características de Treinamento

  • Retomada de Treinamento: O processo de treinamento suporta parada e retomada a qualquer momento
  • Treinamento Multi-GPU: Suporta treinamento distribuído DDP, escalável para clusters multi-máquina e multi-GPU
  • Integração de Monitoramento: Suporta registro e visualização do processo de treinamento wandb

🌟 Expansão Multimodal

MiniMind-V Versão Multimodal Visual

  • Compreensão Visual: Expansão para VLM multimodal visual: MiniMind-V
  • Arquitetura Unificada: Baseado no modelo de linguagem MiniMind como base, adicionando capacidade de codificação visual

📊 Capacidades do Modelo

MiniMind é capaz de executar várias tarefas, incluindo geração de texto, interação de diálogo e recuperação de conhecimento. Ele pode gerar texto com base em prompts ou contexto fornecidos, conduzir interações de diálogo e recuperar conhecimento sobre vários tópicos.

Principais Funções

  • Geração de Texto: Gerar conteúdo de texto coerente com base em prompts
  • Interação de Diálogo: Suporta diálogo e perguntas e respostas em várias rodadas
  • Recuperação de Conhecimento: Possui alguma capacidade de perguntas e respostas sobre conhecimento
  • Compreensão de Código: Suporta geração e compreensão de código básico

🎓 Valor Educacional

O objetivo deste projeto é reduzir as barreiras de entrada para o aprendizado de LLMs, permitindo que todos treinem um modelo de linguagem muito pequeno, começando com a compreensão de cada linha de código. O projeto adota o conceito de "construir um avião com blocos de construção", permitindo que os usuários entendam profundamente a implementação subjacente do LLM, em vez de serem isolados por encapsulamento de alto nível.

💻 Como Usar

Requisitos de Ambiente

  • PyTorch 2.1.2+
  • CUDA 12.2+
  • Flash Attention 2
  • RTX 3090 ou GPU de desempenho superior (recomendado)

Início Rápido

# Clonar o projeto
git clone https://github.com/jingyaogong/minimind.git
cd minimind

# Instalar dependências
pip install -r requirements.txt

# Treinamento em GPU única
python train.py

# Treinamento multi-GPU (N>1)
torchrun --nproc_per_node N train.py

Configuração de Treinamento

# Ativar o monitoramento wandb
wandb login
python train.py --use_wandb

# Especificar o nome do projeto
python train.py --wandb_project "my_minimind" --wandb_run_name "experiment_1"

🔄 Fluxo de Treinamento

  1. Preparação de Dados: Limpeza e pré-processamento do conjunto de dados
  2. Pré-treinamento: Realizar treinamento não supervisionado em dados de texto em larga escala
  3. Ajuste Fino de Instrução: Realizar ajuste fino supervisionado usando dados de instrução
  4. Otimização de Preferência: Otimizar as preferências de saída do modelo através do algoritmo DPO
  5. Avaliação do Modelo: Testar o desempenho em conjuntos de dados de referência como Ceval

📈 Desempenho

  • Velocidade de Treinamento: Testado em RTX 3090 GPU, usando Torch 2.1.2, CUDA 12.2 e Flash Attention 2
  • Qualidade do Diálogo: 26M de parâmetros são suficientes para alcançar um diálogo fluente
  • Consumo de Recursos: Baixo uso de memória de vídeo, adequado para desenvolvedores individuais

🌍 Ecossistema da Comunidade

  • Código Aberto e Gratuito: Totalmente de código aberto, todo o código do algoritmo principal é público
  • Documentação Completa: Fornece documentação detalhada em chinês e inglês
  • Atualizações Contínuas: Comunidade de desenvolvimento ativa, iteração contínua de recursos
  • Amigável para Educação: Adequado para uso em aprendizado e ensino

🔗 Projetos Relacionados

Conclusão

MiniMind é um framework de treinamento LLM leve e inovador que prova que é possível treinar modelos de linguagem com capacidades de diálogo práticas com recursos computacionais limitados. O projeto não apenas fornece uma cadeia de ferramentas de treinamento completa, mas, mais importante, fornece uma excelente plataforma para alunos e pesquisadores de IA entenderem os mecanismos internos do LLM. Através do conceito de "começar do zero e entender cada linha de código", MiniMind está democratizando a tecnologia de inteligência artificial, permitindo que mais pessoas participem do desenvolvimento e pesquisa de grandes modelos.

Star History Chart