์ด๋ณด์๋ถํฐ SOTA ๋ชจ๋ธ๊น์ง, 17๊ฐ์ ์์ฑ ๋ก๋๋งต
์ด ํ๋ก์ ํธ๋ ์์ ์์ฑ AI๋ฅผ ์ฒ์๋ถํฐ ๋๊น์ง ํ์ตํ๊ธฐ ์ํ ์์ ํ ๋ก๋๋งต์ ๋๋ค.
- ๊ธฐ์ด: Python, PyTorch, ์์ ์ด๋ก
- ์ค๊ธ: Transformer, Diffusion ๋ชจ๋ธ
- ๊ณ ๊ธ: SOTA ๋ชจ๋ธ ๊ตฌํ (Music Informer, ImprovNet)
- ์ ๋ฌธ๊ฐ: ์ค์๊ฐ ์์ฑ, ํ์ธํ๋, ์ฌ์ฆ ํนํ
- โ MIDI ์์ ์์ฑ (Music Informer - Nature 2025)
- โ ์ค๋์ค ์์ฑ (Magenta RealTime - Google 2025)
- โ ์ฌ์ฆ ์ฆํฅ์ฐ์ฃผ (ImprovNet - 2025)
- โ ์ปค์คํ ๋ฐ์ดํฐ์ ์ผ๋ก ํ์ธํ๋
- โ ์ค์๊ฐ ์์ ์์ฑ ์์คํ ๊ตฌ์ถ
๋ชฉํ: Python & PyTorch ๋ง์คํฐ
01_foundations/- ๊ธฐ์ด ์ฝ๋- ํ์ต ๋ด์ฉ:
- Python ๊ณ ๊ธ ๋ฌธ๋ฒ (generator, decorator, typing)
- PyTorch ๊ธฐ๋ณธ (tensor, autograd, nn.Module)
- ์์ ๋ฐ์ดํฐ ๋ค๋ฃจ๊ธฐ (MIDI, ์ค๋์ค)
- ๊ธฐ์ด ์ ๊ฒฝ๋ง ๊ตฌํ
์ฃผ์ ํ์ผ:
01_foundations/01_python_basics/- Python ํ์ ๋ฌธ๋ฒ01_foundations/02_pytorch_basics/- PyTorch ํํ ๋ฆฌ์ผ01_foundations/03_music_theory/- ์์ ์ด๋ก ๊ธฐ์ด01_foundations/04_simple_rnn/- ๊ฐ๋จํ ๋ฉ๋ก๋ ์์ฑ RNN
๋ชฉํ: Music Transformer (2018) ๊ตฌํ
02_transformer/- Transformer ์ฝ๋- ํ์ต ๋ด์ฉ:
- Attention ๋ฉ์ปค๋์ฆ
- Positional Encoding
- Music Transformer ๋ ผ๋ฌธ ๊ตฌํ
- MAESTRO ๋ฐ์ดํฐ์ ํ์ต
์ฃผ์ ํ์ผ:
02_transformer/01_attention/- Attention ๋ฉ์ปค๋์ฆ ๊ตฌํ02_transformer/02_transformer_blocks/- Transformer ๋ธ๋ก02_transformer/03_music_transformer/- ์์ ํ Music Transformer02_transformer/04_training/- ํ์ต ํ์ดํ๋ผ์ธ
๋ ผ๋ฌธ: Music Transformer (Huang et al., 2018)
๋ชฉํ: DDPM (2020) ๊ตฌํ + ์์ ์ ์ฉ
03_diffusion/- Diffusion ์ฝ๋- ํ์ต ๋ด์ฉ:
- Diffusion ์ํ์ ์๋ฆฌ
- DDPM ๊ตฌํ
- Noise scheduling
- MIDI์ Diffusion ์ ์ฉ
์ฃผ์ ํ์ผ:
03_diffusion/01_ddpm_theory/- DDPM ์ด๋ก ๊ตฌํ03_diffusion/02_noise_scheduling/- Noise scheduler03_diffusion/03_music_ddpm/- ์์ ์ฉ DDPM03_diffusion/04_training/- Diffusion ํ์ต
๋ ผ๋ฌธ: DDPM (Ho et al., 2020)
๋ชฉํ: ๊ณ ๊ธ MIDI ์ ์ฒ๋ฆฌ ํ์ดํ๋ผ์ธ
04_midi_processing/- MIDI ์ฒ๋ฆฌ ์ฝ๋- ํ์ต ๋ด์ฉ:
- MIDI ํฌ๋งท ์์ ์ดํด
- Tokenization (REMI, CP, MuMIDI)
- Data augmentation
- ๋ฉํฐํธ๋ ์ฒ๋ฆฌ
์ฃผ์ ํ์ผ:
04_midi_processing/01_midi_basics/- MIDI ํ์ผ ํ์ฑ04_midi_processing/02_tokenization/- ํ ํฌ๋์ด์ ๊ตฌํ04_midi_processing/03_augmentation/- ๋ฐ์ดํฐ ์ฆ๊ฐ04_midi_processing/04_multitrack/- ๋ฉํฐํธ๋ ์ฒ๋ฆฌ
๋ฐ์ดํฐ์ : MAESTRO, Lakh MIDI, PiJAMA (์ฌ์ฆ)
๋ชฉํ: Nature 2025 SOTA ๋ชจ๋ธ ๊ตฌํ
05_music_informer/- Music Informer ์ฝ๋- ํ์ต ๋ด์ฉ:
- ProbSparse Attention
- Relative Local Attention
- LSTM-Transformer ํ์ด๋ธ๋ฆฌ๋
- ํจ์จ์ ์ฅ์ํ์ค ์ฒ๋ฆฌ
์ฃผ์ ํ์ผ:
05_music_informer/01_probsparse_attention/- ProbSparse ๊ตฌํ05_music_informer/02_relative_attention/- Relative Attention05_music_informer/03_model/- ์์ ํ Music Informer05_music_informer/04_training/- MAESTRO ํ์ต05_music_informer/05_inference/- ์์ ์์ฑ
๋ ผ๋ฌธ: Music Informer (2025, Nature Scientific Reports)
์ฑ๋ฅ: ๊ธฐ์กด ๋๋น 21.73% ์ฐ์ฐ ์ ๊ฐ
๋ชฉํ: ์ฌ์ฆ ์ฆํฅ์ฐ์ฃผ ๋ชจ๋ธ ๊ตฌํ
06_improvnet/- ImprovNet ์ฝ๋- ํ์ต ๋ด์ฉ:
- ์ฌ์ฆ ์ด๋ก (์ฝ๋ ์งํ, ์ค์ผ์ผ)
- ์คํ์ผ ์ ํ (Corruption-Refinement)
- Chord-aware generation
- 9-level ์คํ์ผ ์ ์ด
์ฃผ์ ํ์ผ:
06_improvnet/01_jazz_theory/- ์ฌ์ฆ ์ด๋ก ๊ตฌํ06_improvnet/02_chord_encoding/- ์ฝ๋ ์ธ์ฝ๋ฉ06_improvnet/03_style_transfer/- ์คํ์ผ ์ ํ06_improvnet/04_model/- ImprovNet ๋ชจ๋ธ06_improvnet/05_training/- PiJAMA ํ์ต06_improvnet/06_improvisation/- ์ฆํฅ์ฐ์ฃผ ์์ฑ
๋ ผ๋ฌธ: ImprovNet (2025)
์ฑ๋ฅ: 79% ์คํ์ผ ์๋ณ ์ ํ๋
๋ชฉํ: ์ค์๊ฐ ์ค๋์ค ์์ฑ ์์คํ
07_magenta_realtime/- ์ค์๊ฐ ์์ฑ ์ฝ๋- ํ์ต ๋ด์ฉ:
- Audio tokenization (SoundStream, EnCodec)
- Autoregressive audio generation
- Real-time optimization (1.6x real-time)
- Streaming inference
- ํ ์คํธ conditioning
์ฃผ์ ํ์ผ:
07_magenta_realtime/01_audio_tokenizer/- ์ค๋์ค ํ ํฌ๋์ด์ 07_magenta_realtime/02_transformer_lm/- Transformer LM07_magenta_realtime/03_realtime_inference/- ์ค์๊ฐ ์ถ๋ก07_magenta_realtime/04_text_conditioning/- ํ ์คํธ ์ ์ด07_magenta_realtime/05_training/- ๋๊ท๋ชจ ํ์ต07_magenta_realtime/06_streaming/- WebSocket ์คํธ๋ฆฌ๋ฐ
๋ชฉํ ์ฑ๋ฅ:
- 1.6x real-time (RTX 4090)
- 48kHz stereo
- <100ms latency
๋ชฉํ: ์ปค์คํ ๋ฐ์ดํฐ๋ก ํ์ธํ๋
08_finetuning/- ํ์ธํ๋ ์ฝ๋- ํ์ต ๋ด์ฉ:
- LoRA, QLoRA
- Domain adaptation
- Few-shot learning
- ์ปค์คํ ๋ฐ์ดํฐ์ ๊ตฌ์ถ
์ฃผ์ ํ์ผ:
08_finetuning/01_lora/- LoRA ๊ตฌํ08_finetuning/02_data_collection/- ๋ฐ์ดํฐ ์์ง08_finetuning/03_finetuning_scripts/- ํ์ธํ๋ ์คํฌ๋ฆฝํธ08_finetuning/04_evaluation/- ํ๊ฐ ๋ฉํธ๋ฆญ
์์ฉ ์์:
- ํน์ ์๊ณก๊ฐ ์คํ์ผ ํ์ต
- ํน์ ์ ๊ธฐ ์กฐํฉ ์์ฑ
- ๊ฒ์ ์์ ์์ฑ
- ๊ฐ์ธํ๋ ์ฌ์ฆ ์คํ์ผ
sotaModel/
โโโ README.md # ์ด ํ์ผ
โโโ ROADMAP.md # ์์ธ 17๊ฐ์ ์ผ์ ํ
โโโ requirements.txt # ์ ์ฒด ์์กด์ฑ
โโโ setup.py # ์ค์น ์คํฌ๋ฆฝํธ
โ
โโโ datasets/ # ๋ฐ์ดํฐ์
(gitignore)
โ โโโ MAESTRO/ # 200์๊ฐ ํผ์๋
ธ
โ โโโ PiJAMA/ # 200์๊ฐ ์ฌ์ฆ
โ โโโ Lakh_MIDI/ # 176,581 MIDI ํ์ผ
โ โโโ custom/ # ์ปค์คํ
๋ฐ์ดํฐ
โ
โโโ utils/ # ๊ณตํต ์ ํธ๋ฆฌํฐ
โ โโโ audio_utils.py # ์ค๋์ค ์ฒ๋ฆฌ
โ โโโ midi_utils.py # MIDI ์ฒ๋ฆฌ
โ โโโ train_utils.py # ํ์ต ์ ํธ
โ โโโ eval_utils.py # ํ๊ฐ ์ ํธ
โ
โโโ 01_foundations/ # Phase 1 (Month 1-2)
โ โโโ README.md
โ โโโ 01_python_basics/
โ โโโ 02_pytorch_basics/
โ โโโ 03_music_theory/
โ โโโ 04_simple_rnn/
โ
โโโ 02_transformer/ # Phase 2 (Month 2-4)
โ โโโ README.md
โ โโโ 01_attention/
โ โโโ 02_transformer_blocks/
โ โโโ 03_music_transformer/
โ โโโ 04_training/
โ
โโโ 03_diffusion/ # Phase 3 (Month 4-6)
โ โโโ README.md
โ โโโ 01_ddpm_theory/
โ โโโ 02_noise_scheduling/
โ โโโ 03_music_ddpm/
โ โโโ 04_training/
โ
โโโ 04_midi_processing/ # Phase 4 (Month 6-8)
โ โโโ README.md
โ โโโ 01_midi_basics/
โ โโโ 02_tokenization/
โ โโโ 03_augmentation/
โ โโโ 04_multitrack/
โ
โโโ 05_music_informer/ # Phase 5 (Month 8-10) โญ SOTA
โ โโโ README.md
โ โโโ paper/ # ๋
ผ๋ฌธ PDF
โ โโโ 01_probsparse_attention/
โ โโโ 02_relative_attention/
โ โโโ 03_model/
โ โโโ 04_training/
โ โโโ 05_inference/
โ โโโ checkpoints/ # ์ฌ์ ํ์ต ๋ชจ๋ธ
โ
โโโ 06_improvnet/ # Phase 6 (Month 10-13) โญ ์ฌ์ฆ
โ โโโ README.md
โ โโโ paper/
โ โโโ 01_jazz_theory/
โ โโโ 02_chord_encoding/
โ โโโ 03_style_transfer/
โ โโโ 04_model/
โ โโโ 05_training/
โ โโโ 06_improvisation/
โ โโโ checkpoints/
โ
โโโ 07_magenta_realtime/ # Phase 7 (Month 13-17) โญ ์ค์๊ฐ
โ โโโ README.md
โ โโโ paper/
โ โโโ 01_audio_tokenizer/
โ โโโ 02_transformer_lm/
โ โโโ 03_realtime_inference/
โ โโโ 04_text_conditioning/
โ โโโ 05_training/
โ โโโ 06_streaming/
โ โโโ checkpoints/
โ
โโโ 08_finetuning/ # Phase 8 (Month 17+)
โ โโโ README.md
โ โโโ 01_lora/
โ โโโ 02_data_collection/
โ โโโ 03_finetuning_scripts/
โ โโโ 04_evaluation/
โ
โโโ notebooks/ # Jupyter ๋
ธํธ๋ถ
โ โโโ 01_getting_started.ipynb
โ โโโ 02_music_transformer_demo.ipynb
โ โโโ 03_music_informer_demo.ipynb
โ โโโ 04_improvnet_demo.ipynb
โ โโโ 05_realtime_generation.ipynb
โ โโโ 06_finetuning_guide.ipynb
โ
โโโ scripts/ # ์คํ ์คํฌ๋ฆฝํธ
โ โโโ download_datasets.sh # ๋ฐ์ดํฐ์
๋ค์ด๋ก๋
โ โโโ train_music_informer.sh # Music Informer ํ์ต
โ โโโ train_improvnet.sh # ImprovNet ํ์ต
โ โโโ train_magenta.sh # Magenta RT ํ์ต
โ โโโ finetune.sh # ํ์ธํ๋
โ
โโโ tests/ # ๋จ์ ํ
์คํธ
โโโ test_models.py
โโโ test_data_processing.py
โโโ test_inference.py
# ๋ ํฌ์งํ ๋ฆฌ ํด๋ก
git clone https://github.com/yourusername/sotaModel.git
cd sotaModel
# Python ๊ฐ์ํ๊ฒฝ ์์ฑ (Python 3.10+ ๊ถ์ฅ)
python -m venv venv
source venv/bin/activate # Linux/Mac
# venv\Scripts\activate # Windows
# ์์กด์ฑ ์ค์น
pip install -r requirements.txt
# CUDA ํ์ธ (GPU ํ์)
python -c "import torch; print(torch.cuda.is_available())"# ๋ชจ๋ ๋ฐ์ดํฐ์
์๋ ๋ค์ด๋ก๋ (์ฝ 50GB)
bash scripts/download_datasets.sh
# ๋๋ ๊ฐ๋ณ ๋ค์ด๋ก๋
python scripts/download_maestro.py # MAESTRO (200h ํผ์๋
ธ)
python scripts/download_pijama.py # PiJAMA (200h ์ฌ์ฆ)
python scripts/download_lakh.py # Lakh MIDI (176K ํ์ผ)cd 01_foundations
cat README.md # Phase 1 ๊ฐ์ด๋ ์ฝ๊ธฐ
# Python ๊ธฐ์ด ํ์ธ
python 01_python_basics/test_basics.py
# PyTorch ํํ ๋ฆฌ์ผ ์์
jupyter notebook 02_pytorch_basics/pytorch_tutorial.ipynb- Month 1-2:
01_foundations/์๋ฃ - Month 2-4:
02_transformer/์๋ฃ - Month 4-6:
03_diffusion/์๋ฃ - Month 6-8:
04_midi_processing/์๋ฃ - Month 8-10:
05_music_informer/- ์ฒซ SOTA ๋ชจ๋ธ! - Month 10-13:
06_improvnet/- ์ฌ์ฆ ํนํ - Month 13-17:
07_magenta_realtime/- ์ค์๊ฐ ์์ฑ - Month 17+:
08_finetuning/- ๋๋ง์ ๋ชจ๋ธ
- Week 1-2:
01_foundations/03_music_theory/- ์์ ์ด๋ก ๋ง - Month 1-2:
02_transformer/- Transformer ๋ณต์ต - Month 2-3:
04_midi_processing/+05_music_informer/๋์ - Month 4-6:
06_improvnet/์๋ฃ - Month 6-10:
07_magenta_realtime/์๋ฃ - Month 10+:
08_finetuning/- ์ปค์คํ ํ๋ก์ ํธ
- Week 1:
04_midi_processing/- ๋ฐ์ดํฐ ํ์ดํ๋ผ์ธ - Month 1-2:
05_music_informer/- SOTA ๊ตฌํ - Month 2-4:
06_improvnet/- ์ฌ์ฆ ๋ชจ๋ธ - Month 4-8:
07_magenta_realtime/- ์ค์๊ฐ ์์คํ - Month 8+:
08_finetuning/- ์ฐ๊ตฌ/ํ๋ก๋์
| Phase | ๊ธฐ๊ฐ | ๋์ด๋ | ํต์ฌ ๊ธฐ์ | ์ต์ข ์ฐ์ถ๋ฌผ |
|---|---|---|---|---|
| 01_foundations | 2๊ฐ์ | โญ | Python, PyTorch, MIDI | ๊ฐ๋จํ RNN ๋ฉ๋ก๋ ์์ฑ |
| 02_transformer | 2๊ฐ์ | โญโญ | Attention, Transformer | Music Transformer๋ก ํผ์๋ ธ ์์ฑ |
| 03_diffusion | 2๊ฐ์ | โญโญโญ | DDPM, Noise Scheduling | Diffusion์ผ๋ก MIDI ์์ฑ |
| 04_midi_processing | 2๊ฐ์ | โญโญ | Tokenization, Augmentation | ๊ฐ๋ ฅํ ๋ฐ์ดํฐ ํ์ดํ๋ผ์ธ |
| 05_music_informer | 2๊ฐ์ | โญโญโญโญ | ProbSparse Attention | SOTA MIDI ์์ฑ ๋ชจ๋ธ |
| 06_improvnet | 3๊ฐ์ | โญโญโญโญ | Style Transfer, Jazz Theory | ์ฌ์ฆ ์ฆํฅ์ฐ์ฃผ ์์ฑ |
| 07_magenta_realtime | 4๊ฐ์ | โญโญโญโญโญ | Real-time Inference, Audio | ์ค์๊ฐ ์ค๋์ค ์์ฑ |
| 08_finetuning | ์ง์ | โญโญโญ | LoRA, Domain Adaptation | ๋๋ง์ ์ปค์คํ ๋ชจ๋ธ |
- GPU: NVIDIA RTX 3060 (12GB VRAM)
- RAM: 32GB
- ์ ์ฅ๊ณต๊ฐ: 200GB SSD
- ํ์ต ์๊ฐ: ~2-3์ผ/๋ชจ๋ธ
- GPU: NVIDIA RTX 4090 (24GB VRAM)
- RAM: 64GB
- ์ ์ฅ๊ณต๊ฐ: 500GB NVMe SSD
- ํ์ต ์๊ฐ: ~8-12์๊ฐ/๋ชจ๋ธ
- Google Colab Pro+: $50/์ (A100 40GB)
- Vast.ai: RTX 4090 $0.34/์๊ฐ
- Lambda Labs: A100 $1.10/์๊ฐ
- AWS p3.2xlarge: V100 $3.06/์๊ฐ
โ MIDI ํผ์๋ ธ ์์ ์์ฑ (MAESTRO ์์ค) โ ์ฅ์ํ์ค ํจ์จ์ ์ฒ๋ฆฌ (1000+ ํ ํฐ) โ Attention ๋ฉ์ปค๋์ฆ ์์ ์ดํด โ PyTorch ๊ณ ๊ธ ํ์ฉ
โ ์ฌ์ฆ ์ฆํฅ์ฐ์ฃผ ์์ฑ โ ์คํ์ผ ์ ์ด (ํด๋์ โ ์ฌ์ฆ ๋ณํ) โ Chord-aware ์์ฑ โ ๋ฉํฐํธ๋ ์์๋ธ ์์ฑ
โ ์ค์๊ฐ ์ค๋์ค ์์ฑ (48kHz stereo) โ ํ ์คํธ๋ก ์์ ์ ์ด โ ๋ผ์ด๋ธ ํผํฌ๋จผ์ค ์์คํ ๊ตฌ์ถ โ Streaming inference ์ต์ ํ
โ ์ปค์คํ ๋ฐ์ดํฐ๋ก ๋ชจ๋ธ ํ์ต โ ํน์ ์คํ์ผ/์๊ณก๊ฐ ๋ชจ๋ฐฉ โ ํ๋ก๋์ ๊ธ ์์คํ ๋ฐฐํฌ โ ์ฐ๊ตฌ ๋ ผ๋ฌธ ์์ฑ ๊ฐ๋ฅ
- Month 2: ์ฒซ RNN์ผ๋ก ๋ฉ๋ก๋ ์์ฑ
- Month 4: Music Transformer๋ก ํผ์๋ ธ ๊ณก ์์ฑ
- Month 6: Diffusion์ผ๋ก ๋ค์ํ ์คํ์ผ ์์ฑ
- Month 8: MIDI ๋ฐ์ดํฐ ์๋ฒฝ ์ฒ๋ฆฌ
- Month 10: ๐ Music Informer (SOTA) ๊ตฌํ ์๋ฃ
- Month 13: ๐บ ์ฌ์ฆ ์ฆํฅ์ฐ์ฃผ ์์ฑ ์๋ฃ
- Month 17: ๐น ์ค์๊ฐ ์ค๋์ค ์์ฑ ์์คํ ์๋ฃ
- Month 17+: ๐ ๋๋ง์ ์ปค์คํ ๋ชจ๋ธ ๋ฐฐํฌ
- Attention Is All You Need (2017) - Transformer ๊ธฐ์ด
- Music Transformer (2018) - ์์ ์์ฑ ์์
- DDPM (2020) - Diffusion ๊ธฐ์ด
- Music Informer (2025) - SOTA MIDI
- ImprovNet (2025) - ์ฌ์ฆ ํนํ
- ์ด์: ๋ฒ๊ทธ ๋ฆฌํฌํธ, ์ง๋ฌธ
- PR: ์ฝ๋ ๊ฐ์ , ์๋ก์ด ๋ชจ๋ธ ์ถ๊ฐ
- ํ ๋ก : ํ์ต ํ, ํ์ดํผํ๋ผ๋ฏธํฐ ๊ณต์
MIT License - ์์ ๋กญ๊ฒ ์ฌ์ฉ, ์์ , ๋ฐฐํฌ ๊ฐ๋ฅ
์ด ํ๋ก์ ํธ๋ ๋ค์ ์ฐ๊ตฌ๋ค์ ๊ธฐ๋ฐ์ผ๋ก ํฉ๋๋ค:
- Google Magenta Team
- Music Informer ์ ์๋ค (Nature 2025)
- ImprovNet ์ ์๋ค (2025)
- PyTorch & HuggingFace ์ปค๋ฎค๋ํฐ
๐ต ์์ ๊ณผ AI์ ๋ง๋จ, ์ง๊ธ ์์ํ์ธ์!
cd 01_foundations
python 01_python_basics/hello_music_ai.py