C9 · Deep Learning dari Dasar
Memahami jaringan saraf sampai ke turunannya: backpropagation dihitung tangan, autograd dan pustaka mini ditulis sendiri dengan NumPy, CNN, RNN, attention, dan transformer diturunkan langkah demi langkah, lalu dibawa ke PyTorch, GPU gratis, dan fine-tuning model terbuka.
- 16 modul
- 109 latihan
- 89 istilah
Daftar modul
- 01Dari regresi logistik ke jaringan sarafGratis8 latihan
- 02Graf komputasi dan aturan rantaiGratis7 latihan
- 03Autograd ditulis sendiriCoding Studio7 latihan
- 04Backpropagation dengan matriksCoding Studio7 latihan
- 05OptimisasiCoding Studio7 latihan
- 06Inisialisasi, normalisasi, residualCoding Studio7 latihan
- 07Regularisasi dan generalisasiCoding Studio7 latihan
- 08KonvolusiCoding Studio7 latihan
- 09Melatih di GPU dengan PyTorchCoding Studio6 latihan
- 10Barisan dan RNNCoding Studio7 latihan
- 11Embedding dan model bahasaCoding Studio7 latihan
- 12AttentionCoding Studio7 latihan
- 13TransformerCoding Studio7 latihan
- 14Model terbuka, fine-tuning, LoRACoding Studio6 latihan
- 15Efisiensi, inferensi, evaluasi jujurCoding Studio7 latihan
- 16Proyek akhir: Nalar MakmurCoding Studio5 latihan
Modul 01–02 gratis; modul bergembok terbuka dengan Coding Studio. Lihat paket
Ada contoh atau latihan bertanda “Kerjakan di laptop”? Paket dan data C9 untuk menjalankannya di komputermu ada di panduan menjalankan kode di komputermu.
Tentang course ini
Memahami jaringan saraf sampai ke turunannya: backpropagation dihitung tangan, autograd dan pustaka mini ditulis sendiri dengan NumPy, CNN, RNN, attention, dan transformer diturunkan langkah demi langkah, lalu dibawa ke PyTorch, GPU gratis, dan fine-tuning model terbuka.
Course inti jalur Data & AI untuk calon ML Engineer (dianjurkan untuk AI Engineer), sesudah C1 dan C2. Versi ini berupa Markdown yang bisa dibaca langsung di GitHub; latihannya diperiksa otomatis dan berjalan di peramban.
Posisi course
Kenapa course ini ada
Hari ini siapa pun bisa memanggil model bahasa raksasa lewat API atau
menyalin notebook fine-tuning. Yang langka adalah orang yang tahu apa yang
terjadi di dalamnya ketika sesuatu salah: rugi yang menjadi nan,
gradien yang hilang di lapisan awal, model yang hafal data latih, attention
yang mengintip token masa depan, memori GPU yang habis karena KV cache,
fine-tuning yang merusak kemampuan lama. Semua itu hanya bisa didiagnosis
bila kamu pernah menurunkan dan menulis sendiri mesinnya.
Cara klasik di course ini: perceptron dan MLP, aturan rantai dan graf komputasi, autograd skalar ditulis sendiri, backpropagation lapisan demi lapisan dengan NumPy, optimisasi (SGD, momentum, Adam), inisialisasi dan normalisasi, regularisasi, konvolusi dengan im2col, RNN dan LSTM, model bahasa tingkat karakter (Bengio dkk. 2003), attention dan transformer diturunkan, semuanya dengan pemeriksaan gradien terhadap selisih hingga. Cara modern: PyTorch di GPU gratis (Google Colab, Kaggle), presisi campuran, model terbuka dari Hugging Face, fine-tuning hemat parameter (LoRA) dan kuantisasi, inferensi efisien, serta AI sebagai rekan yang kode pelatihannya selalu diuji dengan eksperimen kecil yang bisa diulang.
Polanya sama di setiap modul: turunkan, tulis dengan NumPy, periksa dengan selisih hingga, lalu cocokkan dengan pustaka.
Pemilik materi
C9 adalah tempat mekanisme model diajarkan dengan kode: autodiff dan backpropagation, SGD dan mini-batch, tokenisasi BPE dan sampling (suhu, top-k, nukleus) di Modul 11, attention di Modul 12, KV cache di Modul 15, serta LoRA, QLoRA, dan kuantisasi di Modul 14. C3 AI Engineering memakai akibatnya dari sisi API dan merujuk ke modul-modul ini; C9 tidak membutuhkan C3. Sebaliknya, C9 menautkan ke pemilik materi lain alih-alih mengajarkannya ulang: laju belajar dan bilangan kondisi (C2 Modul 03), L2 dan ridge (C2 Modul 07), interval Wilson (C1 Modul 07), uji permutasi (C1 Modul 08), pemrograman dinamis (K1 Modul 14), urutan topologis (K1 Modul 12), dan reproduktibilitas pipeline (C10 Modul 02).
Untuk siapa dan prasyarat
- Wajib: Aljabar Linear (perkalian matriks, transpos, norma, nilai eigen) dan Kalkulus I/II (turunan, turunan parsial, aturan rantai, deret Taylor). C9 menurunkan semua yang dibutuhkan, tetapi bahasanya adalah bahasa kedua course matematika itu.
- F1 Python wajib (kelas, modul, pytest).
- C2 Machine Learning sangat dianjurkan: gradient descent dan batas laju belajar, regresi logistik dan log-loss, validasi, regularisasi. Modul yang memakainya menautkan bagian C2 yang tepat. C1 Data Science dianjurkan untuk statistika di Modul 16.
- F5 Rilis untuk peralatan proyek: repo rapi, dependensi terkunci, GitHub Actions, dan tayang aplikasi (Lab Tayang Modul 16).
- Sapaan "kamu", sama dengan course lain.
Lingkungan lab
| Bagian | Di mana | Diperiksa |
|---|---|---|
| Latihan NumPy: autograd, lapisan, optimisasi, konvolusi, RNN, attention, transformer, LoRA, kuantisasi | Peramban (Python di peramban dengan NumPy 2.4); pemeriksa memakai Python 3.12 dan 3.13 dengan versi paket yang sama | Otomatis |
| PyTorch, GPU, model terbuka, fine-tuning LoRA | Google Colab atau Kaggle Notebooks (GPU gratis, kuota berubah dan tidak dijamin) | Lab "Selesai bila:" |
| Demo publik (lencana Tayang) | Streamlit Community Cloud dari repo GitHub | Daftar periksa Tayang Modul 16 |
PyTorch tidak tersedia di peramban maupun di pemeriksa, jadi semua kode PyTorch ditulis sebagai blok statis dan dijalankan di Lab; latihan terperiksa memakai NumPy saja. PyTorch diperkenalkan singkat di Modul 02 dan diajarkan penuh di Modul 09; semua langkah PyTorch di Lab Modul 01–08 opsional dan boleh dikerjakan sesudah Modul 09. Kode PyTorch, Transformers, dan PEFT ditulis terhadap versi yang dicek 18 Oktober 2026 (PyTorch 2.14.1, Transformers 5.20.1, PEFT 0.21.2) dan belum dijalankan penulis; setiap Lab meminta kamu mencatat versi dan keluaran yang kamu dapat. Beberapa contoh pelatihan bisa sedikit berbeda keluarannya atau lebih lambat di peramban; jalankan di laptop bila itu terjadi.
Satu kali menjalankan kode dibatasi 15 detik (pelatihan memakai jaringan
kecil dan sedikit epoch; batas=N sampai 120 detik hanya bila tidak bisa
dihindari).
Waktu: ±6–8 jam per modul (termasuk Lab GPU), total ±100 jam; bagian "Di balik layar (opsional)", latihan bertanda opsional, dan Lab Tayang di luar hitungan itu.
Silabus (16 modul)
| # | Modul | Klasik | Modern | Proyek Nalar Makmur |
|---|---|---|---|---|
| 01 | Dari regresi logistik ke jaringan saraf | Neuron dan perceptron (Rosenblatt 1958), XOR dan batas linear (Minsky & Papert), MLP, fungsi aktivasi, aproksimasi universal (pendalaman opsional) | Kapan deep learning vs gradient boosting (tabular); skala data dan komputasi | MLP pertama untuk XOR dan spiral |
| 02 | Graf komputasi dan aturan rantai | Turunan parsial, Jacobian, graf komputasi, mode maju vs mode mundur, biaya keduanya | Pengenalan singkat tensor PyTorch; autodiff di PyTorch dan JAX | Turunan dihitung tangan, dicek selisih hingga |
| 03 | Autograd ditulis sendiri | Kelas nilai skalar dengan backward(), urutan topologis, akumulasi gradien (gaya micrograd) | torch.autograd, requires_grad, no_grad | Nilai di nalar.py |
| 04 | Backpropagation dengan matriks | Gradien lapisan linear, softmax + entropi silang gabungan yang stabil, MLP NumPy utuh, pemeriksaan gradien | nn.Linear, nn.CrossEntropyLoss | MLP digit 8×8 |
| 05 | Optimisasi | SGD, momentum, RMSProp, Adam (Kingma & Ba 2015) ditulis sendiri, jadwal laju belajar, warmup | torch.optim, AdamW (Loshchilov & Hutter 2019) | Optimizer nalar |
| 06 | Inisialisasi, normalisasi, residual | Gradien hilang/meledak, Xavier/He, BatchNorm dan LayerNorm ditulis sendiri (maju dan mundur), koneksi residual | nn.LayerNorm, praktik inisialisasi modern | Jaringan dalam yang tetap terlatih |
| 07 | Regularisasi dan generalisasi | Peluruhan bobot vs L2, dropout terbalik, early stopping, augmentasi data, double descent (pendalaman opsional) | Resep pelatihan modern | MLP digit yang tidak menghafal |
| 08 | Konvolusi | Korelasi silang, padding/stride, im2col, pooling, CNN maju dan mundur ditulis sendiri | nn.Conv2d, ResNet sekilas, transfer learning (Lab) | CNN digit |
| 09 | Melatih di GPU dengan PyTorch | Loop pelatihan, batching berbenih, akumulasi gradien, float16 dan loss scaling (disimulasikan dengan NumPy) | PyTorch diajarkan penuh: tensor, device, DataLoader, presisi campuran, reproduktibilitas di Colab/Kaggle | Replikasi MLP/CNN di PyTorch (Lab) |
| 10 | Barisan dan RNN | RNN, backpropagation through time, gradien hilang, LSTM/GRU dengan gerbang | nn.LSTM, kapan RNN masih dipakai | RNN tingkat karakter |
| 11 | Embedding dan model bahasa | One-hot vs embedding, model bigram, model bahasa MLP (Bengio dkk. 2003), perplexity, sampling dengan suhu, top-k, dan nukleus | Tokenisasi BPE ditulis sendiri, embedding pralatih | Pembangkit nama warung |
| 12 | Attention | Dari attention Bahdanau ke scaled dot-product, gradien softmax, mask kausal, multi-head, ditulis sendiri dan dicek gradiennya | nn.MultiheadAttention; softmax daring/FlashAttention (pendalaman opsional) | Lapisan attention nalar |
| 13 | Transformer | Blok transformer (pre-LN), posisi sinusoidal dan RoPE, model bahasa transformer kecil (maju dengan NumPy), scaling laws sekilas | GPT kecil dilatih di Colab | GPT nama warung (Lab) |
| 14 | Model terbuka, fine-tuning, LoRA | Transfer learning, LoRA diturunkan (ΔW = A·B dalam konvensi nalar), hitungan parameter, kuantisasi int8/4-bit dihitung sendiri | Hugging Face Transformers dan PEFT (Lab) | Fine-tuning LoRA model kecil (Lab) |
| 15 | Efisiensi, inferensi, evaluasi jujur | FLOPs dan memori (parameter, aktivasi, KV cache) dihitung, batching, distilasi; data uji yang bocor ke pralatih | Inferensi terkuantisasi, biaya GPU | Anggaran memori dan biaya |
| 16 | Proyek akhir: Nalar Makmur | Menyatukan: pustaka mini, model digit, model bahasa, replikasi PyTorch | Repo + laporan + notebook Colab; demo Streamlit + kartu model (lencana Tayang) | Laporan akhir dan demo publik |
Proyek: Nalar Makmur
Peserta membangun nalar, pustaka deep learning mini dengan NumPy:
autograd skalar, lapisan (linear, aktivasi, normalisasi, dropout,
konvolusi, RNN, attention, blok transformer), rugi, optimizer, dan alat
pemeriksa gradien. Pustaka itu dipakai untuk dua tugas Warung Makmur: (1)
membaca angka tulisan tangan di nota belanja (citra digit 8×8 di
data/digit8.csv) dan (2) membangkitkan nama warung baru untuk cabang
(model bahasa tingkat karakter dari data/nama_warung.txt). Setiap
komponen dicocokkan dengan PyTorch di Lab, lalu model kecil terbuka
di-fine-tune dengan LoRA di GPU gratis. Kontrak: proyek-nalar.md.
Lencana Tayang (bukan syarat lulus): demo "Nalar Makmur" di Streamlit
Community Cloud yang menjalankan inferensi nalar dengan NumPy di CPU
(pembaca digit dan pembangkit nama), dengan kartu model, GitHub Actions
hijau, dan README portofolio. Hugging Face Spaces hanya bila kamu punya PRO
atau memenuhi syarat ZeroGPU. Daftar periksa lengkap ada di Modul 16.
Kerangka setiap modul
# Modul NN · Judul
> **Hasil belajar:** 3–5 kemampuan yang bisa diamati
> **Prasyarat:** modul sebelumnya / pengetahuan
> **Waktu:** ± X jam
> **Hasil lab:** apa yang dihasilkan untuk Nalar Makmur
## Intinya (3–5 butir, sebelum isi)
## 1. Masalah nyata
## 2. Konsep inti
### 2.N Di balik layar: … (turunan atau algoritma di balik fungsi pustaka; dipakai latihan)
### 2.N Di balik layar (opsional): … (pendalaman di akhir bagian 2, boleh dilewati; tidak dikuis)
## 3. Bekerja dengan agen
### Tugas tanpa AI (cara klasik)
### Tugas dengan AI (cara modern)
## 4. Lab
### Latihan terperiksa (label **Tingkat:**; tantangan opsional ditandai)
### Lab proyek (diakhiri "Selesai bila:"; PyTorch/GPU di sini)
## 5. Daftar periksa review
## 6. Red flag pelatihan dan kode agen
## 7. Studi kasus (skenario rekaan yang mewakili kejadian umum)
## 8. Di skala enterprise (satu paragraf)
## 9. Kuis (8–10 soal, kunci + alasan; tidak menguji bagian opsional)
## Sumber (dokumentasi resmi + rujukan klasik, bertanggal)
Bekerja dengan agen, pola yang sama di setiap modul. Kerjakan dulu tugas kecil tanpa AI agar kamu tahu jawaban yang benar. Lalu minta agen menulis kode dengan instruksi yang menyebut kontrak, bentuk array, dan tes yang harus gagal pada kode naif, dan minta tesnya lebih dulu. Jalankan sendiri; jangan menyalin angka dari keluaran agen. Kesalahan agen di deep learning hampir tidak pernah memunculkan galat: rugi tetap turun dengan gradien yang salah, mask terbalik, atau dropout yang aktif saat evaluasi. Yang menangkapnya adalah pemeriksaan gradien, tes sifat, dan angka rujukan. Setiap modul hanya mencantumkan tugas, contoh instruksi, dan pola kesalahan khas topiknya.
Aturan isi:
- Turunkan, tulis, periksa. Setiap gradien yang diturunkan di prosa ditulis dengan NumPy dan diperiksa terhadap selisih hingga terpusat di latihan (galat relatif kecil, toleransi disebut di perintah).
- Angka dari kode, bukan dari ingatan. Setiap akurasi, rugi, jumlah parameter, atau ukuran memori di prosa diambil dari contoh yang diperiksa mesin.
- Tes memeriksa kebenaran numerik dan perilaku pelatihan, bukan bentuk:
gradien cocok dengan selisih hingga, softmax tetap hingga untuk logit
1000, rugi turun di bawah ambang dalam N langkah dengan benih tetap, mask
kausal benar-benar memutus aliran informasi dari masa depan, LoRA dengan
B = 0 tidak mengubah keluaran awal, kuantisasi int8 galatnya di bawah
batas. Kode awal yang naif (softmax tanpa pengurangan maksimum, lupa
zero_grad, dropout tanpa skala) harus gagal. - Keacakan selalu berbenih (
np.random.default_rng(0)); hasil pelatihan dibandingkan dengan toleransi yang disebut di perintah. - PyTorch hanya di Lab, dengan versi dan tanggal cek; nama model terbuka dan ukurannya dicek di halaman resminya. Tarif API, harga GPU, dan kuota layanan gratis adalah ilustrasi berlabel atau ditautkan ke halaman resmi, bukan angka yang dihafal.
- Studi kasus memakai skenario rekaan yang mewakili kejadian umum: asisten tanya jawab Warung Makmur, penaut materi dengan regresi logistik, aplikasi latihan adaptif. Tanpa data pengguna.
- Sumber klasik bergantian: Goodfellow, Bengio & Courville Deep Learning (2016); Bishop & Bishop Deep Learning: Foundations and Concepts (2024); Prince Understanding Deep Learning (2023); Rumelhart, Hinton & Williams (1986); LeCun dkk. (1998); Hochreiter & Schmidhuber (1997); Bengio dkk. (2003); Glorot & Bengio (2010); He dkk. (2015, inisialisasi; 2016, ResNet); Ioffe & Szegedy (2015); Ba, Kiros & Hinton (2016); Srivastava dkk. (2014); Kingma & Ba (2015); Bahdanau dkk. (2015); Vaswani dkk. (2017); Hu dkk. (2022, LoRA); Dettmers dkk. (2023, QLoRA); Kaplan dkk. (2020) dan Hoffmann dkk. (2022) untuk scaling laws.
- Patokan CS2023: knowledge area Artificial Intelligence (Machine Learning: neural networks, deep learning).
Batas cakupan
C9 adalah fondasi, bukan seluruh pekerjaan ML Engineer. Yang hanya disentuh sekilas atau di luar cakupan: pipeline data PyTorch berskala besar, visi di luar citra kecil (transfer learning ResNet dan augmentasi hanya di Lab opsional Modul 08), arsitektur ViT, difusi, dan multimodal, pelatihan terdistribusi (DDP, FSDP) dan profiling, RLHF/DPO, penyetelan hiperparameter sistematis, serta ekspor dan penyajian model. Penyajian, pelacakan eksperimen, dan pemantauan dilanjutkan di C10 MLOps.
Hubungan dengan course lain
| Course | Hubungan |
|---|---|
| Aljabar Linear, Kalkulus I/II | Prasyarat wajib (matriks, nilai eigen, turunan parsial, aturan rantai) |
| F1 Python | Prasyarat: kelas, modul, pytest |
| C2 Machine Learning | Sangat dianjurkan: gradient descent, log-loss, regularisasi, validasi; C9 menautkan alih-alih mengulang |
| C1 Data Science | Dianjurkan: interval Wilson dan uji permutasi (Modul 16) |
| F5 Rilis | Peralatan proyek dan Lab Tayang (GitHub Actions, Streamlit Community Cloud) |
| K1 Struktur Data & Algoritma | Rujukan: urutan topologis (Modul 03), pemrograman dinamis (Modul 02) |
| C3 AI Engineering | Datang sesudah C9 dan memakai mekanismenya dari sisi API: tokenisasi, sampling, attention, KV cache, LoRA. C3 merujuk ke C9, bukan sebaliknya |
| C10 MLOps | Lanjutan: reproduktibilitas pipeline, penyajian model, biaya GPU, pemantauan |