- Beberapa model AI seperti DeepSeek-V3 murah dan cepat saat disajikan dalam skala besar, tetapi lambat dan mahal saat dijalankan secara lokal
- Alasannya terletak pada trade-off mendasar antara throughput (kapasitas pemrosesan) dan latency (latensi) yang berkaitan dengan efisiensi pemanfaatan GPU
- Jika ukuran batch diperbesar, GPU dapat bekerja lebih efisien, tetapi pengguna harus menunggu sampai token terkumpul sehingga terjadi peningkatan latensi
- Model dengan arsitektur Mixture-of-Experts dan pipeline yang dalam membutuhkan batch besar dan latensi tinggi
- Dalam lingkungan pengguna tunggal lokal, sulit membentuk batch yang cukup besar, sehingga muncul masalah penurunan kinerja dan peningkatan biaya
- OpenAI, Anthropic, dan lainnya mewujudkan respons cepat lewat efisiensi arsitektur itu sendiri, strategi batching tingkat lanjut, atau dengan mengerahkan GPU secara berlebihan
Inferensi batch dan efisiensi GPU
- GPU adalah perangkat keras yang dioptimalkan untuk perkalian matriks skala besar (GEMM)
- Saat token dari banyak pengguna digabung sekaligus dan dijalankan sebagai matriks besar dalam batch, overhead round-trip yang rendah dan efisiensi memori membuat throughput meningkat tajam
- Server inferensi menumpuk token dari banyak permintaan di antrean, lalu memilih batch dengan ukuran yang sesuai untuk menjalankan operasi GEMM skala besar
- Dalam proses ini, server harus memilih trade-off antara ukuran batch (throughput meningkat) dan waktu tunggu (latency meningkat)
Mengapa beberapa model dioptimalkan untuk batch besar
Mixture of Experts (MoE) dan batch
- Arsitektur MoE (DeepSeek-V3, perkiraan GPT-4) adalah penyebab utama rendahnya efisiensi GPU
- Karena ratusan blok “expert” masing-masing memerlukan perkalian matriks yang terpisah, pada batch kecil tiap expert hanya punya sedikit pekerjaan sehingga efisiensinya menurun
- Semua expert baru bisa dimanfaatkan secara memadai jika ada banyak permintaan simultan, sehingga pada level layanan batch besar menjadi hal yang esensial
- Pada waktu tunggu singkat (window 5ms) expert sering menganggur, sedangkan pada waktu tunggu panjang (window 200ms) efisiensi tinggi bisa dimaksimalkan
Masalah batch pada model pipeline yang dalam
- Transformer besar dengan ratusan lapisan dijalankan dengan membagi layer per GPU (pipelining)
- Jika jumlah token dalam satu batch lebih sedikit daripada jumlah langkah pipeline, muncul fenomena pipeline bubble, yang berujung pada penurunan throughput
- Untuk mencegahnya, batch besar (waktu tunggu lebih lama) menjadi keharusan, dan akibatnya waktu respons model memanjang
Mengapa antrean tidak selalu bisa dipenuhi
- Secara teori, jika antrean selalu terisi oleh trafik simultan yang besar, bubble tampaknya bisa dihindari
- Namun dalam praktiknya, karena ukuran matriks (panjang) pada tahap attention Transformer harus sama agar bisa dibatch, sulit membuat satu antrean tunggal bekerja sempurna
- Selain itu, jika tahap FFN dan attention dipisahkan, akan muncul masalah lonjakan overhead memori serta inefisiensi perpindahan data
Ringkasan dan kesimpulan
- Pemrosesan batch besar penting untuk menurunkan biaya GPU dan meningkatkan throughput, tetapi pengguna harus menghadapi waktu tunggu yang lebih panjang
- Model dengan Mixture-of-Experts dan arsitektur pipeline besar pada dasarnya dioptimalkan untuk lingkungan batching berefisiensi tinggi yang berbasis waktu tunggu
- Dalam lingkungan dengan trafik rendah seperti lokal, konfigurasi batch besar yang optimal tidak bisa dibentuk, sehingga efisiensi GPU turun drastis dan biaya eksekusi meningkat
- OpenAI, Anthropic, dan lainnya menunjukkan respons yang cepat karena
- (1) Bisa jadi mereka memakai arsitektur yang lebih efisien dan bukan MoE
- (2) Menerapkan optimasi batch/pipeline serta trik inferensi tingkat lanjut
- (3) Bisa jadi mereka mengerahkan lebih banyak GPU daripada yang diperlukan untuk “membeli” kecepatan
Tambahan: perbedaan antara batch prefill dan batch isi utama
- Transformer juga dapat menjalankan prefill (input panjang) dari satu prompt pengguna secara batch sehingga inferensi awal bisa berlangsung cepat
- Namun batch yang dibahas dalam artikel ini adalah batching pada tahap pembuatan token utama dari banyak permintaan pengguna, tempat trade-off throughput-latency itu terjadi
- Batch prefill tidak berkaitan langsung dengan batching besar simultan yang disebutkan dalam artikel ini
Catatan tambahan
- Sistem inferensi nyata juga menggunakan metode continuous batching, yang langsung mengeksekusi saat batch sudah terisi
- Namun struktur dasar trade-off throughput-latency tetap berlaku sama
1 komentar
Komentar Hacker News
ktranformers) atau sistem dengan VRAM sangat besar. Struktur dengan 192GB VRAM + sisa memori biasa (DGX station, 2xRTX Pro 6000, dan sejenisnya) tampaknya bisa menjalankan DeepSeek 4bit dengan cukup cepat berkat kekuatan MoE. Jika prompt DeepSeek bukan dalam bahasa Mandarin, sebagian besar expert tidak akan aktif. Ini juga membuat pruning lebih mudah. Ke depan, arah sistem enthusiast tampaknya cocok dengan optimasi perangkat lunak semacam ini. Di Reddit juga ada contoh sistem 16x3090 (PCIe 3.0 x4) yang mencapai sekitar 7 token/detik di llama.cpp, dan bahkan satu 3090 saja secara teori bisa memindai seluruh VRAM 39 kali per detik, jadi tampaknya ada bottleneck performa lain