CS336: Pemodelan Bahasa dari Nol
(cs336.stanford.edu)- Model bahasa adalah fondasi aplikasi NLP modern dan membuka paradigma baru untuk menangani beragam subtugas dengan satu sistem serbaguna
- Kursus ini mengajak peserta mengimplementasikan langsung seluruh proses pengembangan model bahasa, mulai dari pengumpulan dan pembersihan data untuk pra-pelatihan, membangun Transformer, pelatihan, hingga evaluasi sebelum deployment
- Tugas dimulai dari implementasi tokenizer, arsitektur model, dan optimizer, lalu meluas ke optimisasi GPU, implementasi Triton untuk FlashAttention2, hingga kode pelatihan terdistribusi
- Mengikuti kuliah ini membutuhkan kemahiran Python dan rekayasa perangkat lunak, PyTorch, konsep sistem seperti hierarki memori, serta pengetahuan kalkulus, aljabar linear, probabilitas-statistika, dan machine learning
- Ini adalah kelas 5 unit yang berfokus pada implementasi; rujukan ke kode yang sudah ada dan penyelesaian langsung dengan LLM dibatasi, serta disarankan melakukan debugging CPU sebelum pelatihan dan benchmark di GPU
Tujuan dan cakupan kursus
- Model bahasa merupakan landasan aplikasi pemrosesan bahasa alami (NLP) modern, dan membuka paradigma baru untuk menangani banyak subtugas dengan satu sistem serbaguna
- Seiring AI, ML, dan NLP terus berkembang, pemahaman mendalam tentang model bahasa menjadi penting bagi ilmuwan maupun insinyur
- Terinspirasi dari kuliah sistem operasi yang membangun keseluruhan sistem operasi dari nol, mahasiswa akan mengikuti sendiri seluruh proses pengembangan model bahasa
- Cakupan yang dibahas meliputi pengumpulan dan pembersihan data pra-pelatihan, penyusunan model Transformer, pelatihan model, hingga evaluasi sebelum deployment
Kemampuan yang dibutuhkan
- Sebagian besar tugas dikerjakan dengan Python, dan dibanding kelas AI lain hanya diberikan scaffolding seminimal mungkin
- Jumlah kode yang harus ditulis setidaknya satu orde magnitudo lebih banyak dibanding kelas lain, sehingga kemahiran Python dan rekayasa perangkat lunak sangat penting
- Porsi besar dari kelas ini adalah menjalankan model bahasa jaringan saraf dengan cepat dan efisien pada GPU di banyak mesin
- Diharapkan memiliki pemahaman yang kuat tentang PyTorch dan konsep sistem dasar seperti hierarki memori
- Harus nyaman dengan notasi dan operasi matriks-vektor, probabilitas, distribusi Gaussian, mean, simpangan baku, serta dasar-dasar machine learning dan deep learning
- Ini adalah kelas 5 unit dengan porsi implementasi yang sangat tinggi, sehingga perlu mengalokasikan waktu yang cukup
Struktur tugas
- Assignment 1 Basics mengimplementasikan tokenizer, arsitektur model, dan optimizer yang diperlukan untuk melatih model bahasa Transformer standar, lalu melatih model bahasa minimal
- Assignment 2 Systems melakukan profiling dan benchmarking model serta layer dari Assignment 1 dengan alat tingkat lanjut, mengoptimalkan FlashAttention2 dengan implementasi Triton buatan sendiri, dan membuat kode pelatihan terdistribusi yang hemat memori
- Assignment 3 Scaling memahami fungsi tiap komponen Transformer, lalu menyesuaikan scaling law untuk memprediksi penskalaan model dengan melakukan query ke API pelatihan
- Assignment 4 Data mengubah dump mentah Common Crawl menjadi data pra-pelatihan yang bisa digunakan, lalu meningkatkan performa model melalui penyaringan dan penghapusan duplikasi
- Assignment 5 Alignment and Reasoning RL menerapkan supervised fine-tuning dan reinforcement learning untuk melatih LM agar dapat bernalar saat menyelesaikan soal matematika
- Optional Part 2 dari Assignment 5 mengimplementasikan dan menerapkan metode penyelarasan keamanan seperti DPO
Komputasi GPU dan biaya
- Jika mengikuti dari rumah, tugas dapat diselesaikan menggunakan komputasi GPU dari penyedia cloud
- Per 28 Maret 2026, harga publik untuk satu GPU B200 adalah Modal $6.25/jam, Lambda Labs $6.69/jam, RunPod $4.99/jam, Nebius $5.50/jam atau preemptible $3.05/jam, dan Together $7.49/jam
- Modal menyediakan komputasi gratis $30 per bulan, hanya menagih komputasi yang benar-benar dipakai, dan mempermudah perpindahan antara pengembangan lokal dan eksperimen GPU skala besar
- Untuk menghemat biaya dan demi kenyamanan, disarankan memeriksa kebenaran implementasi terlebih dahulu di CPU, lalu menggunakan jumlah GPU yang direkomendasikan dalam tugas untuk menjalankan pelatihan atau benchmark operasi GPU
Operasional kelas dan aturan pengumpulan
- Perkuliahan berlangsung Senin dan Rabu pukul 3:00–4:20pm di Skilling Auditorium, dan rekamannya tersedia di YouTube playlist
- Semua pertanyaan terkait kelas harus diajukan di kanal Slack publik, dan semua pengumuman juga disampaikan melalui Slack
- Semua tugas dikumpulkan melalui Gradescope sebelum tenggat, dan pengumpulan lewat email tidak diterima
- Sebelum tenggat, boleh mengumpulkan ulang sebanyak yang diinginkan, dan hanya pengumpulan terakhir yang dinilai
- Pengumpulan parsial lebih baik daripada tidak mengumpulkan sama sekali
- Setiap mahasiswa dapat menggunakan 6 hari keterlambatan, dan 1 hari keterlambatan memperpanjang tenggat 24 jam
- Maksimal 3 hari keterlambatan dapat digunakan untuk tiap tugas
- Jika merasa ada kesalahan objektif dalam penilaian, mahasiswa dapat mengajukan permintaan penilaian ulang melalui Gradescope dalam 3 hari setelah nilai diumumkan
Kebijakan kolaborasi dan alat AI
- Kelompok belajar diperbolehkan, tetapi setiap mahasiswa harus memahami dan menyelesaikan tugasnya sendiri, dan setiap mahasiswa harus mengumpulkan satu tugas
- Jika bekerja dalam kelompok, nama anggota kelompok belajar harus dicantumkan di bagian atas tugas
- Prompt LLM seperti ChatGPT diperbolehkan untuk pertanyaan pemrograman tingkat rendah atau pertanyaan konsep tingkat tinggi tentang model bahasa
- Menggunakan LLM secara langsung untuk menyelesaikan soal dilarang
- Saat mengerjakan tugas, sangat dianjurkan menonaktifkan autocomplete AI seperti Cursor Tab dan GitHub CoPilot, sementara autocomplete non-AI seperti pelengkapan nama fungsi diperbolehkan
- Materi kuliah sudah memuat hal-hal yang diperlukan untuk implementasi mandiri, sehingga kecuali secara khusus diizinkan dalam handout tugas, mahasiswa tidak boleh melihat kode implementasi yang sudah ada di internet
1 komentar
Komentar Hacker News
Baru-baru ini saya menyelesaikan versi kuliah edisi 2025, menonton videonya dan mengerjakan sebagian besar tugas, meski melewati beberapa bagian yang mahal. Bahkan dua tugas pertama saja membutuhkan banyak pemikiran dan debugging, dan meskipun saya sudah punya sedikit dasar deep learning, tetap butuh beberapa bulan dengan menyisihkan waktu sepulang kerja dan di akhir pekan
Sulit membayangkan bagaimana mahasiswa Stanford bisa mengumpulkan tugas setiap 2 minggu. Staf pengajar dan asisten benar-benar mencurahkan banyak usaha pada desain kuliah, slide yang memuat perkembangan terbaru, dan persiapan tugas yang sangat bagus, dan sangat memuaskan bisa melihat langsung bagaimana semuanya saling terhubung, mulai dari komponen kecil sampai membangun model bahasa sungguhan dan memverifikasi bagian-bagian utama pipeline LLM
Namun, saya berharap persyaratan lingkungan eksekusi dijelaskan lebih jelas. Harness bekerja paling baik di Linux + NVIDIA GPU dan tampaknya mengharapkan versi atau arsitektur CUDA tertentu, yang mungkin terasa wajar bagi peneliti tetapi jarang ada di lingkungan pribadi. Untuk mengikuti dari rumah, pilihan terbaik berikutnya adalah Windows + WSL2 + NVIDIA GPU atau menyewa GPU lintas platform, tetapi keduanya tidak mudah maupun murah. Akan bagus juga jika ada panduan tentang bagaimana orang tanpa GPU yang kompatibel bisa tetap memaksimalkan kursus ini, dan saya juga belajar bahwa di Mac OS, kalau analisis memori tidak dilakukan dengan hati-hati, kode Python bisa hang dan memaksa reboot
Di komentar-komentar ini, biaya sewa GPU juga agak dibesar-besarkan. Sebagian besar pengembangan dilakukan secara lokal, lalu hanya menjalankan GPU on-demand sebentar saat dibutuhkan. Tugas 1 bisa dijalankan sepenuhnya di mesin lokal tanpa GPU, dan tugas 1·2 pun sebagian besar bisa diselesaikan hanya dengan beberapa jam sewa. Bahkan jika terus memakai GPU sewaan tanpa terlalu berhati-hati, totalnya sekitar 200 dolar, dan kalau bersedia mengecilkan skala masalah, biayanya bisa dengan mudah ditekan di bawah 50 dolar. Rasanya hal seperti ini dan cara menyesuaikannya bisa kami sajikan lebih jelas dalam bentuk tabel
Kalau ada masukan atau masalah tambahan, akan bagus jika membuka issue di repositori. Soalnya masalah yang tidak kami ketahui sulit untuk diperbaiki
Beberapa hari lalu saya mencoba mengimplementasikan versi perbaikan gpt-1 dengan Claude. Saya bukan machine learning engineer, cuma backend engineer biasa, dan hasil akhirnya jadi semacam campuran antara gpt-1 dan modded-nanogpt milik KellerJordan
Dengan PC gaming, saya bisa mereproduksi hasil dari paper gpt-1 asli, dan VRAM yang dibutuhkan juga tidak banyak. Dengan NVIDIA GeForce RTX 2060 SUPER, saya bisa mereproduksi sebagian besar hasil hanya dengan 1 jam training, jadi kalau tertarik pada pretraining LLM, saya sarankan mencoba cara yang sama
Kodenya ada di sini: https://github.com/epoyraz/modded-gpt-1
Atau cukup tanya saja ke Claude 4.8 atau Codex 5.5
Saya punya kenangan bagus dengan cs224d yang dulu diajarkan richardsocher. Dibuat pada era sebelum transformer, jadi sekarang memang agak tua, tetapi pada masanya itu kuliah pengantar yang sangat keren untuk menerapkan deep learning pada NLP
https://cs224d.stanford.edu
Disebut sebagai “komputasi GPU untuk belajar mandiri”, tetapi B200 yang direkomendasikan mulai dari 4,99 dolar per jam. Rasanya meragukan apakah itu benar-benar perlu untuk memulai
Saya sendiri sedang membangun LLM dari nol, dan pada tahap awal saya tidak membutuhkan apa pun di atas 4090 dari Vast.ai
Tahun ini kami beruntung bisa mendapat GPU Blackwell untuk mahasiswa Stanford, jadi penjelasan tugas memang banyak ditulis dengan acuan itu
Sebaliknya, saat belajar merancang dan bereksperimen dengan compute kernel atau blok IP, hardware yang dibutuhkan harus jauh lebih kuat atau berkapasitas besar. Artefak eksperimen memang sengaja berada di sisi yang berlawanan dari optimisasi, dibuat agar mudah dibaca, ditelaah, dan di-debug di setiap tahap, sehingga model atau bitstream hasilnya membengkak besar dan tidak optimal
Menjalankan model yang sudah diselesaikan orang lain dan dioptimalkan untuk perangkat seperti 4090 dengan prompt sendiri juga merupakan eksperimen, tetapi bisa dilakukan dengan murah. Itu mirip seperti memuat bitstream FPGA buatan orang lain yang telah dirancang dan disintesis untuk FPGA seharga 20 dolar ke FPGA yang sama lalu memasukkan sinyal input sendiri. Namun eksperimen yang akan dilakukan sambil mempelajari desain model sendiri di kuliah ini bukanlah jenis seperti itu
Kuliah ini menarik, tapi saya juga penasaran dengan prasyaratnya. Tertulis bahwa harus sudah familier dengan dasar-dasar machine learning dan deep learning, jadi saya ingin tahu apakah ada materi belajar mandiri yang berfokus pada implementasi untuk topik tersebut, atau pengalaman mengikuti rekaman kuliah Stanford
Namun, CS336 membahas jauh lebih banyak teknik mutakhir, jadi untuk bagian itu versi 2026 penting
Kuliah: https://web.stanford.edu/class/archive/cs/cs224n/cs224n.1246...
Video kuliah: https://www.youtube.com/playlist?list=PLoROMvodv4rOaMFbaqxPD...
Buku ajar: https://web.stanford.edu/~jurafsky/slp3/
Benar-benar luar biasa. Selama sebulan terakhir saya melakukan hal yang mirip, dengan syarat tantangan tidak memakai library apa pun selain Python standard library, bahkan tanpa numpy
Saya mulai dari Word2Vec, membuat RNN dan LSTM, dan sekarang sedang berada di tengah implementasi arsitektur transformer
Saya membuat grup untuk mengikuti kelas ini bersama menggunakan video YouTube dan materi kuliah yang dibuka online. Sulit, tapi memuaskan, dan kami maju dengan ritme 1 video kuliah per minggu
Kami mulai dengan lebih dari 30 orang, tetapi pada sesi terakhir hanya 8 yang tersisa
Saya ingin mencobanya, tapi khawatir kemampuan saya masih belum cukup. Mungkin suatu hari nanti saya bisa
Saya penasaran apa GPU minimum untuk mengikuti kuliah ini di rumah. Saya punya 5080 16GB, apa benar perlu lebih dari itu?
Saya mengerjakan dua tugas pertama secara mandiri selama setahun dan benar-benar belajar banyak. Penasaran setelah itu mengikuti kuliah apa
Hal yang terasa kurang dari CS336 adalah cara penyampaian komponen reinforcement learning, dan untuk bagian itu kuliah 5·6 di CME 295 terasa lebih baik
https://cme295.stanford.edu/syllabus/
Saya juga dengar kelas model difusi, CME 296, bagus, dan tampaknya cocok sebagai langkah berikutnya
https://cme296.stanford.edu/syllabus/