Lossless, Tapi Tidak Gratis: Kapan Speculative Decoding Bekerja

Speculative Decoding adalah topik hangat dalam inferensi LLM.

Perusahaan seperti DSpark mengklaim peningkatan kecepatan sebesar 60% hingga 85%. Google juga menerbitkan penelitian tentang metode ini.

Konsepnya sederhana: Sebuah model draf (draft model) kecil menulis token. Sebuah model target yang besar memverifikasinya dalam satu kali jalan. Hal ini membuat proses generasi menjadi lebih cepat.

Namun sebagai seorang insinyur, Anda harus mengajukan dua pertanyaan:

  • Apakah ini meningkatkan halusinasi?
  • Apakah model tambahan tersebut membuang-buang komputasi?

Mari kita lihat faktanya.

Pertama, kualitasnya bersifat lossless. Model target memverifikasi setiap token. Jika model draf melakukan kesalahan pada token ke-3, model target akan menolaknya dan melakukan regenerasi dari titik tersebut. Hasilnya secara matematis identik dengan model target saja. Ini tidak memperkuat halusinasi.

Kedua, biayanya nyata. Model kecil membutuhkan biaya jauh lebih sedikit untuk dijalankan daripada model besar. Model 7B mungkin hanya memakan biaya 1/10 dari model 70B.

Speculative Decoding adalah sebuah pertaruhan.

  • Jika berhasil sepenuhnya (full hit), Anda menghemat komputasi secara masif.
  • Jika gagal sepenuhnya (full miss), Anda rugi. Anda menjalankan model draf ditambah langkah-langkah tambahan pada model target. Ini lebih lambat daripada inferensi standar.

Untuk menang, Anda harus mengikuti aturan ini: Rata-rata jumlah token yang diterima harus lebih besar dari 1 ditambah overhead dari model draf.

Jika model draf Anda buruk dalam tugas tertentu, tingkat penerimaan (acceptance rate) Anda akan turun. Jika turun terlalu rendah, Speculative Decoding justru membuat sistem Anda lebih lambat.

Cara memutuskan apakah Anda harus menggunakannya:

  1. Ukur tingkat penerimaan (acceptance rate) Anda. Jangan percaya pada tolok ukur (benchmark) generik. Gunakan data dan tugas Anda sendiri.
  2. Periksa jenis tugas Anda. Gunakan untuk tugas yang dapat diprediksi seperti pelengkapan kode (code completion). Hindari untuk tugas yang tidak dapat diprediksi seperti penulisan kreatif.
  3. Pantau latensi p99 Anda. Kegagalan total (full miss) menyebabkan lonjakan latensi.

Optimasi terbaik bukanlah yang selalu menang. Melainkan yang Anda tahu kapan harus mematikannya.

Gunakan saat tingkat keberhasilan (hit rate) tinggi. Berhenti menggunakannya saat tingkat keberhasilan tersebut anjlok.

Sumber: https://dev.to/zxpmail/lossless-but-not-free-the-lossless-but-not-free-when-speculative-decoding-actually-pays-off-1c2g

Komunitas pembelajaran opsional: https://t.me/GyaanSetuAi