Fable5 makin mahal, GPU lokal makin terbatas: DRIFT yang membagi satu LLM ke Mac & CUDA
(github.com/TaewoooPark)LLM makin menjauh dari individu, dan DRIFT melawannya dengan membagi satu LLM ke beberapa perangkat pribadi.
DRIFT adalah proyek open source yang menjalankan satu LLM dengan membaginya ke beberapa perangkat pribadi pada tingkat layer.
Belakangan ini, jika pengembang individu ingin langsung mencoba AI, kedua jalurnya sama-sama tidak mudah. Model papan atas seperti Fable5 makin terbatas aksesnya, dan model lokal pun, tidak seperti klaim “bisa dijalankan di komputer saya”, pada praktiknya tetap menuntut memori GPU yang cukup besar serta penyiapan yang tidak ringan. Meski modelnya terbuka, kemampuan untuk menjalankannya pada skala yang cukup besar masih tetap terkonsentrasi pada sebagian perangkat keras dan platform. Pada akhirnya, ini membentuk lingkungan AI yang tersentralisasi dan menimbulkan batasan besar pada tingkat akses individu terhadap teknologi terbaru.
Pertanyaan yang diajukan DRIFT sederhana.
Jika satu mesin tidak mampu menanggung seluruh model, mungkinkah beberapa perangkat pribadi menjalankan satu model bersama-sama?
DRIFT menjalankan satu model dengan memakai Apple GPU (MPS) di Mac dan NVIDIA GPU (CUDA) di PC Windows/Linux secara bersamaan. Model dipecah per decoder layer, dan antar node yang dikirim bukan seluruh model atau KV cache, melainkan hanya hidden state. Komunikasi ditangani lewat protokol byte netral berbasis TCP + msgpack, bukan objek PyTorch atau handle CUDA.
Fitur utamanya sebagai berikut.
- Pembagian otomatis satu LLM per decoder layer
- Eksekusi campuran Mac MPS dan NVIDIA CUDA
- Menggunakan TCP + msgpack untuk komunikasi antar node
- Mode rantai P2P untuk mengurangi bottleneck bandwidth pada head node
- Wire terenkripsi berbasis X25519 dan ChaCha20-Poly1305
- Verifikasi pekerjaan tiap node dengan tanda terima bertanda tangan Ed25519
- Failover berbasis re-split + replay saat node mati di tengah jalan
- Menyediakan HTTP API yang kompatibel dengan OpenAI
- Secara teoretis dapat dibagi sebanyak jumlah decoder layer. Berdasarkan Qwen default, satu model bisa dibagi hingga maksimum 28 mesin, dan berdasarkan Gemma hingga 35 mesin; saat ini sweet spot yang realistis ada di kisaran 2–4 mesin
Proyek lain yang menyelesaikan masalah serupa antara lain Exo dan llama.cpp RPC. Exo bisa menggabungkan beberapa Apple Silicon agar dipakai seperti klaster lokal, tetapi komunikasi antar node terikat pada sisi MLX sehingga sulit keluar dari ekosistem Apple. llama.cpp RPC dapat memanfaatkan beberapa backend, tetapi merupakan pendekatan RPC yang menempel pada runtime ggml/llama.cpp. Pembeda DRIFT adalah bahwa batas antar node dinaikkan ke protokol byte netral, bukan runtime ML tertentu. Karena itu, fokusnya adalah memasukkan kombinasi yang pada dasarnya sulit ditempatkan dalam runtime terdistribusi yang sama, seperti Apple MPS dan NVIDIA CUDA, ke dalam satu eksekusi model.
Implementasi DRIFT dibangun di atas Python dan PyTorch, tetapi kontrak antar node dirancang agar tidak bergantung pada PyTorch. Pemuatan dan eksekusi model memanfaatkan Hugging Face Transformers, safetensors, serta PyTorch MPS/CUDA, dan ke luar menyediakan API kompatibel OpenAI berbasis Starlette/Uvicorn. Komunikasi internal dibungkus dengan framing msgpack dan lapisan enkripsi, sehingga desainnya berupaya memisahkan “model apa dijalankan di perangkat apa” dari “byte apa yang saling dipertukarkan antar node”.
Secara pribadi, alasan proyek ini menarik adalah karena ia tidak memulai “desentralisasi AI” langsung dari cerita ekonomi token atau jaringan raksasa. Hal yang lebih dulu dibutuhkan adalah lapisan eksekusi yang benar-benar memungkinkan perangkat pribadi ikut serta dalam menjalankan satu model. Harus ada struktur yang memungkinkan verifikasi siapa menghitung layer mana, yang bisa pulih saat node terlepas, dan yang tidak terikat pada vendor atau data center tertentu, agar jaringan yang lebih besar dapat dibangun di atasnya.
DRIFT bukan proyek yang mengutamakan kecepatan. Justru prioritasnya adalah ketepatan. Penekanannya ada pada verifikasi apakah hasil saat dijalankan secara terdistribusi sama dengan jawaban yang dihasilkan pada satu mesin. Berdasarkan README, pada Qwen2.5-1.5B-Instruct proyek ini telah melewati beberapa parity gate, dan juga mencakup eksperimen yang mencampurkan Mac MPS dan NVIDIA CUDA.
Di saat model AI papan atas makin tertutup, dan AI lokal masih menuntut perangkat keras mahal, DRIFT mengajukan pertanyaan yang cukup realistis.
Saat frontier model makin menjauh dari pengguna individu, bisakah kita menghimpun sumber daya pribadi untuk memperkuat daya itu?
1 komentar
DRIFT adalah proyek yang terlebih dahulu melihat apakah satu LLM bisa dibagi dan dijalankan secara akurat di berbagai perangkat pribadi yang heterogen, alih-alih berkompetisi soal kecepatan!
Khususnya dibandingkan dengan Exo / llama.cpp RPC / Petals, saya ingin meminta pendapat dan masukan berharga dari banyak orang tentang apakah diferensiasinya cukup meyakinkan, serta poin-poin tambahan yang dibutuhkan di dunia kerja untuk eksekusi campuran MPS↔CUDA.