- Dengan memanfaatkan opsi
--cpu-moe di 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
- 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?
Belum ada komentar.