2 poin oleh GN⁺ 2025-08-21 | 1 komentar | Bagikan ke WhatsApp
  • Gemma 3 270M menyediakan contoh kode agar dapat diimplementasikan langsung hanya dengan PyTorch
  • Repositori ini ditujukan untuk pembelajaran agar pengguna dapat memahami struktur dan proses pelatihan LLM serta mempraktikkannya sendiri
  • Kode dapat dijalankan tanpa framework LLM eksternal tambahan, dan bisa berjalan bahkan di lingkungan laptop biasa
  • Termasuk berbagai contoh bonus dan materi praktik yang memberikan bantuan nyata untuk pembelajaran pengembang dan peneliti
  • Dengan pengetahuan dasar Python saja, siapa pun dapat mempelajari prinsip dan detail implementasi LLM langkah demi langkah

Makna dan keunggulan proyek open source ini

Repositori ini menyediakan seluruh kode yang diperlukan untuk mengimplementasikan, melakukan pretraining, dan fine-tuning large language model keluarga GPT secara langsung. Berbeda dari sebagian besar contoh large language model lainnya, eksperimen dan pembelajaran dapat dilakukan langsung di lingkungan lokal hanya dengan PyTorch tanpa library khusus LLM eksternal tambahan. Secara khusus, model ringan seperti Gemma 3 270M juga disediakan bersama kode yang rinci, sehingga peneliti atau pengembang pemula dapat mengikuti struktur implementasi nyata sambil memahami prinsip dasarnya secara mendalam.

Isi utama dan struktur repositori

  • Menyediakan repositori kode resmi dari buku "Build a Large Language Model (From Scratch)"
  • Mencakup contoh kode bertahap untuk implementasi LLM bergaya GPT secara langsung, termasuk seluruh tahapan pretraining dan fine-tuning
  • Membahas logika implementasi large language model secara rinci, dan menawarkan pendekatan yang mudah diikuti pemula melalui penjelasan yang jelas, diagram, dan contoh kode di setiap tahap
  • Menjelaskan secara detail metodologi pelatihan model skala besar dan proses implementasi nyata, sehingga pembaca dapat belajar sambil merasakan metode yang digunakan dalam layanan nyata seperti ChatGPT
  • Termasuk contoh terkait memuat bobot model hasil pretraining/fine-tuning

Panduan struktur repositori

  • Menyediakan repositori source code resmi, informasi buku, ISBN, dan lain-lain beserta tautan untuk praktik dan referensi
  • Setiap bab mencakup Jupyter notebook dan skrip Python, sehingga tersedia rujukan untuk latihan bertahap, soal latihan, dan materi tambahan
  • Sebagai materi tambahan dan contoh bonus, tersedia beragam konten praktik yang berguna langsung di lapangan, seperti mekanisme Attention, Tokenizer, optimisasi performa, analisis FLOPS, tuning hyperparameter, dan konversi model Llama

Pengetahuan awal dan kebutuhan perangkat keras

  • Cukup dengan pemahaman dasar tentang pemrograman Python, pengguna dapat memahami prinsip LLM dan praktiknya
  • Familiaritas dengan PyTorch tidak wajib, tetapi mengetahui sintaks dasar sudah cukup
  • Contoh dapat dijalankan di laptop biasa tanpa perangkat berperforma tinggi khusus
  • Jika tersedia GPU, sistem akan mendeteksinya secara otomatis untuk meningkatkan kecepatan pelatihan

Materi tambahan dan konten penguatan praktik

  • Setiap bab menyediakan kode praktik dan notebook soal latihan
  • Mendukung pembelajaran mandiri dengan buku kuis PDF gratis setebal 170 halaman (sekitar 30 soal per bab)
  • Dalam kuliah video (17 jam 15 menit, platform penerbitan Manning), penulis menjelaskan isi utama seluruh bab sambil mengimplementasikan kode secara langsung

Panduan riset dan partisipasi komunitas

  • Pertanyaan, pendapat, dan diskusi aktif dibagikan melalui forum Manning dan GitHub Discussions
  • Untuk menjaga konsistensi antara buku dan kode, kontribusi eksternal ke kode utama repositori dibatasi, dan usulan perbaikan atau revisi disarankan dibahas secara terpisah

Panduan referensi dan sitasi

  • Proyek dan kode ini dapat langsung dimanfaatkan untuk riset pengembangan dan eksperimen LLM
  • Jika dikutip dalam paper, blog teknis, dan sebagainya, tersedia panduan contoh gaya Chicago dan BibTeX

Ringkasan

Repositori ini memberikan kesempatan untuk mengimplementasikan dan mempraktikkan large language model seperti Gemma 3 270M langsung hanya dengan PyTorch. Berbeda dari open source LLM yang ada, keunggulan terbesarnya adalah memungkinkan pembelajaran dan eksperimen atas prinsip inti serta alur keseluruhan dalam lingkungan paling sederhana. Seluruh struktur, contoh, materi tambahan, dan soal latihan telah disusun agar optimal bagi pengembang dan peneliti pemula yang ingin memahami dan mempraktikkan LLM.

1 komentar

 
GN⁺ 2025-08-21
Komentar Hacker News
  • Halo, saya ikut membuat model ini bersama tim terbaik. Saat model ini muncul di halaman utama minggu lalu, saya menjawab banyak pertanyaan. Jika ada pertanyaan tambahan di sini juga, saya dengan senang hati akan menjawab. Secara pribadi saya sangat antusias karena sekarang kalian semua bisa mengakses model ini. Semoga bermanfaat. Silakan lihat tautan Q&A sebelumnya
    • Saya penasaran bagaimana pendapat Anda tentang penggunaan 2/3 dari seluruh parameter untuk embedding pada model sekecil ini. Jika memakai vocabulary level-byte dan mengalokasikannya ke parameter transformer, pemrosesan token mungkin akan lebih lambat, tetapi bukankah akurasinya bisa meningkat?
    • Ini pertanyaan yang sangat dasar, tetapi saya penasaran mengapa saat model tflite dijalankan di GPU pada aplikasi AI edge gallery, outputnya hanya '[multimodal][multimodal]', sedangkan di CPU berjalan normal
    • Saya bukan MLE (User Machine Learning Engineer), jadi saya penasaran apa kelebihan dan kekurangan dari reimplementasi PyTorch oleh OP
    • Ini LM kecil yang sangat keren. Saya penasaran apakah Anda bisa berbagi perangkat keras apa yang dipakai untuk melatihnya dan berapa lama proses pelatihannya
    • Terima kasih sudah membuat ini. Dulu saya pernah membuat chatbot Discord dengan BERT, jadi upgrade ke 270M parameter ini benar-benar membuat saya antusias
  • Saya penasaran apakah seseorang (atau OP) bisa membagikan resep untuk fine-tuning model ini agar bisa diterapkan pada tugas bahasa alami seperti NER tingkat lanjut. Minggu lalu setelah Gemma3 270M dirilis, saya mencoba beberapa tutorial tetapi tidak berhasil. Kebanyakan tutorial berfokus pada chat atau roleplay, sementara pekerjaan utama saya adalah mengekstrak dan memurnikan entitas dari PDF, jadi sulit menemukan petunjuk yang khusus untuk penggunaan seperti ini. Saya rasa model ini akan cocok untuk tujuan tersebut
    • Jika ini adalah tugas NER tradisional (mengekstrak entitas dari rentang token yang tidak tumpang tindih), sepertinya lebih baik menggunakan model encoder-only (misalnya bert-large-NER) atau model encoder-decoder (misalnya t5-base-conll03-english). Model encoding seperti ini memang belakangan kurang mendapat sorotan, tetapi untuk tugas NLP mapan yang tidak membutuhkan generasi, model ini masih unggul, dan dengan jumlah parameter yang sama, akurasi NER-nya kemungkinan jauh lebih tinggi daripada model decoder-only
    • Ada cara menggunakan library Python gemma-llm (berbasis JAX). Silakan lihat tutorial terkait
    • Saya penasaran apakah Anda juga sudah menguji model NER ini. Saya ingin tahu menurut Anda model ini paling cocok untuk kasus penggunaan seperti apa
  • Saya penasaran apakah ini berada dalam konteks yang sama dengan hal-hal yang dulu sering dibuat orang seperti '<model> inference written in vanilla Go, Python, Java, etc'
  • Dari pengalaman saya, saya adalah dev yang hanya pernah memakai model komersial besar (sonnet, ChatGPT, dll.). Saya penasaran model lokal kecil seperti ini bisa dipakai untuk apa. Apakah ada kasus penggunaan yang bisa langsung dipakai, atau pada akhirnya tetap butuh pascaproses/training tambahan? Kesenjangan antara pengguna tool komersial dan para ahli model terlihat besar, dan saya tidak yakin bagaimana menjembatani tahap tengah ini
    • Penggunaan yang paling umum (selain untuk pendidikan) adalah sebagai berikut:
      • model privat on-device (latensinya lebih rendah daripada web API, dan bisa dipakai untuk pemrosesan edge)
      • riset algoritma (prototipe bisa dibuat cepat dan murah)
      • tugas klasifikasi/kategorisasi murah (tidak membutuhkan decoder LLM, tetapi kadang respons bebas tetap berguna), pemeriksaan kewarasan tata bahasa, router (misalnya gaya GPT-5), dll.
    • Pertanyaan yang sangat bagus. Saya sudah menulis jawaban panjang, silakan lihat tautan jawaban detail
    • Sangat berguna untuk peringkasan dan penggunaan tool yang sangat sederhana. Bisa dijalankan di edge tanpa bolak-balik ke internet sehingga biayanya nol
    • Juga ada potensi untuk kerahasiaan dan privasi
  • Mengejutkan bahwa di CPU Mac, setelah menerapkan KV cache + compiler, kecepatannya justru lebih tinggi daripada di GPU A100
    • Ini bisa jadi karena ukuran model yang kecil sehingga tidak bisa memanfaatkan performa GPU secara maksimal. Misalnya, model Qwen3 0.6B lebih cepat di GPU A100, dan bisa dilihat di tautan referensi
    • Melihat versi yang dikompilasi justru lebih lambat daripada eager di A100, jelas ada bagian yang tampaknya belum teroptimasi
    • Mungkin karena CPU dan GPU pada Mac berbagi memori, sedangkan A100 harus mengirim data ke RAM/CPU jika ada sebagian operasi yang tidak didukung di GPU
    • Saya penasaran apakah ini karena GPU tidak bisa mengisi waveform sehingga gagal menyembunyikan latensi memori
  • Saya penasaran embedding 270M ini bisa digunakan untuk apa, dan apakah embedding per token sudah memadai atau apakah embedding kalimat/dokumen juga menghasilkan nilai yang baik. Apakah perlu fine-tuning terpisah agar embedding kalimat/dokumen bisa digunakan secara bermakna?
  • Jika melatih seluruh model dari awal, saya penasaran berapa lama waktu yang dibutuhkan dengan konfigurasi GPU yang masuk akal
    • Sebagai referensi, model 124M saat dilatih di GPU 3090 memproses sekitar 500 ribu token per batch, dan forward+backward memakan sekitar 10 detik. Untuk melatih semua 6 triliun token (jumlah pelatihan model ini), dibutuhkan sekitar 4 tahun. Singkatnya, "terlalu lama"
    • Tergantung apa yang dimaksud dengan "masuk akal", tetapi biasanya jika dilatih dari pure scratch di lingkungan rumahan, waktunya akan sangat lama. Itu juga salah satu alasan model ini dirilis. Sekarang, tanpa pelatihan scratch, hasil yang praktis bisa dicapai hanya dengan fine-tuning di berbagai perangkat keras
  • Saya penasaran apakah model sekecil ini benar-benar punya kegunaan di dunia nyata (di luar pembelajaran atau akademik)
    • Ya! Bukan sekadar alat bantu belajar atau mainan, tetapi benar-benar punya nilai praktis untuk pekerjaan berulang atau sebagai model developer enterprise/lokal yang cepat. Contoh ini terinspirasi dari pengalaman masa lalu yang membutuhkan pemrosesan teks real-time. Silakan lihat tutorial streaming ML dan video demo yang dibuat dengan versi Gemma sebelumnya. Secara teori sekarang ini bisa direplikasi dengan Gemma 270M
    • Jika di-fine-tune dengan LoRa, model ini juga bisa memberikan performa yang sangat baik di domain yang sangat spesifik. Contohnya:
      • hanya menjawab dalam skema JSON tertentu, atau merespons dengan suara karakter tertentu
      • klasifikasi teks (misalnya email, spam, dll.)
      • peringkasan teks dalam jumlah besar (email → judul/slug)
      • klasifikasi tag berdasarkan aturan yang telah ditentukan, content marketing, dll.
      • deteksi spam/duplikasi/flag
      • model kecil yang "bodoh" seperti ini justru sering punya keunggulan di domain sempit karena pengetahuan dunianya lebih sedikit, sehingga lebih jarang mengarang hal-hal yang tidak masuk akal
    • Sering memberikan hasil yang tepat pada tugas terjemahan multibahasa berbasis teks sumber (misalnya untuk percakapan wisatawan). Contoh:
      (teks asli bahasa Ukraina) Rochechouart는 프랑스의 도시, 누벨아키텐 지방의 오트비엔주에 위치… 인구 3637명(2022), 파리 기준 약 360km 남쪽, 리모주에서 34km 서쪽에 위치.
      (hasil terjemahan model) Rochechouart는 프랑스의 도시로, 누벨아키텐 지역 오트비엔 주에 위치. 인구 3637명(2022). 파리로부터 약 360km, 리옹에서 34km 거리.
      (kebijakan dukungan PLTS atap rumah tangga di Vietnam juga diterjemahkan dengan cukup akurat)
      
      Sumber wiki: Wikipedia bahasa Ukraina, berita Vietnam
    • Berguna untuk tugas yang berinteraksi dengan bahasa alami, tetapi tidak mengharapkan model menyimpan banyak pengetahuan secara internal. Cocok untuk area seperti tool use dan embedding, di mana informasi divalidasi atau diambil dari luar
  • Saya mengklik karena mengira ini produk baru antarmuka 3270, ternyata tidak sesuai harapan
  • Orang yang benar-benar luar biasa