22 poin oleh GN⁺ 2025-12-30 | 2 komentar | Bagikan ke WhatsApp
  • Z80-μLM adalah model AI percakapan ultra-kecil yang berjalan di atas prosesor Z80 keluaran 1976 (4MHz, RAM 64KB)
  • Dengan menerapkan Quantization-Aware Training (QAT), model ini melakukan generasi teks tingkat karakter hanya dengan bobot 2-bit dan operasi bilangan bulat 16-bit
  • Di dalam file eksekusi .COM berukuran sekitar 40KB, sudah mencakup mesin inferensi, bobot, dan UI chat
  • Dengan trigram hash encoding, input diubah menjadi 128 bucket sehingga dapat menghasilkan respons yang tahan terhadap typo maupun perubahan urutan kata
  • Model ini tidak mampu memahami konteks yang kompleks, tetapi menarik sebagai model AI eksperimental yang dapat berjalan bahkan di lingkungan 8-bit yang terbatas

Ikhtisar proyek

  • Z80-μLM adalah model bahasa ultra-kecil yang dapat dijalankan di lingkungan retrocomputing
    • Berjalan pada CPU Z80 dengan RAM 64KB, dan menghasilkan respons percakapan tingkat karakter
    • Ukuran total termasuk model, kode inferensi, dan UI sekitar 40KB
  • Pertanyaan inti proyek ini adalah, “seberapa kecil sebuah model bisa dibuat sambil tetap mempertahankan kepribadian,” dan model ini juga dapat didistribusikan secara self-hosted
  • Belum mencapai tingkat Turing Test, tetapi dirancang untuk memberi kesenangan kepada pengguna melalui percakapan sederhana

Termasuk dua contoh

  • tinychat

    • Chatbot sederhana yang dilatih dengan data Q&A sehari-hari
      • Memberikan jawaban singkat dan berkarakter untuk salam, perkenalan diri, dan percakapan umum
      • Contoh: “hello” → “HI”, “are you a robot” → “YES”, “do you dream” → “MAYBE”
  • guess

    • Model berbentuk permainan 20 Questions
      • Mengetahui topik rahasia dan menjawab dengan YES/NO/MAYBE
      • Saat pengguna menebak jawaban yang benar, model menampilkan “WIN”
  • Data pelatihan dapat dibuat menggunakan Ollama atau Claude API, dan sudah termasuk alat penyeimbang distribusi kelas

Fitur utama

  • Trigram hash encoding: meng-hash teks input ke 128 bucket, toleran terhadap typo dan tidak bergantung pada urutan kata
  • Kuantisasi bobot 2-bit: setiap bobot bernilai {-2, -1, 0, +1}, dengan 4 bobot disimpan per byte
  • Inferensi bilangan bulat 16-bit: menggunakan operasi aritmetika 16-bit milik Z80
  • File .COM ~40KB: cocok untuk Transient Program Area (TPA) di CP/M
  • Generasi autoregresif: menghasilkan output per karakter
  • Tanpa operasi floating point, menggunakan penskalaan fixed-point
  • Mendukung mode interaktif: dijalankan dengan perintah CHAT

Cara interaksi

  • Model ini tidak “memahami” input, tetapi merespons berdasarkan bentuk (shape) dari input
    • Kalimat input diubah menjadi 128 bucket trigram untuk mempertahankan kemiripan semantik
    • Contoh: “hello there” dan “there hello” diproses dengan struktur bucket yang sama
  • Sulit membedakan kalimat panjang atau kalimat yang bergantung pada urutan
  • Makna respons singkat

    • Bahkan respons 1–2 kata dapat mengekspresikan nuansa yang tak terduga
      • OK: penerimaan netral
      • WHY?: menolak pertanyaan
      • R U?: keraguan akan keberadaan
      • MAYBE: ketidakpastian
      • AM I?: pertanyaan reflektif
    • Respons singkat ini mendorong pengguna untuk menyimpulkan konteks sendiri

Kekuatan dan keterbatasan

  • Kekuatan
    • Respons tipe klasifikasi yang konsisten untuk input singkat
    • Tahan terhadap typo, penyusunan ulang, dan perubahan urutan kata
    • Ekspresi kepribadian melalui pilihan kosakata
    • Dapat berjalan bahkan pada perangkat keras 8-bit yang terbatas
  • Keterbatasan
    • Tidak dapat menghasilkan kalimat baru
    • Tidak dapat melacak konteks multi-turn
    • Tidak dapat memahami tata bahasa
    • Belum mencapai tingkat kecerdasan umum

Arsitektur

  • Lapisan input: 128 bucket kueri + 128 bucket konteks
  • Lapisan tersembunyi: contoh konfigurasi 256 → 192 → 128
  • Lapisan output: 1 neuron untuk setiap karakter dalam charset
  • Fungsi aktivasi: ReLU
  • Batasan kuantisasi

    • Z80 adalah CPU 8-bit, tetapi melakukan akumulasi dan aktivasi menggunakan pasangan register 16-bit (HL, DE, BC)
    • Bobot disimpan 4 per byte (satuan 2-bit)
    • Akumulator 16-bit digunakan untuk mencegah overflow saat menjumlahkan 256 input
    • Karena bobot 2-bit, daya representasinya terbatas, dan tanpa QAT hasil pelatihan dapat menjadi tidak stabil
  • Loop internal Z80

    • Inti inferensi adalah loop multiply-accumulate (MAC)
      • Bobot di-unpack, lalu ditambahkan atau dikurangkan ke akumulator (ACC) sesuai nilai -2~-1~0~+1
      • Setelah perhitungan tiap lapisan, dilakukan right shift 2-bit untuk mencegah overflow
    • Keseluruhan proses inferensi mengulang sekitar 100 ribu operasi per karakter

Lisensi

  • Pilihan MIT atau Apache-2.0

2 komentar

 
GN⁺ 2025-12-30
Komentar Hacker News
  • Timing-nya sempurna. Aku memasukkan terminal VT100 (untuk menjalankan coding agent), emulator Z80, dan serial bridge untuk memprogram mesin CP/M ke dalam game Unreal Engine
    Tangkapan layar
    Aku tidak menyangka ada yang akan memposting sesuatu yang pas sekali seperti ini. Kebetulan yang benar-benar aneh tapi luar biasa
    • Rasanya seperti kita berdua terhubung lewat telepati
      Aku membuat emulator dan IDE CP/M berbasis browser: lockboot.github.io/desktop
      Awalnya aku mau memposting itu, tapi malah terjebak rabbit hole saat mencari ‘demo keren’
    • Buku James Burke Connections: Alternative History of Technology membahas keterhubungan kebetulan seperti ini dengan sangat baik
    • Menarik, tapi sayang aku tidak bisa melihat imgur
  • Aku benar-benar suka ini. Langsung aku kasih bintang GitHub
    Aku pernah menulis MLP dalam Fortran IV untuk mesin kartu punch era 60-an (proyek Xortran)
    Walaupun tidak ada mekanisme perhatian dan konteksnya terbatas pada trigram dari kalimat terakhir, interaksinya tetap cukup bagus
    Kalau hal seperti ini sudah mungkin di perangkat keras tahun 60-an, SF dan sains pada masa itu pasti akan benar-benar berbeda
    • Proyek seperti ini benar-benar menarik. Rasanya seperti melihat jalur yang terlewatkan
      Kalau mau agak terdengar seperti teori konspirasi, salah satu alasan perusahaan AI memborong RAM dalam jumlah besar mungkin agar orang-orang tidak sadar bahwa situasi sekarang mirip dengan era revolusi home computer
      Aku memakai mesin dengan RAM 1TB, dan dengan agent kustom performanya lebih baik daripada model komersial. Pribadi, aman, dan tidak dimonetisasi
  • Aku juga sering memikirkan ini. Apa sebenarnya ‘LLM dengan fungsi minimum’ itu? Maksudku model yang cukup untuk percakapan sederhana
    Lalu pertanyaan berikutnya adalah, bisakah kita membuat model kecil yang belajar sambil mengambil data eksternal
    Kalau kita bisa membuat model ultra-kecil yang belajar secara real-time, itu berarti kita akan punya asisten pribadi yang sepenuhnya lokal
    • Ini hampir sama persis dengan konsep ‘cognitive core’ yang dibicarakan Karpathy
      Model yang sangat kecil, hampir tanpa pengetahuan ensiklopedis, tetapi punya kemampuan penalaran dasar dan penggunaan alat
      Tweet referensi
    • Kalau teknologi seperti ini sudah ada di tahun 90-an, mungkin LLM dasar sebenarnya sudah akan muncul
      Kalau begitu, dunia sekarang pasti akan sepenuhnya berbeda
    • RWKV menarik untuk dilihat: rwkv.com
      Ini adalah studi kasus eksperimental tentang ‘bagaimana jika RNN ternyata cocok untuk LLM’
      Sangat cepat di CPU
    • Ada LLM yang dibuat seseorang di dalam Minecraft, yang menangani percakapan sederhana dengan 5 juta bobot 8-bit
      Hanya saja, sepertinya sulit untuk benar-benar memanfaatkan context window yang besar
  • Ini lelucon bahwa perusahaan AI akan memborong semua chip Z80 dan menaikkan harganya
    • Sudah terlambat. Tahun lalu stoknya sudah habis
  • Kalau sebuah model diajari rahasia (passphrase), lalu pengguna harus menebaknya lewat pertanyaan
    Aku penasaran, kalau seseorang punya akses ke bobot modelnya, apakah rahasia itu bisa diinferensikan balik dari sana, atau hanya bisa diakses lewat pertanyaan
    • Pertanyaan itu mengingatkanku pada makalah ini: Planting Undetectable Backdoors in Machine Learning Models
      Ini membahas cara menanam backdoor yang tidak dapat dideteksi di dalam model sambil tetap tampak berfungsi normal di permukaan
    • Semakin kecil modelnya, semakin mudah rahasia seperti itu diekstrak lewat analisis bobot
      Secara umum ini termasuk masalah interpretabilitas
  • Kalau ada kode dan infrastruktur pelatihan yang memadai, sepertinya ELIZA juga bisa jauh lebih kuat
    • ELIZA awalnya berjalan di mainframe IBM 7094 pada tahun 1960-an
      Strukturnya 32K×36-bit word, dan tidak mendukung operasi byte
      Kalau file eksekusi Z80 berukuran 40KB dipindahkan begitu saja, itu akan cukup sempit
      Tapi karena sebagian besarnya adalah bobot 2-bit, mungkin saja bisa
      Pada perangkat keras setelahnya, terutama Z80 tahun 1976, situasinya akan jauh lebih longgar
  • Aku juga pernah merancang dan membuat komputer Z80 sendiri. Saat ini memakai 32KB ROM dan 32KB RAM
    Di versi berikutnya aku akan memperluasnya, jadi pasti ingin mencoba ini
    • Harga RAM akhir-akhir ini terlalu mahal
  • Kalau seluruh input diproses sekaligus sebagai embedding, ini tampaknya struktur MLP, bukan Transformer maupun RNN
  • Seandainya matcher fuzzy seperti ini ada di RPG dengan input bebas zaman dulu
    Dulu hanya pencocokan kata kunci yang persis, jadi terasa kaku
    Mungkin game terakhir dengan pendekatan seperti itu adalah Wizardry 8 pada 2001
  • Kerja yang keren. Kalau boleh tahu, bagaimana perkiraan jadwal menuju AGI?
    • Mungkin sekitar awal April
    • Sepertinya ada tepat di balik tikungan berikutnya
 
crawler 2025-12-30

Menurut saya sangat menakjubkan bahwa teknologi terbaru bisa dijalankan pada perangkat keras lama.

Jika nanti AGI muncul di masa depan, apakah itu bisa dijalankan jika kita mengumpulkan seluruh daya komputasi yang ada di Bumi saat ini?