GPT-OSS-120B dapat berjalan sangat baik hanya dengan 8GB VRAM
(old.reddit.com)- Dengan memanfaatkan opsi
--cpu-moedi llama-cpp, layer expert MOE diproses di CPU dan hanya layer attention yang di-offload ke GPU, sehingga kinerja prefill cepat dapat dicapai dengan 5~8GB VRAM - Di GPU hanya tinggal KV cache, bobot dan aktivasi attention, tabel routing, LayerNorm, dan sebagainya yang merupakan parameter non-expert, sehingga penggunaan memori tetap rendah
- Bahkan dengan GPU sekelas RTX 3060Ti dan RAM sistem 64GB~96GB, model 120B dapat dijalankan dengan ringan, dan performa terbaik dicapai pada GPU yang mendukung BF16 (RTX 3000+)
- Saat menggunakan 5GB VRAM, tercatat performa 8.15ms per token (122.66 token/detik), dan dengan 8GB VRAM meningkat hingga 7.44ms (134.44 token/detik)
- Arsitektur 120B dirancang agar optimal untuk hardware konsumen, sehingga tetap bisa berjalan cepat bahkan di lingkungan dengan sumber daya GPU terbatas
Struktur CPU-MOE dan offloading GPU
- Dengan opsi
--cpu-moe, seluruh layer expert (MOE) diproses di CPU- Contoh:
--n-cpu-moe 36→ semua 36 blok MOE dijalankan di CPU - Jika perlu, sebagian MOE dapat dipindahkan ke GPU untuk menyesuaikan performa
- Contoh:
- Untuk menghemat VRAM, hanya komponen berikut yang ditempatkan tetap di GPU
- KV cache (sequence)
- Bobot dan aktivasi attention
- Tabel routing
- LayerNorm dan parameter non-expert lainnya
- Karena bobot MOE tidak menetap di GPU, tidak ada beban besar dari parameter MLP berukuran besar
Kebutuhan memori dan hardware
- GPU: 5~8GB VRAM sudah cukup (misalnya RTX 3060Ti)
- GPU paling optimal bila mendukung BF16 (seri RTX 3000 ke atas)
- RAM sistem: minimal 64GB, idealnya 96GB
- Dengan memanfaatkan Linux mmap, layer expert yang “panas” tetap dipertahankan di memori meski seluruh model tidak muat sepenuhnya di memori
Angka performa
Lingkungan 5GB VRAM
- Pemrosesan prompt: 8.15ms/token (122.66 token/detik)
- Inferensi: 55.44ms/token (18.04 token/detik)
Lingkungan 8GB VRAM (--n-cpu-moe 36, sisanya GPU)
- Pemrosesan prompt: 7.44ms/token (134.44 token/detik)
- Inferensi: 39.03ms/token (25.62 token/detik)
Lingkungan 22GB VRAM (sebagian MOE di GPU)
- Pemrosesan prompt: 6.13ms/token (163.01 token/detik)
- Inferensi: 32.45ms/token (30.82 token/detik)
Kesimpulan
- Desain GPT-OSS-120B dioptimalkan agar model berskala besar bisa berjalan cepat bahkan pada hardware konsumen
- Berkat struktur CPU-MOE yang menjaga kecepatan sambil menekan penggunaan VRAM, pendekatan ini sangat cocok untuk lingkungan dengan sumber daya GPU terbatas
Pertanyaan inti & isi jawaban
Q1. Berapa penggunaan VRAM nyata pada konfigurasi ini?
- Penulis asli: Sekitar 5GB VRAM jika semua MOE dijalankan di CPU, dan hanya layer attention yang dinaikkan ke GPU
- Penjelasan tambahan: Di GPU hanya tinggal KV cache, bobot dan aktivasi attention, tabel routing, serta LayerNorm
Q2. Berapa RAM minimum yang dibutuhkan?
- Penulis asli: Minimal 64GB, idealnya disarankan 96GB
- Alasan: Linux mmap menjaga layer expert yang “panas” tetap berada di memori, sehingga akses cepat tetap mungkin tanpa harus memuat seluruh model
Q3. Kalau sebagian layer MOE dipindahkan ke GPU, apakah kecepatannya naik banyak?
- Penulis asli: Bisa sedikit lebih cepat, tetapi perbedaannya tidak besar
- Contoh:
- Semua MOE di CPU: prompt 134 token/detik, inferensi 25 token/detik
- 8 MOE di GPU: prompt 163 token/detik, inferensi 30 token/detik
- Penggunaan VRAM naik menjadi 22GB
Q4. GPU seperti apa yang cocok?
- Penulis asli: RTX 3060Ti atau lebih tinggi sudah cukup, dukungan BF16 (RTX 3000+) direkomendasikan
- Alasan: Semua layer selain MOE berjalan dalam BF16
Q5. Bagaimana pengaturan perintahnya?
- Penulis asli: Menyediakan contoh berdasarkan PR #15157
~/build/llama.cpp/build-cuda/bin/llama-server \ -m $LLAMA_MODEL_DIR/gpt-oss-120b-mxfp4-00001-of-00003.gguf \ --n-cpu-moe 36 \ --n-gpu-layers 999 \ -c 0 -fa \ --jinja --reasoning-format none \ --host 0.0.0.0 --port 8502 --api-key "dummy"
6 komentar
Saya benar-benar sudah mencobanya, tapi sangat lambat.
Clock GPU hampir tidak terpakai,
memori khusus GPU 8GB dan memori fisik 64GB terpakai penuh,
dan 16 vCore hanya terpakai setengah.
Jadi ini sebaiknya dimaknai sekadar bisa jalan; ternyata bukan dalam bentuk yang memanfaatkan semua resource.
Satu kali kueri memakan waktu 6–8 menit.
Saya juga harus coba seperti ini.
Saya kira 32GB sudah cukup...
Untuk sementara, di lm studio M4 Max 64GB juga tidak bisa jalan T_T
Karena 65GB... sayang sekali T_T
Opini Hacker News
Tulisan terkait
Karena itu saya lebih sering memakai model lain seperti qwen, mistral, dan gemma
Orang lain menjalankan model 120B dengan VRAM yang lebih kecil, jadi mungkin penyebabnya adalah tidak adanya dukungan ROCm dan penggunaan Vulkan
Tetap saja, menyenangkan mendorong perangkat keras sampai batasnya
llama.cpp memungkinkan kita mengatur langsung jumlah layer komputasi GPU, sedangkan ollama menyesuaikannya secara otomatis
Akan bagus jika rasio RAM/VRAM bisa disesuaikan secara dinamis sesuai panjang sesi
Hanya saja function calling di llama.cpp masih rusak
Saya berencana meng-host chatbot AI di kamar dengan mini PC seharga $149, dan model Qwen3 4B tampaknya cukup bagus
Rencana terkait
Misalnya ini juga berjalan di Qwen 3, dan kita bisa menentukan regex sendiri untuk memindahkan layer tertentu ke perangkat tertentu