<div align="center">
🧠 MiniMind | 대규모 모델 학습 원리 교육 과정
<p>
<strong>0에서 1까지 대규모 모델 깊이 이해하기: 코드를 '복사'하는 것이 아니라, 원리를 우선시하는 실험실</strong>
</p>
<p>
<a href="https://minimind.wiki">
<img src="https://img.shields.io/badge/%EC%98%A8%EB%9D%BC%EC%9D%B8%20%EB%AC%B8%EC%84%9C-Wiki-blue?style=for-the-badge&logo=read-the-docs" alt="Website">
</a>
<a href="LICENSE">
<img src="https://img.shields.io/badge/License-MIT-green?style=for-the-badge" alt="License">
</a>
<a href="https://pytorch.org/">
<img src="https://img.shields.io/badge/PyTorch-2.0+-ee4c2c?style=for-the-badge&logo=pytorch&logoColor=white" alt="PyTorch">
</a>
</p>
<h3>
🎉 전체 인터랙티브 문서 공개
<br>
<a href="https://minimind.wiki">👉 https://minimind.wiki 👈</a>
</h3>
<p>
<a href="#-" id="-快速开始">⚡ 빠른 시작</a> •
<a href="#-" id="-学习路径">🗺️ 학습 경로</a> •
<a href="#-" id="-模块导航">📦 모듈 탐색</a> •
<a href="README_en.md">🇬🇧 English README</a>
</p>
</div>
📖 프로젝트 소개
MiniMind는 개발자가 실습을 통해 대규모 언어 모델(LLM)의 학습 메커니즘을 깊이 이해하도록 돕고, 매우 간결한 코드와 비교 실험을 사용합니다. 단순히 '어떻게 할지'를 알려주는 것을 넘어, 실험 데이터를 통해 '왜 그렇게 해야 하는지'를 보여줍니다.
이 프로젝트를 하는 이유? 비교 실험을 통해 LLM 학습의 모든 설계 선택을 이해하기 위함입니다.
🎯 이것은 무엇인가요?
현대 대규모 언어 모델(예: Llama, GPT)의 학습 원리를 이해하는 데 도움을 주는 모듈식 LLM 학습 튜토리얼입니다.
핵심 특징:
- ✅ 원리 우선: 단순히 '어떻게 실행할지'가 아니라 '왜 이렇게 설계해야 하는지'를 이해합니다.
- ✅ 비교 실험: 모든 설계 선택은 실험을 통해 '이렇게 하지 않으면 어떻게 될지'에 답합니다.
- ✅ 모듈식: 기초 구성 요소부터 완전한 아키텍처까지 6개의 독립적인 모듈로 구성되어 있습니다.
- ✅ 낮은 진입 장벽: 학습 단계의 실험은 CPU에서 (몇 분 만에) 실행 가능하며, 전체 학습에는 GPU가 필요합니다.
기반 프로젝트: MiniMind - 초소형 언어 모델을 처음부터 학습하는 전체 튜토리얼
👥 누구에게 적합한가요?
🎯 특히 LLM 포지션 취업을 목표로 하는 분께 추천합니다!
본 프로젝트는 LLM 분야 진입을 희망하는 분들을 위해 특별히 설계되었습니다. LLM 학습 원리를 체계적으로 학습함으로써 다음과 같은 이점을 얻을 수 있습니다:
- ✅ 면접 필수: Transformer, Attention, RoPE 등 핵심 메커니즘에 대한 깊은 이해를 갖추어 기술 면접에서 자신감을 가질 수 있습니다.
- ✅ 이력서 가점: 비교 실험을 완료하여 LLM 원리에 대한 깊은 이해도를 보여주고 이력서를 더욱 경쟁력 있게 만들 수 있습니다.
- ✅ 빠른 숙련도 향상: 현대 LLM(Llama, GPT)의 학습 과정을 처음부터 이해하며, 단순히 '프레임워크 사용자'에 머무르지 않습니다.
- ✅ 직업 발전: LLM 학습 원리를 습득하여 미래 LLM 관련 업무를 수행할 견고한 기초를 다질 수 있습니다.
🎓 학생 및 연구자
- 🎯 LLM 포지션 취업을 목표로 하는 분: LLM 학습 원리를 체계적으로 학습하여 기술 면접 성공률을 높일 수 있습니다.
- 📚 머신러닝/딥러닝 학생: Transformer와 LLM의 내부 메커니즘을 이론뿐만 아니라 깊이 있게 이해할 수 있습니다.
- 🔬 대학원생/박사 과정생: LLM 학습 원리를 이해하여 연구 및 논문 작성에 견고한 기반을 마련할 수 있습니다.
- 💡 연구원: 현대 LLM 아키텍처의 설계 선택과 그 배경 원리를 이해함으로써 연구 방향에 영감을 얻을 수 있습니다.
💻 개발자
- 🤖 AI/ML 엔지니어: '프레임워크 사용법'에서 '원리 이해'로 나아가 실제 문제를 자신 있게 해결할 수 있습니다.
- 🌐 풀스택 개발자: LLM에 관심이 있어 학습 메커니즘을 체계적으로 배우고 기술 스택을 확장하려는 분께 적합합니다.
- ⚙️ 알고리즘 엔지니어: LLM 학습 프로세스를 최적화하거나 개선해야 할 때, 원리를 이해하는 것이 올바른 결정을 내리는 핵심입니다.
🚀 학습자
- 📖 PyTorch 기초 지식 보유자: 기본적인 심층 학습 개념에 익숙하며, LLM을 깊이 있게 이해하고 싶은 분
- 🛠️ 실습 중심 학습자: 이론뿐만 아니라 실험과 코드를 통해 이해하는 것을 선호하는 분
- 🔍 깊은 이해 추구자: 단순히 '코드를 돌리는 것'에 만족하지 않고, '왜 이렇게 설계했는지'를 알고 싶은 분
❌ 적합하지 않은 경우
- 완전 초보자 (PyTorch 기초 학습을 먼저 권장)
- 모델 배포만 빠르게 하고 원리를 이해하고 싶지 않은 사용자
- 프로덕션 레벨의 코드와 모범 사례가 필요한 사용자 (본 프로젝트는 교육에 중점을 둡니다)
💪 만약 LLM 직무 면접을 준비하거나, LLM 학습 원리를 깊이 있게 이해하고 싶다면, 이 프로젝트가 바로 당신을 위한 것입니다! 🚀
⚡ 빠른 시작
핵심 설계 체험 (30분)
세 가지 주요 실험을 실행하여 LLM의 핵심 설계 선택 사항들을 이해해 보세요:
git clone https://github.com/joyehuang/minimind-notes.git
cd minimind-notes
...
팁: 학습 모듈의 실험은 CPU만으로 충분하며, GPU는 필요하지 않습니다. 전체 모델 훈련에는 NVIDIA GPU(3090 이상 권장)가 필요합니다.
이것을 통해 알게 될 것들:
- 기울기 소실 시각화
- RoPE (Rotary Position Embedding) 회전 인코딩 원리
- Attention 가중치 계산 과정
다음 단계: ROADMAP.md를 읽고 학습 경로를 선택하세요.
📚 학습 경로
시간과 목표에 따라 적절한 경로를 선택하세요:
🧱 모듈 탐색
1단계: 기초 (기본 구성 요소)
2단계: 아키텍처 (아키텍처 조립)
범례:
- ✅ 완료: 학습 문서 + 실험 코드 + 퀴즈 포함
- 🟡 실험 완료: 실험 코드는 있으나, 문서는 보충 필요
- 🔜 개발 예정: 디렉토리 구조만 존재
상세 탐색: modules/README.md
🔬 실험 특징
1. 비교 실험 설계
각 모듈은 실험을 통해 핵심 질문에 답합니다:
예시: 정규화 모듈
| 설정 | 수렴 여부? | NaN 발생 스텝 | 최종 Loss |
|---|
| ❌ NoNorm | 아니요 | ~500 | NaN |
| ... | | | |
| 결론: Pre-LN + RMSNorm이 가장 안정적 → 현대 LLM의 표준 선택 | | | |
2. 점진적 학습
실험 → 직관 → 이론 → 코드
↓ ↓ ↓ ↓
10분 20분 30분 10분
먼저 실험을 실행하여 직관을 쌓고, 다음으로 이론 학습을 통해 원리를 이해하며, 마지막으로 소스 코드를 읽어 구현 방법을 익힙니다.
3. 노트북 기반 구동 가능
모든 실험은 TinyShakespeare(1MB) 또는 합성 데이터를 기반으로 합니다:
- ✅ GPU 불필요 (CPU/MPS 모두 사용 가능)
- ✅ 각 실험 < 10분 소요
- ✅ 총 데이터 < 100 MB
📖 문서 구조
각 모듈은 다음을 포함합니다:
01-normalization/
├── README.md # 모듈 탐색
├── teaching.md # 교육 문서 (Why/What/How 구조)
...
문서 템플릿 (teaching.md):
- Why: 문제 시나리오 + 직관적 이해
- What: 수학적 정의 + 비교 표
- How: 실험 설계 + 예상 결과
🛠️ 기술 스택
- 프레임워크: PyTorch 2.0+
- 데이터: TinyShakespeare, TinyStories
- 시각화: Matplotlib, Seaborn
- 원본 프로젝트: MiniMind
🤝 기여
기여를 환영합니다:
- ✨ 새로운 비교 실험
- 📊 더 나은 시각화
- 🌍 영어 번역
- 🐛 버그 수정
제출 전 다음 사항을 확인해 주세요:
📂 저장소 구조
minimind-notes/
├── modules/ # 모듈식 교육 (새 아키텍처)
│ ├── common/ # 공통 도구
...
📜 감사의 말
본 저장소는 다음 프로젝트를 기반으로 합니다:
- MiniMind - 핵심 코드 및 학습 흐름
- 모든 모듈은 MiniMind의 실제 구현에 연결됨
특별히 @jingyaogong 님께 MiniMind 프로젝트를 오픈 소스로 공개해 주신 점 감사드립니다!
🔗 관련 자료
온라인 웹사이트
논문
블로그
영상
☕ 저자에게 커피 한 잔 사주세요
이 튜토리얼이 LLM 학습을 이해하는 데 도움이 되었다면, 후속 콘텐츠 업데이트를 지원하기 위해 기부를 환영합니다 ❤️
<table>
<tr>
<td align="center">
<strong style="color: green;">💚 위챗페이(微信支付)</strong><br/>
<img src="https://raw.githubusercontent.com/joyehuang/minimind-notes/HEAD/public/wechat-qrcode.jpg" alt="위챗 기부" width="220"/>
</td>
<td align="center">
<strong style="color: blue;">💙 알리페이(支付宝)</strong><br/>
<img src="https://raw.githubusercontent.com/joyehuang/minimind-notes/HEAD/public/alipay-qrcode.jpg" alt="알리페이 기부" width="220"/>
</td>
</tr>
</table>
기부 후 댓글을 남기거나 직접 연락 주시면, 비교 실험을 계속 진행하는 데 도움이 됩니다!
📞 연락처
📄 라이선스
MIT License - 자세한 내용은 LICENSE를 참조하세요.
<div align="center">
⭐ 이 프로젝트가 도움이 되었다면, Star를 눌러주세요!
🌐 온라인 웹사이트 접속: https://minimind.wiki
시작할 준비가 되셨나요? 학습 여정 시작하기 🚀
</div>