46 poin oleh GN⁺ 15 hari lalu | Belum ada komentar. | Bagikan ke WhatsApp
  • Model bahasa superkecil dengan sekitar 9 juta parameter, dirancang agar bisa dilatih dalam kurang dari 5 menit hanya dengan satu notebook Colab
  • Seluruh proses dari pembuatan data, tokenizer, pelatihan model, hingga inferensi dilakukan dalam satu lingkungan, dengan dukungan browser, Colab, dan lokal
  • Dirancang sebagai karakter “Guppy” yang membayangkan lingkungan bawah air, berbicara dengan kalimat pendek dan sederhana dengan fokus pada transparansi untuk pembelajaran
  • Menggunakan arsitektur Transformer dasar untuk memperlihatkan struktur inti model bahasa dengan jelas tanpa teknik yang rumit
  • Proyek open source yang memungkinkan siapa pun bereksperimen dan belajar dengan dataset publik HuggingFace dan lisensi MIT

Gambaran umum GuppyLM

  • GuppyLM adalah model bahasa superkecil dengan sekitar 9 juta parameter, yang bercakap-cakap seperti karakter ikan “Guppy”
  • Dirancang dengan tujuan menjadi LLM yang bisa langsung dilatih sendiri dalam kurang dari 5 menit hanya dengan satu notebook Colab, sehingga seluruh proses dari pembuatan data, tokenizer, struktur model, loop pelatihan, hingga inferensi dapat dijalankan dalam satu lingkungan
  • Dibuat agar pengguna dapat merasakan langsung cara kerja internal model bahasa tanpa perlu klaster GPU besar atau pengetahuan khusus
  • Meski tidak menghasilkan teks panjang seperti model besar, ini adalah model edukasi yang secara transparan memperlihatkan seluruh alur input, pembelajaran bobot, dan pembuatan output
  • Dapat dijalankan di browser, Colab, dan lingkungan lokal, dan dataset serta modelnya dibuka melalui HuggingFace

Karakteristik model

  • GuppyLM adalah karakter yang berpikir terutama tentang lingkungan bawah air seperti air, suhu, cahaya, getaran, dan makanan
  • Menggunakan kalimat pendek dengan huruf kecil, dan tidak memahami konsep abstrak manusia seperti uang atau politik
  • Memiliki kepribadian yang ramah, penuh rasa ingin tahu, dan sederhana
  • Data latih terdiri dari 60 topik dan 60 ribu sampel percakapan sintetis, dan dapat dilatih dalam sekitar 5 menit pada satu GPU
  • Karena ukuran modelnya kecil, inferensi berbasis WebAssembly di dalam browser juga dimungkinkan

Arsitektur

  • Jumlah parameter: 8.7M
  • Jumlah layer: 6
  • Dimensi hidden: 384
  • Attention head: 6
  • Dimensi FFN: 768 (ReLU)
  • Ukuran kosakata: 4,096 (BPE)
  • Panjang sekuens maksimum: 128 token
  • Normalisasi: LayerNorm
  • Embedding posisi: terlatih
  • LM head: berbagi bobot dengan embedding
  • Struktur Transformer dasar tanpa memakai teknik rumit seperti GQA, RoPE, SwiGLU, early exit

Kepribadian dan topik percakapan

  • Guppy berbicara dengan kalimat pendek, ekspresi huruf kecil, dan cara berpikir berbasis indera
  • Merespons berbagai topik seperti makanan, air, cahaya, akuarium, gelembung, pantulan, permukaan air, dan dunia luar
  • 60 topik utama mencakup sapaan, emosi, suhu, makanan, cahaya, air, akuarium, kebisingan, kesepian, mimpi, musim, lelucon, cinta, kesehatan, TV dan lain-lain

Cara menjalankan dan menggunakan

  • Menjalankan di browser

    • Menjalankan inferensi lokal berbasis WebAssembly
    • Mengunduh model ONNX terkuantisasi berukuran sekitar 10MB dan dapat dijalankan tanpa server atau API key
  • Chat di Colab

    • Mengunduh model pra-latih dari HuggingFace dan menggunakannya melalui antarmuka interaktif
    • Jalankan semua sel dan bisa langsung mulai mengobrol
  • Pelatihan di Colab

    • Atur runtime ke T4 GPU lalu jalankan semua sel
    • Mengotomatisasi unduhan dataset, pelatihan tokenizer, pelatihan model, hingga pengujian
    • Model hasilnya dapat diunggah ke HuggingFace atau disimpan secara lokal
  • Chat di lingkungan lokal

    • Instal dengan pip install torch tokenizers lalu jalankan perintah python -m guppylm chat
    • Jika percakapan terlalu panjang, kualitas akan menurun karena batas 128 token
    • Juga mendukung mode yang menerima satu prompt, memberikan jawaban, lalu langsung keluar

Dataset

  • Menggunakan dataset HuggingFace arman-bd/guppylm-60k-generic
  • Jumlah sampel: 60,000 (latih 57K / uji 3K)
  • Format: {"input": "...", "output": "...", "category": "..."}
  • Jumlah kategori: 60
  • Metode pembuatan: data sintetis berbasis template
    • Sekitar 60 template, 30 objek akuarium, 17 jenis makanan, dan 25 kombinasi aktivitas untuk menghasilkan sekitar 16.000 output unik

Struktur proyek

  • guppylm/

    • config.py: model dan hyperparameter pelatihan
    • model.py: model Transformer dasar
    • dataset.py: pemuatan data dan pemrosesan batch
    • train.py: loop pelatihan (cosine LR, AMP)
    • generate_data.py: pembuatan data percakapan 60 topik
    • eval_cases.py: kasus uji
    • prepare_data.py: persiapan data dan pelatihan tokenizer
    • inference.py: antarmuka chat
  • tools/

    • make_colab.py: pembuatan notebook Colab
    • export_onnx.py: ekspor ke model ONNX (kuantisasi uint8)
    • export_dataset.py: unggah dataset ke HuggingFace
    • dataset_card.md: deskripsi dataset untuk HuggingFace
  • docs/

    • index.html: demo browser (ONNX + WASM)
    • download.sh: unduh model dan tokenizer
    • model.onnx: model terkuantisasi (~10MB)
    • tokenizer.json: tokenizer BPE
    • guppy.png: gambar logo

Keputusan desain

  • Menghapus system prompt:Model 9M sulit mengikuti instruksi bersyarat, sehingga alih-alih memakai prompt yang sama di semua sampel, kepribadian langsung ditanamkan ke dalam bobot

    • Dengan ini, saat inferensi dapat menghemat sekitar 60 token
    • Percakapan satu giliran: karena batas 128 token, kualitas menurun setelah 3–4 giliran
    • Ini cocok dengan konsep ‘ingatan ikan mas’ milik Guppy, tetapi satu giliran adalah yang paling stabil
    • Mempertahankan Transformer dasar: GQA, SwiGLU, RoPE, early exit tidak memberi peningkatan kualitas pada skala 9M dan hanya menambah kompleksitas
    • Kombinasi attention standar + ReLU FFN + LayerNorm sudah memberikan performa yang memadai
    • Menggunakan data sintetis: untuk menjaga konsistensi karakter, dipilih metode pembuatan data berbasis template

Lisensi

  • Lisensi MIT

Belum ada komentar.

Belum ada komentar.