- drlzh.ai adalah kursus deep reinforcement learning berbasis praktik yang mengajak peserta mengimplementasikan algoritme secara langsung, bukan sekadar membacanya, dan mencakup MDP serta RL tabular hingga RLHF, Decision Transformers, Dreamer, dan meta-learning
- Notebook utama adalah jalur latihan tempat sebagian kode diganti dengan TODO berpandu, sedangkan notebook di
solution/ berisi versi lengkap yang dapat dijalankan untuk dicek saat menemui kebuntuan
- Kurikulum terdiri dari notebook
00-18; jalur dasar dirancang untuk diikuti secara berurutan, sementara notebook lanjutan bersifat mandiri tetapi penomorannya tetap memberi jalur belajar utama
- Workspace Docker menyediakan code-server, notebook, Python
>=3.13,<3.14, kernel Jupyter, dependensi, dan ekstensi VS Code DRL-ZH AI Companion sekaligus
- Peserta diharapkan sudah familier dengan Python, dasar PyTorch, serta matematika ML seperti probabilitas, statistik, aljabar linear, dan kalkulus; notebook juga mengasumsikan pengguna bisa membaca dan memodifikasi kode pelatihan nyata
Gambaran proyek
- drlzh.ai adalah kursus deep reinforcement learning yang berfokus pada praktik, disusun agar peserta membangun algoritmenya sendiri
- Cakupan pembelajaran dimulai dari MDP dan RL tabular lalu meluas ke topik berikut
- algoritme berbasis agen Atari
- robot kendali kontinu
- perencanaan bergaya AlphaZero
- RLHF untuk language model
- Decision Transformers
- kebijakan bergaya VLA
- world model
- Dreamer
- meta-learning
- Notebook utama adalah jalur latihan, dengan kode yang sengaja diganti oleh bagian
TODO berpandu
- Notebook
solution/ menyediakan versi lengkap dan dapat dijalankan, sehingga peserta bisa mengurai bagian yang macet tanpa keluar dari alur kursus
Struktur kurikulum
- Kursus ini terdiri dari notebook
00 hingga 18
00-07 Foundations
- Mengimplementasikan MDPs, RL tabular, DQN, REINFORCE, actor-critic methods, DDPG, TD3, SAC, dan PPO
08-10 Breaking assumptions
- Membahas curiosity dengan RND, multi-agent RL, dan offline RL menggunakan BC serta IQL
11 Planning
- Membahas Monte Carlo Tree Search, self-play, dan pembelajaran policy/value bergaya AlphaZero
12-13 Modern AI stack
- Membahas RLHF berbasis PPO, DPO, GRPO, Decision Transformers, dan NanoVLA(
DTVLA)
14 Production
- Membahas TensorBoard, checkpoint, debugging, multiple seeds, Ray, dan Optuna
15-16 World models
- Membahas MBPO berbasis SAC dan
DR3AM/Dreamer yang menggunakan latent imagination RSSM
17-18 Meta + wrap-up
- Terdiri dari MAML, FOMAML, fast adaptation, dan penutupan kursus
- Notebook dasar diasumsikan untuk diikuti secara berurutan
- Notebook lanjutan bersifat mandiri, tetapi penomorannya menyediakan jalur utama dari eksplorasi hingga capstone kursus
DRL-ZH AI Companion
- Workspace Docker menyertakan DRL-ZH AI Companion, ekstensi VS Code untuk kursus ini
- Ekstensi tersebut mengenali notebook dan
TODO yang sedang dikerjakan pengguna
- Alih-alih langsung memberikan jawaban, ekstensi ini memberi petunjuk bergaya Socratic
- Mendukung mode teks dan mode suara
- Kunci LLM harus dibawa sendiri oleh pengguna
- Gemini adalah default
- OpenAI, Anthropic, dan Groq juga didukung
Lingkungan eksekusi dan cara memulai
- Konfigurasi yang direkomendasikan adalah Docker
- Docker menyediakan komponen berikut sebagai satu workspace yang reproducible
- code-server
- notebook
- Python
>=3.13,<3.14
- kernel Jupyter
- dependensi
- AI Companion
- Prosedur awal dasar
- Instal Docker dan Git, clone repositori, lalu pindah ke direktori terkait
- Di Linux/macOS, jalankan
printf "UID=$(id -u)\nGID=$(id -g)\n" > .env agar kepemilikan file sesuai dengan pengguna
- Jalankan environment default
docker compose up --build -d
- Buka
http://localhost:8080 di browser berbasis Chromium dan pilih kernel Python (drl-zh)
- Buka
00_Intro.ipynb dan mulai isi TODO
- Jika memerlukan akses GPU NVIDIA, gunakan perintah berikut
docker compose -f docker-compose.yml -f docker-compose.gpu.yml up --build -d
- Untuk image yang lebih kecil dan khusus CPU, gunakan perintah berikut
docker compose -f docker-compose.yml -f docker-compose.cpu.yml up --build -d
- Jika lebih memilih konfigurasi native, petunjuk Python, Poetry, VS Code, dan Companion tersedia di MANUAL.md
Pengetahuan yang dibutuhkan dan lisensi
- Peserta diharapkan familier dengan hal berikut
- Python
- dasar PyTorch
- probabilitas, statistik, aljabar linear, dan kalkulus yang dibutuhkan untuk ML
- Notebook mengajarkan RL itu sendiri, tetapi tetap mengasumsikan pengguna bisa membaca dan memodifikasi kode pelatihan nyata
- Lisensinya adalah MIT; detailnya tersedia di LICENSE
1 komentar
Opini Hacker News
Saat mempelajari deep reinforcement learning terbaru, saya menemukan banyak materi bagus, tetapi tidak ada yang keseimbangan teori dan praktiknya benar-benar cocok dengan pengalaman saya, jadi saya membuatnya sendiri dan merilisnya sebagai open source
Dalam seri notebook Python ini, saya mengimplementasikan ulang dari nol algoritme seperti QLearning, DQN, SAC, dan PPO, serta menyusunnya agar orang bisa mengikuti teori dan latihan coding secara bertahap hingga teknik-teknik mutakhir sekitar 2018/2019
Judulnya diambil dari "Neural Network: Zero To Hero" karya Andrej Karpathy, dan saya juga berniat membuat video YouTube, tetapi belum sempat
Referensi: https://github.com/alessiodm/drl-zh/blob/main/00_Intro.ipynb, https://karpathy.ai/zero-to-hero.html
Kalau nanti bab-babnya diperluas, akan bagus bila membahas apa yang harus dilakukan ketika semuanya rusak, bukan hanya hal-hal sederhana yang sudah berjalan baik
Misalnya masalah seperti aksi terus stuck di nilai maksimum, atau eksplorasi tidak juga dimulai meski sudah memberi noise sebanyak apa pun pada pembelajaran off-policy
Dasarnya biasanya berjalan, tetapi saya berharap ada lebih banyak materi praktis yang bisa dipakai ketika tiba-tiba muncul masalah yang jarang dibicarakan orang
Dalam penerapan deep reinforcement learning nyata, kasus yang tidak berjalan baik lebih banyak daripada yang berjalan baik, dan tutorial ini juga masih kurang di sisi pemecahan masalah, tuning, dan produksi
Kalau ada waktu untuk memperluasnya, bagian ini akan saya jadikan prioritas: https://www.alexirpan.com/2018/02/14/rl-hard.html
Saya belajar reinforcement learning selama tiga semester di universitas, tetapi sangat kecewa saat mengetahui bahwa teknik reinforcement learning terbaru pun tidak bisa mengalahkan heuristic sederhana di Tetris
Seperti alat lain, konsep reinforcement learning juga penting untuk ditempatkan pada kegunaan yang tepat
Di kelas, sering kali kurang ditunjukkan di mana ide-ide kuat ini bisa dipakai di dunia nyata
Membahas kebijakan optimal memang bagus, tetapi kalau tidak membuat orang memahami di mana penerapannya, ia mudah berhenti sebagai kumpulan matematika yang menarik
Namun saya tetap merasa dasar-dasarnya layak dipelajari
Berbeda dari supervised learning, unsupervised learning, dan semi-supervised learning yang belakangan sangat mendapat sorotan, reinforcement learning memodelkan masalah pembelajaran dengan sangat elegan melalui agen yang berinteraksi dengan lingkungan dan menerima umpan balik
Bahkan sekarang pun ada contoh keberhasilan praktis seperti fine-tuning LLM dengan RLHF, perusahaan robotika seperti Covariant, dan riset yang menggabungkan LLM dengan reinforcement learning seperti Nvidia Eureka: https://www.alexirpan.com/2018/02/14/rl-hard.html, https://blogs.nvidia.com/blog/eureka-robotics-research/
Saya membuat framework deep reinforcement learning untuk pembuatan musik, mirip OpenAI Gym
Silakan dipakai kalau ingin menguji algoritme dari tulisan asli, dan issue maupun PR juga diterima
https://github.com/chaosprint/RaveForce
Dulu saya pernah mencoba melihat sendiri deep reinforcement learning, tetapi agennya tidak menghasilkan kemajuan berarti, dan karena hampir tidak punya latar belakang statistik atau machine learning, sulit untuk men-debug apa yang salah
Saya berencana mengikuti materi ini dan melihat hasilnya
Kalau hanya ingin melihat apakah algoritmenya benar-benar berjalan, Anda bisa memilih algoritme yang seharusnya berfungsi dari folder
solutiondan langsung menjalankannyaKalau berjalan baik, setelah itu Anda bisa menikmati proses mengimplementasikannya kembali dari nol
Menurut saya hal itu perlu disampaikan jelas kepada pemula
Ini bagian yang paling saya sayangkan dalam topik machine learning, terutama yang terkait reinforcement learning
Beberapa tahun lalu saya membuat sesuatu yang mirip. Tidak sampai PPO dan gayanya juga berbeda
https://learndrl.com/
Bukan bermaksud mengatakan lebih baik atau lebih buruk, tetapi bagi orang yang sedang belajar, selalu baik untuk melihat informasi yang sama dalam berbagai bentuk
Setelah melihat contoh MDP, saya ingin memberi saran tentang cara memperkenalkan fungsi transisi nondeterministik
Dalam contoh saat ini, nondeterminisme muncul ketika agen mencoba bergerak ke atas atau bawah tetapi tanpa sengaja bergerak ke kiri atau kanan; namun teksnya tidak cukup menjelaskan bahwa agen melakukan kesalahan, sehingga komentar pada fungsi
transition()awalnya membingungkanSelain itu, secara pedagogis mungkin lebih baik memperkenalkan nondeterminisme sebagai sesuatu yang berasal dari lingkungan, bukan dari agen. Misalnya bergerak di atas permukaan kasar sehingga meski menggerakkan track atau anggota tubuh, hasil yang diinginkan tidak selalu terjadi
Dengan ungkapan sekarang, ini terlihat seperti fungsi dari aksi ke aksi acak lalu ke status acak, padahal definisinya adalah fungsi dari aksi ke status acak
Awalnya saya berencana menutup kekosongan teks dengan narasi suara di video, tetapi karena belum sempat membuat video, saya memperbaiki celah seperti itu terlebih dahulu
Baru setelah cukup jauh membaca notebook ketiga, saya menyadari bahwa bagian kode yang ditandai
TODOsebenarnya adalah latihan coding yang harus diimplementasikan pembaca, dan pengujian berikutnya dipakai untuk memeriksa jawaban sendiriIni pendekatan yang cerdas, tetapi tidak langsung jelas sejak awal
Awalnya saya mengira detail-detail kecil dibiarkan sebagai TODO agar tidak mengganggu gambaran besar, padahal bagian-bagian itu justru inti latihan
TODObisa membingungkan, jadi saya memperbarui instruksi di README.md agar menyatakan dengan jelas bahwa itu adalah bagian coding yang perlu diselesaikanSaya sudah mempelajari teorinya, tetapi masih menggantung karena kurang pengetahuan praktis yang dibutuhkan untuk benar-benar memakai reinforcement learning; ini tampak seperti jenis kuliah yang saya cari
Terlihat bagus; akan lebih baik jika menambahkan tautan video YouTube di README
Namun karena komunitas tampaknya tertarik, saya akan mencoba membuatnya, dan sementara itu saya akan memperbaiki README