Saya berhasil menjalankan model bahasa berparameter 284 miliar pada laptop dengan RAM hanya 3,2 GB, hanya dengan menggunakan C99 murni dan drive NVMe. Triknya adalah dengan melakukan streaming bobot expert model alih-alih memuat seluruh checkpoint 160 GB ke dalam memori, membuktikan bahwa model mixture-of-experts (MoE) terbesar sekalipun dapat dipaksakan masuk ke perangkat keras konsumen.
Mengapa ini penting
Model bahasa besar (LLM) menggerakkan pembuatan kode, bantuan penelitian, dan banyak lagi, tetapi ukurannya biasanya memaksa pengguna menggunakan server multi-GPU yang mahal atau melakukan kuantisasi berat yang merusak kualitas. Menunjukkan bahwa model MoE berparameter 284 B dapat berjalan dengan beberapa gigabyte RAM membuka pintu bagi penghobi, startup kecil, dan peneliti dengan anggaran terbatas untuk bereksperimen dengan model mutakhir tanpa mengorbankan fidelitas.
Model dan hambatan perangkat keras
DeepSeek-V4-Flash menyimpan 284 B parameter di 256 expert per lapisan transformer. Checkpoint mentahnya memakan sekitar 160 GB di disk—ukuran yang jauh melampaui 3,2 GB RAM pada laptop tipikal. Alur kerja inferensi tradisional mencoba memetakan seluruh checkpoint ke dalam memori, yang dengan cepat menghabiskan anggaran RAM dan menyebabkan crash.
Streaming bobot expert: ide utamanya
Arsitektur MoE hanya mengaktifkan subset kecil dari expert untuk setiap token. Dalam DeepSeek-V4-Flash, router memilih enam expert dari 256 per lapisan. Karena komputasi tidak pernah menyentuh expert yang tidak aktif, mesin inferensi dapat melewatkan proses pemuatannya.
Implementasi ini memperlakukan checkpoint sebagai sumber streaming. Saat router memutuskan expert mana yang dibutuhkan untuk token saat ini, mesin akan menarik blok bobot tersebut dari drive NVMe ke dalam cache LRU (least-recently-used) yang berada di RAM. Jika cache cukup besar, expert yang sama akan digunakan kembali pada token-token berikutnya, menghasilkan cache hit; jika cache terlalu kecil, mesin akan lebih sering membaca dari disk. Hasilnya adalah jejak memori puncak sebesar 3,23 GB, jauh di bawah batas laptop, sambil tetap mempertahankan bobot presisi penuh dan tidak memerlukan akselerasi GPU.
Pelajaran berharga dari implementasi
1. Output yang lancar bukan bukti kebenaran Kernel yang bermasalah masih dapat menghasilkan kalimat yang tampak masuk akal, terutama ketika pola bahasa model menutupi kesalahan numerik. Saya memvalidasi setiap dari 14 operasi kritis terhadap referensi PyTorch yang baru, memastikan bahwa perbedaan numeriknya tetap dalam toleransi yang sangat kecil. Melewatkan langkah ini akan membiarkan penyimpangan halus lolos begitu saja.
2. Mode kegagalan yang sama dapat menipu pengujian Anda Bug korupsi memori menyebabkan pilihan routing menyusut ke segelintir expert, sehingga meningkatkan tingkat cache-hit dari 52% menjadi 95% dan memberikan ilusi peningkatan kecepatan yang masif. Karena rangkaian pengujian membandingkan dua versi dari kode yang sama-sama bermasalah, masalah tersebut tidak terdeteksi. Solusinya adalah dengan menambahkan jalur referensi independen—kode yang tidak berbagi logika apa pun dengan implementasi utama—sehingga cacat yang sama tidak dapat lolos tanpa disadari.
3. Ukur sebelum melakukan optimasi Saya berasumsi penyalinan memori memakan waktu 1 ms dan menghabiskan waktu untuk mengoptimalkannya. Profiling menunjukkan bahwa operasi tersebut sebenarnya memakan waktu 3,6 ms, atau 22% dari total waktu inferensi. Pelajarannya: jangan pernah mengandalkan intuisi untuk bagian yang kritis terhadap performa; pengukuran yang presisi adalah satu-satunya panduan yang andal.
4. Kondisi termal sangat memengaruhi throughput Menjalankan benchmark pada laptop yang "panas" menghasilkan waktu jalan hingga tiga kali lebih lambat dibandingkan pada mesin yang dingin. Suhu yang tinggi menghambat throughput drive NVMe dan memperlambat CPU, sehingga mengacaukan hasil. Catatlah kondisi termal sistem setiap kali Anda memublikasikan angka performa.
Seperti apa angka-angkanya
- Ukuran model di disk: ~160 GB
- Penggunaan RAM puncak: 3,23 GB
- Expert per token: 6 (dari 256)
- Tingkat cache-hit: bervariasi tergantung RAM; dengan 3,2 GB nilainya
Melakukan streaming hanya pada expert yang benar-benar digunakan oleh model MoE memungkinkan LLM dengan 284 miliar parameter berjalan di laptop sederhana tanpa kuantisasi atau akselerasi GPU. Eksperimen ini menunjukkan bahwa pergerakan data yang cerdas, validasi yang ketat, dan pengukuran yang disiplin dapat menghindari batasan perangkat keras yang dianggap tidak dapat diubah oleh banyak orang.
