29 poin oleh GN⁺ 2025-10-14 | 1 komentar | Bagikan ke WhatsApp
  • nanochat dari Andrej karpathy adalah proyek open-source yang memungkinkan Anda membangun sendiri LLM percakapan mirip ChatGPT dengan anggaran $100
  • Seluruh pipeline (tokenisasi, pretraining, midtraining, fine-tuning, evaluasi, inferensi, layanan web) diimplementasikan secara ringkas dan mudah diutak-atik
  • Pada satu node GPU 8XH100, pelatihan selesai dalam waktu kurang dari 4 jam dengan satu skrip, sedangkan model d26 yang menargetkan performa setingkat GPT-2 membutuhkan sekitar 12 jam dengan biaya sekitar 300 dolar, dan tier 1000 dolar memerlukan 41,6 jam
  • Codebase yang sangat ringkas ini terdiri dari 8.300 baris, 44 file dengan ukuran 330KB, tanpa objek konfigurasi yang rumit atau model factory, sehingga menjadi baseline kuat yang mudah dibaca dan mudah di-fork
  • Proyek ini sedang dikembangkan sebagai proyek capstone untuk kursus LLM101n dari Eureka Labs, dengan tujuan meningkatkan state-of-the-art model mikro yang dapat diakses dengan anggaran di bawah 1000 dolar

Gambaran umum proyek nanochat

  • nanochat adalah proyek open-source yang dibuat untuk developer yang ingin membangun LLM percakapan mirip ChatGPT dengan biaya $100
  • Seluruh codebase ditulis agar tunggal, mudah dibaca, minim dependensi, dan ringkas, sehingga mudah dimodifikasi dan dieksperimenkan
  • Menyediakan lingkungan untuk mengelola seluruh proses mulai dari pretraining, finetuning, evaluasi, inferensi, hingga web UI sekaligus
  • Dengan skrip speedrun.sh, seluruh pipeline dapat dijalankan secara otomatis sehingga pemula pun dapat mulai dengan mudah
  • Dirancang dengan dependensi minimal dan struktur yang bisa di-hack, sehingga sangat cocok untuk tujuan edukasi karena mudah dipahami dan dimodifikasi
  • Proyek ini akan digunakan sebagai proyek capstone dalam kursus LLM101n yang sedang dikembangkan oleh Eureka Labs

Mulai cepat (Quick Start)

  • Di lingkungan GPU (terutama node 8XH100), menjalankan speedrun.sh akan menyiapkan proses pelatihan dan inferensi selama sekitar 4 jam
    • Berdasarkan node 8XH100 dengan tarif 24 dolar per jam, total waktu yang dibutuhkan adalah 4 jam
  • Disarankan menjalankannya di dalam sesi screen agar pemantauan tetap stabil selama pelatihan jangka panjang
    • Gunakan perintah screen -L -Logfile speedrun.log -S speedrun bash speedrun.sh
    • Lepaskan sesi dengan Ctrl-a d, lalu cek progres dengan tail speedrun.log
  • Setelah pelatihan selesai, Anda dapat bebas bertanya ke LLM melalui web UI sederhana dan melihat hasilnya di jendela percakapan
    • python -m scripts.chat_web
  • Model pada level 4e19 FLOPs menawarkan kemampuan percakapan setara anak TK
    • Dapat diminta membuat cerita/puisi
    • Dapat menunjukkan fenomena halusinasi (hallucination)
    • Dapat menjawab pertanyaan dasar seperti mengapa langit berwarna biru
  • Hasil pelatihan dan berbagai metrik performa disimpan di report.md

Laporan hasil pelatihan

  • File report.md berisi "rapor" dari proses pelatihan
    • Menyediakan berbagai indikator evaluasi dan metrik
    • Tabel ringkasan akhir menampilkan performa per tahap BASE, MID, SFT, dan RL
  • Statistik codebase
    • Jumlah karakter: 333.989
    • Jumlah baris: 8.304
    • Jumlah file: 44
    • Jumlah token (perkiraan): 83.497
    • Dependensi (jumlah baris uv.lock): 2.004
  • Contoh performa benchmark
    • CORE: 0.2219 (BASE)
    • ARC-Challenge: 0.2875 (MID), 0.2807 (SFT)
    • GSM8K: 0.0250 (MID), 0.0455 (SFT), 0.0758 (RL)
    • HumanEval: 0.0671 (MID), 0.0854 (SFT)
    • Total waktu yang dibutuhkan: 3 jam 51 menit
  • Performa model memang lebih rendah dibanding ChatGPT, tetapi fokus utamanya adalah pengalaman membangun LLM beranggaran rendah

Model yang lebih besar (Bigger Models)

  • Dengan 100 dolar, tidak mungkin melatih klon ChatGPT berperforma tinggi, dan LLM nyata memang dikenal membutuhkan belanja modal jutaan dolar
  • Ada dua skala tambahan yang menarik untuk diperhatikan
    • Tier model d26 sekitar 300 dolar (depth=26): pelatihan sekitar 12 jam, dengan skor CORE GPT-2 yang sedikit terlampaui
    • Tier 1000 dolar: membutuhkan sekitar 41,6 jam, angka bulat yang rapi
  • Perubahan pada speedrun.sh untuk melatih model d26
    • Perlu mengunduh lebih banyak shard data
      • Hitung jumlah token dengan mengalikan jumlah parameter dengan 20
      • Hitung jumlah karakter dengan mengalikan 4,8
      • Hitung jumlah shard dengan membaginya dengan 250 juta (sekitar 450 shard dibutuhkan)
    • Gunakan opsi --depth=26 dan kurangi device_batch_size menjadi setengah dari 32 ke 16 untuk mencegah OOM
    • Pada tahap midtraining juga perlu menggunakan device_batch_size yang sama

Kebutuhan lingkungan komputasi

  • Dapat berjalan juga pada node GPU 8XA100, tetapi sedikit lebih lambat
  • Dapat berjalan juga pada GPU tunggal
    • Jika torchrun dihilangkan, hasilnya hampir sama
    • Otomatis beralih ke gradient accumulation
    • Membutuhkan waktu 8 kali lebih lama
  • Untuk GPU dengan VRAM kurang dari 80GB, hyperparameter perlu disesuaikan
    • Kurangi --device_batch_size dari 32 (default) ke 16, 8, 4, 2, 1 untuk menghemat memori
    • Jika ingin mengatur di bawah 1, dibutuhkan pendekatan yang lebih kreatif
  • Dibangun di atas vanilla PyTorch, sehingga berpotensi mendukung berbagai lingkungan seperti xpu, mps, dan lainnya
    • Tidak tersedia secara bawaan, jadi perlu sedikit modifikasi

Kegunaan dan aksesibilitas

  • Keunggulan terbesar nanochat adalah seluruh file dapat dipaketkan sekaligus sehingga mudah diajukan pertanyaan ke LLM lain, layanan pencarian dokumen, dan sebagainya
  • Contoh penggunaan utilitas files-to-prompt
    • Mencakup file py, md, rs, html, toml, sh
    • Mengecualikan folder rustbpe/target
    • Memilih format output cxml
    • Dikemas menjadi sekitar 330KB (sekitar kurang dari 100 ribu token), 45 file, dan 8 ribu baris kode
  • DeepWiki direkomendasikan
    • Ubah github.com menjadi deepwiki.com pada URL GitHub untuk mengajukan pertanyaan tentang repositori
    • Disediakan oleh Devin/Cognition

Kontribusi dan arah proyek

  • nanochat adalah proyek yang masih belum selesai
  • Tujuannya adalah meningkatkan state-of-the-art model mikro yang dapat dikerjakan dari awal hingga akhir dengan anggaran di bawah 1000 dolar
  • Aksesibilitas tidak hanya soal biaya, tetapi juga kompleksitas kognitif
    • Tidak ada objek konfigurasi raksasa, model factory, atau kode monster if-then-else
    • Ini bukan "framework" LLM yang sepenuhnya dapat dikonfigurasi
  • Codebase "baseline kuat" yang tunggal, konsisten, minimal, mudah dibaca, bisa di-hack, dan semudah mungkin untuk di-fork
    • Dirancang untuk dijalankan dari awal hingga akhir agar menghasilkan klon ChatGPT yang konkret beserta rapornya

1 komentar

 
GN⁺ 2025-10-14
Opini Hacker News
  • Ini berbagi pengalaman menarik menggunakan alat coding AI
    Saya pernah bertanya ke Karpathy seberapa banyak kode yang benar-benar ia tulis sendiri
    Karpathy: terima kasih atas pertanyaannya, dan pada dasarnya sebagian besar kode saya tulis sendiri (menggunakan autocomplete tab)
    Saya sempat beberapa kali mencoba agen claude/codex, tapi akurasinya kurang bagus jadi tidak terlalu membantu
    Mungkin karena repo yang saya buat terlalu jauh dari distribusi data mereka
    Tautan percakapan asli

    • Kalimat "repo terlalu jauh dari distribusi data" menjelaskan kenapa AI model selalu terasa kurang membantu buat saya
      Semua pekerjaan yang saya lakukan terlalu unik sehingga jauh dari distribusi tersebut

    • Senang rasanya mendengar orang yang bisa dipercaya seperti Karpathy mengatakan itu
      Orang-orang yang merasa AGI akan segera datang mungkin sebaiknya sedikit menurunkan ekspektasi
      Saya juga suka Claude Code
      Saya sesekali perlu menulis kode web, dan untuk area web coverage data latihnya memang sangat bagus sehingga Claude jauh lebih baik daripada saya sebagai developer web
      Tapi saat harus masuk ke bagian inti algoritme dari alat otomasi saya, Claude punya jauh lebih sedikit pijakan sehingga lebih sering membuat kesalahan
      Meski begitu, secara keseluruhan tetap bernilai positif sehingga saya dengan senang hati membayar untuk memakainya
      Bahkan kalau hanya berakhir sebagai asisten pengembangan web pun itu sudah sangat membantu

    • Menurut saya ini justru fenomena yang wajar
      Ini adalah situasi menulis kode yang baru dan orisinal
      Banyak orang mengkritik jawaban Karpathy, tapi justru fakta bahwa ia mencoba claude/codex memberi indikasi bahwa alat-alat itu memang pernah membantunya di masa lalu

    • Mirror link lain untuk tweet Karpathy ada di sini

  • Menarik bahwa nanochat terinspirasi dari modded-nanoGPT
    Silsilahnya adalah nano-GPT milik Karpathy → modded-nanoGPT milik Keller Jordan (versi untuk melatih model dengan cepat) → NanoChat
    modded-nanoGPT menonjol karena bisa melatih model GPT kecil dengan sangat cepat
    Khususnya menggunakan optimizer Muon (dikembangkan langsung oleh penulisnya) untuk linear layer alih-alih AdamW
    modded-nanoGPT, pengantar optimizer Muon

    • Muon adalah optimizer yang dibuat Keller Jordan untuk kompetisi pelatihan cepat ini, lalu ikut disempurnakan oleh orang lain
      Dalam waktu belum sampai setahun, ini sudah dipakai luas sebagai SOTA untuk pelatihan model

    • Cukup mengejutkan bahwa mereka menjalankan satu node inference dengan 8xH100
      Saya penasaran apakah frontier LLM untuk deployment nyata juga berjalan di kisaran seperti ini, atau memakan VRAM/daya komputasi yang lebih besar
      Sekitar $8 per jam, dan jika diasumsikan satu request butuh 5 detik maka kira-kira bisa menangani 700 request
      Jadi sekitar 1 sen per request
      Saya penasaran apakah ada kesalahan dalam hitungan saya

  • Saat ini pelatihannya benar-benar masih berlangsung (dimulai 20 menit lalu)
    Log praktik dibuka
    Empat jam lagi saat modelnya selesai, rencananya akan dibagikan agar siapa pun bisa menguji inference-nya

    • Model yang sudah selesai telah diunggah ke Hugging Face
      Saya tidak mendapat hasil sebaik Karpathy (mungkin seed saya kurang beruntung?)
      Tapi tetap menyenangkan untuk dicoba
      Sebagai contoh, saat ditanya "berapa kaki anjing?"
      Asisten menjawab: "Itu pertanyaan yang sangat menarik, dan sudah diperdebatkan selama berabad-abad di kalangan pecinta anjing. Tidak ada 'jawaban benar' (...)"

    • Pada komentar di samping chart pertama
      "Ukuran utama kemajuan. Bits per byte, seperti kata Karpathy, adalah 'metrik yang jauh lebih baik daripada cross-entropy loss biasa. Ia menormalkan loss dengan jumlah byte per token, sehingga perbandingan bisa dilakukan terlepas dari tokenizer yang digunakan'"
      Penjelasan ini begitu jelas sampai saya agak malu tidak memikirkan hal itu saat bereksperimen dengan tokenizer saya di tinystories
      Saya ingin menganalisis ulang seberapa bagus tokenizer saya sebenarnya

    • Akan bagus jika ada 'howto' sederhana tentang cara menjalankan repo ini sambil melatihnya dengan W&B
      Saya penasaran apakah bisa dibagikan langkah demi langkah untuk programmer yang belum pernah menjalani alur pelatihan model

  • Seru!
    Generator Shakespeare milik Karpathy adalah proyek pertama yang saya coba setelah ollama
    Tujuannya untuk memahami prinsip kerja LLM
    Sejak minggu lalu saya sangat fokus pada LLM dan sedang membuat dua backend sistem training/inference dari nol

    • CPU (berbasis JAX)
    • GPU (berbasis wgpu-py)
      Saya sangat enggan memakai rocm/pytorch karena terasa merepotkan
      Vulkan bagus. llama-cpp juga memakainya seperti itu
      Minggu lalu saya membuat backend CPU/GPU sama-sama berjalan, lalu fokus memperbaiki bug di backend GPU
      Saya merapikan ulang kode WGSL dan meningkatkan efisiensinya
      Dalam proses ini saya banyak memanfaatkan LLM, dan itu benar-benar jadi titik balik besar
      Dengan prompt refactoring, saya bisa memperbaiki error satu per satu dan akhirnya menghasilkan kode yang bahkan lolos type check dengan astral ty
    • Enggan dengan pytorch?
      Rasanya sulit mencari pilihan yang lebih tidak efisien dari itu
  • Akhir pekan ini saya mencoba nanoGPT(tautan)
    Memang proyek yang cukup lama, tapi ini latihan yang keren untuk benar-benar membuat dan melatih GPT Shakespeare kecil sendiri
    Saya menjalankannya di CPU dengan sekitar 0.8M parameter
    Hasilnya kira-kira 'kurang bagus' sesuai dugaan
    Tapi tetap terasa seperti sihir
    Buat orang yang bukan spesialis deep learning dan hanya ingin bereksperimen serta ngoprek, ini pengantar terbaik
    Saya juga belum sempat menuliskan pengalaman nanoGPT akhir pekan itu di blog... kalau sudah selesai, ingin sekali saya tautkan di sini

    • Ini latihan yang berguna karena menunjukkan bahwa riset ML yang baik bisa divalidasi dalam skala kecil
      Contoh baru ini lebih maju karena juga mencakup instruction following, tool use SFT, hingga RLVR
      Hasilnya memberi baseline yang lebih berguna

    • Dengan sedikit menyesuaikan kode Shakespeare lalu melatihnya pada data lain, hasilnya cukup bagus untuk menghasilkan deck commander Magic The Gathering

  • "mendapat saran dari chief LLM whisperer Alec Radford"
    Jika suatu hari podcast Alec dan Andrej benar-benar muncul, rasanya itu akan mengguncang dunia
    Dari masa kejayaan GPT1 sampai sekarang bisa membuat GPT3 hanya dalam 4 jam

    • Tolong semoga podcast itu benar-benar terjadi, itu akan sempurna
  • Eureka Labs: tautan Github
    Andrej benar-benar sosok luar biasa yang sangat produktif
    Mengikuti pekerjaannya sendiri sudah menjadi pengalaman yang hebat

  • Saya selalu merasa cara terbaik berkontribusi bagi umat manusia adalah
    perkalian antara seberapa banyak orang yang saya bantu dan seberapa dalam saya membantu mereka
    Pekerjaan open source yang dilakukan Karpathy punya leverage terbaik dalam arti ini
    Dunia saat ini juga dibangun di atas proyek-proyek open source
    Berkat kebebasan bagi siapa pun di seluruh dunia untuk belajar coding secara gratis dan membuat software
    Saya berharap bidang AI/LLM juga mengikuti arah positif seperti ini

    • Saya sangat menyukai tradisi gratis/berbagi seperti ini di software
      Tapi di dunia LLM, tampaknya sulit mempertahankan arus itu karena biaya training yang terlalu tinggi dan kebutuhan hardware performa tinggi
      Ke depan, pengembangan software mungkin akan ikut bergerak dengan membayar 'sewa' ke host LLM
      Mungkin akan muncul cara untuk membuat lingkungan inference on-prem(local) kembali bisa diakses semua orang
      Tapi untuk saat ini, biaya training yang tinggi membuat prospeknya terlihat tidak jelas
      Dan semakin tinggi ketergantungan pada LLM
      saya khawatir produksi konten 'manual' seperti tutorial untuk pemula pemrograman akan makin berkurang

    • (Agak panjang, tapi semuanya keluar dari ketulusan yang ingin melihat dunia lebih baik)
      Sudut pandang ini agak berbeda dari sentimen 'anti-AI' yang utama
      Konsep intellectual property pada dasarnya adalah struktur di mana kepemilikan informasi dikumpulkan oleh individu tertentu, lalu disewakan kepada umat manusia, alih-alih kontribusi langsung kepada kemanusiaan
      Namun tetap penting ada kondisi yang memungkinkan para kreator individu bisa mencari nafkah
      Bukan hanya lewat apa yang dilakukan Karpathy, saya juga merasa ribuan kreator YouTube di bidang masing-masing memberi kontribusi besar bagi masyarakat
      Hanya saja agak pahit bahwa banyak dari mereka harus bergantung pada sponsorship
      Ada Patreon juga, tapi itu pun tidak ideal
      Saya setuju bahwa semua upaya ini merupakan cara memberi kontribusi besar pada masyarakat
      Baru-baru ini di Daily Show, Jon Stewart menyebut pelatihan AI sebagai strip mining terhadap pengetahuan manusia
      Pelatihan AI kadang langsung dicap sepihak sebagai pencurian, padahal sebenarnya ada banyak sekali sudut pandang
      Arus seperti ini pada akhirnya bisa menguatkan struktur kepemilikan pengetahuan yang sangat kapitalistik
      sehingga kepemilikan ide makin lama makin terkonsentrasi pada sedikit pihak
      Fenomena ini tidak terlalu membantu dunia secara keseluruhan, dan hanya menguntungkan beberapa kelompok
      Perdagangan intellectual property pada akhirnya juga akan makin terkonsentrasi ke semakin sedikit pihak seiring waktu
      Saya rasa diskusi dan penafsiran baru yang sesuai dengan masyarakat modern benar-benar dibutuhkan
      Sangat disayangkan bahwa sikap kalah sebelum bertanding seperti 'nanti pasti diblokir dari atas, percuma dibahas' justru menghambat diskusi
      Penting untuk mendiskusikan dengan bebas bagaimana solusi yang lebih baik bisa muncul

    • Saya sering merekomendasikan seri video ANN/LLM from scratch miliknya
      Penjelasannya sangat jelas, dan gaya coding-nya Pythonic, ringkas, namun tetap mudah dibaca
      (bagian vektorisasi pytorch memang rumit, tapi itu memang area yang sulit)
      Melihat videonya sambil mempelajari gaya tersebut sangat membantu bagi semua orang

  • Saya penasaran apakah mungkin melatih model menggunakan semua buku psikologi, materi, laporan, dan paper yang benar-benar saya miliki
    lalu menjalankan inference untuk pertanyaan khusus saat dibutuhkan di node 1xH100(tautan)

    • Secara teknis bisa, tapi performanya akan sangat buruk
      Untuk kasus seperti ini jauh lebih baik mengambil model kecil yang sudah dipra-latih lalu fine-tuning dengan data saya
      atau memakai workflow RAG (Retrieval Augmented Generation), atau kombinasi keduanya

    • Bisa dilakukan
      Tetapi memakai model general dan memasukkan dokumen saya ke konteks kerja melalui berbagai cara (misalnya RAG, hierarchical memories milik Apple, dll. tautan paper) justru bisa memberi hasil yang lebih baik

    • Bisa saja dilakukan
      Tapi dataset saya sendiri terlalu kecil, sehingga hasilnya jauh kalah dibanding model pra-latih + fine-tuning, atau model kecil + RAG

    • Tidak bisa

  • Proyek ini benar-benar menginspirasi!
    Akan menarik jika ada contoh performa prompt nyata atau hasil pengujiannya

    • Di Simon.incutio.com
      diberi tahu bahwa ada screenshot prompt nyata di sini