Home
Login

경량 GPT 훈련 프레임워크, 2시간 만에 완전한 제로(0)에서 26M 파라미터의 소형 언어 모델 훈련

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

MiniMind - 초경량 GPT 훈련 프레임워크

프로젝트 개요

MiniMind는 극도로 경량화된 대규모 언어 모델 훈련 프레임워크로, 최소 버전은 GPT-3의 1/7000 크기에 불과하며 일반 개인 GPU에서 빠르게 훈련할 수 있습니다. 이 프로젝트는 2시간 이내에 26M 파라미터의 소규모 GPT 모델을 완전히 처음부터 훈련할 수 있습니다.

핵심 특징

🚀 초경량 설계

  • 극소 파라미터 수: 최소 모델은 26M(0.02B) 파라미터만으로도 유창한 대화 능력을 구현할 수 있습니다.
  • 고효율 훈련: 단일 3090 그래픽 카드에서 2시간 이내에 훈련을 완료할 수 있습니다.
  • 리소스 친화적: 일반 개인 GPU에서 실행할 수 있어 훈련 장벽을 크게 낮춥니다.

🧠 완벽한 훈련 생태계

프로젝트는 대규모 모델의 극히 단순한 구조를 오픈 소스로 공개하며, 다음 핵심 기능을 포함합니다.

  1. 사전 훈련 (Pretraining) - 처음부터 기초 언어 모델 훈련
  2. 지도 미세 조정 (SFT) - 지도 기반 명령어 미세 조정
  3. LoRA 미세 조정 - 저랭크 적응 미세 조정 기술
  4. DPO 알고리즘 - 직접 선호도 최적화 알고리즘
  5. 모델 증류 - 지식 증류 알고리즘
  6. MoE 확장 - 혼합 전문가 모델 지원

🎯 기술 아키텍처

프레임워크 지원

  • PyTorch 네이티브: PyTorch 네이티브 프레임워크 기반으로 구축되어 다중 GPU 가속 지원
  • 강력한 호환성: transformers, accelerate, trl, peft 등 주요 프레임워크와 호환
  • 유연한 배포: 단일 GPU 및 다중 GPU 훈련 설정 지원 (DDP, DeepSpeed)

훈련 특징

  • 중단점 재개: 훈련 과정 중 언제든지 중단 및 재개 지원
  • 다중 카드 훈련: DDP 분산 훈련 지원, 다중 머신 다중 카드 클러스터로 확장 가능
  • 모니터링 통합: wandb 훈련 과정 기록 및 시각화 지원

🌟 다중 모드 확장

MiniMind-V 시각 다중 모드 버전

  • 시각 이해: 시각 다중 모드 VLM으로 확장: MiniMind-V
  • 통합 아키텍처: MiniMind 언어 모델을 기반으로 시각 인코딩 능력 추가

📊 모델 능력

MiniMind는 텍스트 생성, 대화 상호 작용 및 지식 검색을 포함한 다양한 작업을 수행할 수 있습니다. 주어진 프롬프트 또는 컨텍스트를 기반으로 텍스트를 생성하고, 대화 상호 작용을 수행하며, 다양한 주제의 지식을 검색할 수 있습니다.

주요 기능

  • 텍스트 생성: 프롬프트를 기반으로 일관된 텍스트 콘텐츠 생성
  • 대화 상호 작용: 다중 턴 대화 및 질의응답 지원
  • 지식 검색: 일정 수준의 지식 질의응답 능력 보유
  • 코드 이해: 기초적인 코드 생성 및 이해 지원

🎓 교육적 가치

이 프로젝트의 목표는 LLM 학습 장벽을 낮추어 모든 사람이 각 코드 줄을 이해하는 것부터 시작하여 매우 작은 언어 모델을 훈련할 수 있도록 하는 것입니다. 프로젝트는 "블록으로 비행기 만들기"라는 개념을 채택하여 사용자가 고급 캡슐화에 격리되지 않고 LLM의 기본 구현을 깊이 이해할 수 있도록 합니다.

💻 사용 방법

환경 요구 사항

  • PyTorch 2.1.2+
  • CUDA 12.2+
  • Flash Attention 2
  • RTX 3090 또는 더 높은 성능의 GPU (권장)

빠른 시작

# 프로젝트 복제
git clone https://github.com/jingyaogong/minimind.git
cd minimind

# 종속성 설치
pip install -r requirements.txt

# 단일 GPU 훈련
python train.py

# 다중 GPU 훈련 (N>1)
torchrun --nproc_per_node N train.py

훈련 구성

# wandb 모니터링 활성화
wandb login
python train.py --use_wandb

# 프로젝트 이름 지정
python train.py --wandb_project "my_minimind" --wandb_run_name "experiment_1"

🔄 훈련 흐름

  1. 데이터 준비: 데이터 세트 정리 및 전처리
  2. 사전 훈련: 대규모 텍스트 데이터에 대한 비지도 훈련
  3. 명령어 미세 조정: 명령어 데이터를 사용한 지도 미세 조정
  4. 선호도 최적화: DPO 알고리즘을 통해 모델 출력 선호도 최적화
  5. 모델 평가: Ceval 등 벤치마크 데이터 세트에서 성능 테스트

📈 성능 표현

  • 훈련 속도: RTX 3090 GPU에서 Torch 2.1.2, CUDA 12.2 및 Flash Attention 2를 사용하여 테스트
  • 대화 품질: 26M 파라미터만으로도 유창한 대화 구현
  • 리소스 소비: 낮은 메모리 점유율, 개인 개발자에게 적합

🌍 커뮤니티 생태계

  • 오픈 소스 무료: 완전 오픈 소스, 모든 핵심 알고리즘 코드 공개
  • 완벽한 문서: 자세한 한국어 및 영어 문서 제공
  • 지속적인 업데이트: 활발한 개발 커뮤니티, 지속적인 기능 반복
  • 교육 친화적: 학습 및 교육용으로 적합

🔗 관련 프로젝트

결론

MiniMind는 획기적인 경량 LLM 훈련 프레임워크로, 제한된 컴퓨팅 리소스에서도 실용적인 대화 능력을 갖춘 언어 모델을 훈련할 수 있음을 입증했습니다. 이 프로젝트는 완벽한 훈련 도구 체인을 제공할 뿐만 아니라 AI 학습자와 연구자에게 LLM 내부 메커니즘을 이해할 수 있는 훌륭한 플랫폼을 제공합니다. "처음부터 시작하여 각 코드 줄을 이해한다"는 개념을 통해 MiniMind는 인공 지능 기술을 민주화하여 더 많은 사람들이 대규모 모델 개발 및 연구에 참여할 수 있도록 합니다.

Star History Chart