2 poin oleh GN⁺ 2024-05-09 | 1 komentar | Bagikan ke WhatsApp
  • Saat membuat respons panjang, decoding autoregresif (AR) yang menghasilkan token satu per satu menjadi bottleneck utama latensi, dan CLLM adalah pendekatan untuk menguranginya dengan decoding paralel per n token
  • Consistency Large Language Models (CLLMs) melatih fine-tuning LLM pralatih agar cepat memetakan status n-token arbitrer ke fixed point yang sama dengan hasil AR greedy
  • Jacobi decoding secara teoretis konvergen ke hasil yang sama dengan generasi AR greedy, tetapi pada LLM yang ada peningkatan kecepatannya terbatas, rata-rata hanya sekitar 1,05x, sehingga kurang praktis
  • Dalam eksperimen Spider, Human-Eval, GSM8k, dan MT-bench, CLLM menunjukkan peningkatan kecepatan generasi 2,4x–3,4x, dan dinilai setara atau lebih baik dibanding teknik inferensi cepat seperti Medusa2 dan Eagle
  • Saat inferensi, tidak diperlukan komponen model tambahan atau perubahan arsitektur model target, sehingga dapat mengejar peningkatan kecepatan sekaligus efisiensi memori

Bottleneck decoding yang ditargetkan CLLM

  • LLM digunakan di berbagai bidang seperti pemrograman, hukum, dan saran kesehatan, tetapi pada tahap inferensi biasanya menghasilkan token satu per satu dengan decoding autoregresif (AR)
  • Semakin panjang respons, latensi meningkat karena cara generasi per token, sehingga waktu tunggu yang dirasakan pengguna bertambah
  • Metode inferensi cepat yang ada sering kali membutuhkan modifikasi arsitektur, komponen tambahan, atau model draf untuk membuat beberapa token sekaligus

Cara kerja dan keterbatasan Jacobi decoding

  • Jacobi decoding adalah metode yang berangkat dari iterasi fixed point Jacobi dan Gauss-Seidel, dan dalam greedy decoding terbukti identik dengan generasi AR
  • Generasi sekuensial diubah menjadi sistem dengan n variabel dan n persamaan nonlinear, sehingga dapat dihitung secara paralel dengan iterasi Jacobi
  • Alur konkretnya sebagai berikut
    • Dari prompt input, tebak n token berikutnya secara acak
    • Masukkan prompt dan sekuens n-token ke LLM lalu perbarui secara iteratif
    • Ketika sekuens tidak lagi berubah, fixed point tercapai
    • Sekuens n-token akhir konvergen ke output yang akan dihasilkan AR decoding dalam strategi greedy
  • Jalur dari tebakan acak awal hingga hasil generasi AR akhir disebut trajektori Jacobi (Jacobi trajectory)
  • Jacobi decoding dasar pada LLM nyata hanya menunjukkan peningkatan kecepatan terbatas, rata-rata sekitar 1,05x dibanding AR decoding
    • LLM yang dilatih secara AR sulit memprediksi token berikutnya dengan benar jika token sebelumnya memiliki kesalahan
    • Sebagian besar iterasi Jacobi hanya mengoreksi satu token dalam sekuens n-token, sehingga trajektorinya menjadi panjang
  • Lookahead decoding dan speculative decoding berupaya mengurangi inefisiensi Jacobi decoding dan decoding AR yang ada, tetapi menimbulkan biaya memori tambahan saat inferensi

Tujuan pelatihan Consistency LLM

  • CLLM adalah cara mengadaptasi LLM pralatih agar dari titik arbitrer pada trajektori Jacobi, ia bergerak secara konsisten menuju fixed point
  • Tujuan ini mirip dengan tujuan consistency models, teknik akselerasi model difusi
  • Dengan menggunakan trajektori Jacobi yang dikumpulkan dari model target, model dilatih dengan loss yang mendorong konvergensi satu langkah selama iterasi Jacobi
  • Pelatihan untuk mengubah setiap model target menjadi CLLM terdiri dari dua bagian
    • Persiapan trajektori Jacobi
      • Untuk setiap prompt, Jacobi decoding dijalankan secara sekuensial pada setiap potongan n-token
      • Seluruh sekuens respons menjadi bentuk gabungan dari fixed point yang berurutan
      • Setiap sekuens yang dihasilkan dalam trajektori dihitung sebagai satu item data pelatihan
      • Pemotongan n-token digunakan untuk menghindari perlambatan akibat mengevaluasi seluruh input panjang pada respons panjang
    • Optimisasi bersama consistency loss dan AR loss
      • Consistency loss mendorong prediksi beberapa token sekaligus
      • AR loss membantu mempertahankan kualitas generasi dengan mencegah CLLM menyimpang dari distribusi LLM target

Komposisi fungsi loss

  • LLM target dinotasikan sebagai p, dan CLLM sebagai ; diinisialisasi dengan parameter p
  • Global consistency (GC) loss mendorong CLLM untuk mengeluarkan fixed point y* ketika status arbitrer y dari trajektori Jacobi diberikan sebagai input
  • Local consistency (LC) loss menyelaraskan agar status bertetangga y(j) dan y(j+1) pada trajektori Jacobi menghasilkan output yang sama
  • Jarak antar-distribusi D(·||·) mengikuti pilihan yang dibahas dalam metode GKD, dan pada eksperimen ini terutama menggunakan forward KL
  • AR loss menerapkan loss autoregresif tradisional berdasarkan hasil generasi l dari LLM target p, untuk mencegah penyimpangan dari distribusi LLM target
  • Total loss pelatihan terdiri dari consistency loss dan AR loss berbobot w

Pengaturan dan hasil eksperimen

  • Eksperimen mencakup tiga tugas domain khusus dan satu benchmark dialog domain terbuka
    • Spider: text-to-SQL
    • Human-Eval: penyelesaian kode Python
    • GSM8k: matematika
    • MT-bench: dialog domain terbuka
  • Bergantung pada tugas, model target yang digunakan mencakup fine-tuned coder LLM, Deepseek-coder-7B-instruct, LLaMA-2-7B, dan ABEL-7B-001
  • Pelatihan dan evaluasi semuanya dilakukan di server NVIDIA A100 40GB
  • Pada domain khusus, CLLM menunjukkan peningkatan kecepatan terbesar dibanding baseline seperti model target asli, Medusa2, dan speculative decoding
  • Pada MT-bench, CLLM yang dilatih dari LLaMA2-7B dengan dataset ShareGPT mencapai peningkatan kecepatan yang mirip dengan Medusa2 ketika digabungkan dengan lookahead decoding
    • Skor MT-bench juga berada pada tingkat yang dapat dibandingkan
    • CLLM tidak memerlukan modifikasi arsitektur asli model target
    • Karena tidak ada komponen tambahan, efisiensi memorinya tinggi

Biaya pelatihan

  • Biaya fine-tuning CLLM disajikan pada tingkat menengah
  • LLaMA-7B mencapai peningkatan kecepatan 3,4x pada dataset Spider hanya dengan memproses sekitar 1 juta token
  • Untuk dataset besar seperti CodeSearchNet-Python, hanya 10% dataset digunakan untuk pembuatan trajektori Jacobi dan menghasilkan peningkatan kecepatan sekitar 2,5x
  • Jumlah token total diestimasi dengan rumus berikut
    • Jumlah trajektori rata-rata per prompt × panjang trajektori rata-rata × jumlah prompt
  • Estimasi biaya pelatihan per dataset adalah sebagai berikut
    • Spider: 2 juta token, < 0,01% dari biaya pralatih
    • CodeSearchNet-Python: 100 juta token, ~0,1% dari biaya pralatih
    • GSM8K: 10 juta token, ~0,01% dari biaya pralatih
    • ShareGPT: 200 juta token, ~0,2% dari biaya pralatih

Fast forwarding dan token stasioner

  • LLM target umumnya hanya menghasilkan satu token yang benar dalam satu iterasi Jacobi
  • Pada CLLM, muncul fenomena fast forwarding, yaitu beberapa token berurutan diprediksi dengan benar dalam satu iterasi Jacobi
  • Pada LLM target, token yang sebelumnya sudah dihasilkan dengan benar kadang berubah menjadi token yang salah pada iterasi berikutnya
  • CLLM menunjukkan kemampuan memprediksi token yang benar lebih awal meski token sebelumnya salah, dan mempertahankan token tersebut pada iterasi berikutnya
    • Token seperti ini disebut token stasioner (stationary tokens)
  • Fast forwarding dan token stasioner membuat Jacobi decoding pada CLLM konvergen lebih cepat, sehingga berkontribusi pada peningkatan kecepatan generasi

Pembelajaran pola linguistik

  • CLLM teramati memperoleh konsep linguistik yang disebut kolokasi (collocations) melalui pelatihan
  • Kolokasi berarti rangkaian kata atau istilah yang muncul bersama lebih sering daripada kebetulan acak
  • Contoh kolokasi ada baik dalam bahasa alami maupun kode
    • Bahasa alami: talk to, remind … of …
    • Struktur verba+nomina: make a decision, catch a cold
    • Struktur tata bahasa per domain: SELECT … FROM …, if … else
  • Tujuan consistency generation mendorong CLLM untuk menyimpulkan struktur seperti ini dari titik mana pun pada trajektori Jacobi, sehingga memprediksi beberapa kata secara bersamaan untuk mengurangi langkah iterasi

Materi dan kode

1 komentar

 
GN⁺ 2024-05-09
Pendapat di Hacker News
  • Ini mirip dengan pengalaman saya saat mengikuti kelas “menggambar bebas” (tanpa kuliah)
    Sejak kecil saya sering dibilang pandai menggambar, tetapi sebenarnya yang saya ingat adalah saya mengulang gambar-gambar detail serupa yang pernah saya buat, atau menghabiskan banyak waktu untuk menggambarnya. Menurut saya, dengan waktu dan kesabaran, siapa pun bisa menggambar sebuah adegan dengan cukup meyakinkan
    Di kelas itu tidak ada aturan atau kuliah, dan masing-masing membawa bahan yang diinginkan. Ada yang membawa tinta, ada yang membawa pensil, saya membawa arang, dan satu-satunya yang ditentukan hanyalah waktu antar-pose model. Beberapa pose pertama sangat singkat, sekitar 1 menit, lalu makin lama hingga pose 5 menit, dan kapan saja kami boleh merobek gambar lalu menggambar ulang pose yang sama
    Pemanasan singkat itu ternyata memaksa kami mendapatkan proporsi dan kontur dengan benar pada percobaan pertama, dan bertentangan dengan anggapan umum bahwa terburu-buru akan merusak hasil, saat mempelajari atau mengasah keterampilan, rasa tergesa-gesa tampaknya bekerja sebagai faktor stres yang mendorong perhatian dan pembelajaran
    Sebelum kelas itu pun saya mungkin bisa menggambar dengan kualitas serupa, tetapi saya yakin akan butuh waktu 5–10 kali lebih lama. Cara yang memaksa kami tidak berputar-putar dan membuat kami merasakan harga dari kesalahan yang tergesa-gesa itu efektif
    Namun saya agak menyayangkan teknik ini disebut Consistency. Nama itu cocok untuk peningkatan performa, tetapi rasanya kurang pas untuk peningkatan kecepatan inferensi, dan saya paham maksudnya sebagai “konsistensi dengan hasil yang pada akhirnya akan keluar jika dibuat satu token demi satu token”. Saya lebih ingin menyebutnya Proficiency LLM, yaitu mengharapkan keluaran yang sama, tetapi tanpa hambatan yang membuatnya meraba-raba untuk sampai pada kesimpulan yang sama

    • Sebagai penulis CLLM, terima kasih sudah berbagi pengalaman dan wawasan. Proses mengasah kemampuan menggambar itu tampak mirip dengan proses pelatihan CLLM, hanya saja faktor stres dalam pelatihan CLLM saat ini bukan berbentuk sesuatu yang makin lama makin ketat
      Dalam menggambar, kita bisa menetapkan waktu yang diizinkan untuk setiap percobaan dan membuatnya makin singkat. Dalam CLLM, sepertinya kita bisa membuat proses pelatihan lebih sulit dengan memetakan keadaan yang makin jauh di lintasan Jacobi ke keadaan akhir
      Istilah “consistency” diambil dari kemiripan antara consistency model dalam generasi gambar berbasis difusi dan consistency LLM, karena proses pelatihannya memang mirip
    • Saya pernah mengalami hal menarik di sebuah kelas praktikum invertebrata pada suatu musim panas
      Para mahasiswa masuk ke laboratorium, menerima spesimen, dan instruksinya hanya “gambar ini dalam 30 menit. Mulai”
      Tidak ada ucapan seperti “beginilah cara menggambar” atau “lakukan ini, jangan lakukan itu”; pada dasarnya rasanya seperti “tidak peduli kamu cemas atau merasa tidak bisa menggambar. Jangan beralasan, gambar saja. Sekarang”
      Kami semua menggambar, dan sepanjang musim panas, makin banyak hewan datang dan latihan yang sama diulang, sehingga kemampuan kami semua meningkat luar biasa
      Yang diajarkan kelas itu adalah bahwa siapa pun, benar-benar siapa pun, bisa menggambar. Sikap kolektif berubah dari “entah apakah ini mungkin” menjadi “tentu saja bisa. Mudah, biasa, dan bukan hal besar”
      Ini pendekatan yang sangat layak direkomendasikan, dan merupakan salah satu kelas paling membebaskan dan mengejutkan yang pernah saya ambil di universitas
    • Sistem biasanya menjadi lebih efisien saat berada di bawah stres. Pada saat yang sama, sistem juga bisa terdorong ke optimum lokal, jadi segala hal punya sisi plus dan minus
  • Para penulis mengatakan Jacobi decoding sama dengan greedy autoregressive decoding, tetapi dalam praktiknya bukankah kita sering ingin membuat temperatur sampling lebih besar dari 0 untuk menghindari pengulangan dan jawaban yang terlalu umum?
    Saya sama sekali tidak mengenal strategi decoding ini, jadi mungkin saja saya melewatkan cara sederhana untuk mencerminkan hal itu

    • Pertanyaan bagus. Kami sedang aktif berupaya mendukung strategi sampling lain selain greedy sampling
      Dalam konteks pelatihan CLLM, alih-alih memetakan titik tetap statis yang diperoleh dengan Jacobi decoding sebagai target pelatihan, kami menyebutnya titik tetap dinamis. Pantau repositori GitHub untuk perkembangan terbaru
    • Saya setuju. Mudah untuk memeriksa apakah suatu token adalah pilihan dengan nilai maksimum, tetapi tampaknya sulit memeriksa apakah suatu token muncul dengan probabilitas yang diinginkan
      Tahap fine-tuning yang melatih lintasan agar mendekati penyelesaian n-token dengan statistik yang diinginkan mungkin masih memungkinkan, tetapi saya tidak terlalu tahu bagaimana mengganti tahap pemeriksaan titik tetap. Mungkin caranya seperti “memeriksa apakah berada di atas ambang tetap ini untuk likelihood”
  • Ini terasa seperti optimisasi yang cukup berisiko untuk dilakukan sebelum benar-benar memahami apa yang terjadi di dalam LLM. Misalnya, pihak yang percaya pada interpretasi geometris mungkin punya sesuatu untuk dikatakan, dan jika memakai token “pengisi”, ini juga bisa tampak merugikan
    Selain itu, asumsi bahwa “kita membuat kalimat lengkap di dalam pikiran lalu mengucapkannya kata demi kata” hanyalah asumsi, bukan fakta universal, dan tampaknya terlalu menyederhanakan aktivitas yang terjadi dalam pikiran kita. Apakah kita benar-benar punya rencana lengkap sebelum berbicara atau mengetik? Sebagai penganut Buddha, saya melihat itu lebih dekat ke ilusi. Lebih jauh lagi, bagaimana dengan pikiran yang simultan? Apakah kita berpikir secara linear pada tingkat kalimat?
    Bagaimanapun, matematikanya cukup keren

    • Optimisasi ini tidak memengaruhi hasil LLM, dan dijamin menghasilkan hasil yang ekuivalen dengan decoding langsung
      Jangan perlakukan LLM sebagai sesuatu yang magis dan mirip dengan pikiran kita. Ini hanyalah program lain yang menghasilkan kalimat yang masuk akal
    • Asumsi itu mungkin berguna dalam konteks ini, tetapi tampaknya cukup jelas bahwa itu tidak benar
      Jika diminta menjelaskan peristiwa masa lalu yang kompleks dari beberapa sisi, orang-orang dengan cepat menyisipkan potongan, tambahan, dan cabang samping di tengah kalimat untuk mencakup keseluruhan peristiwa. Saya rasa saya belum pernah melihat hipotesis granularitas tingkat kalimat dalam konteks ilmiah yang serius
    • Saya tidak bisa mengatakan ini berlaku untuk semua orang, tetapi setidaknya saya tidak menyusun kalimat lengkap di kepala sebelum berbicara
      Kadang-kadang di tengah kalimat saya terjebak dalam jalan buntu gramatikal dan harus menutup pikiran dengan kata atau frasa yang canggung, atau berhenti saja lalu mengucapkannya ulang dari awal
    • Meski kata dapat dipecah menjadi unit-unit lebih kecil yang bermakna dalam banyak bahasa, kita tampaknya tidak membuat kata secara berurutan dari komponen-komponen di bawahnya
      Tidak tampak ada alasan jelas mengapa fenomena ini tiba-tiba runtuh pada tingkat kalimat
    • Saya penasaran apa yang dimaksud dengan interpretasi geometris
  • Mengejutkan bahwa ini tidak mendapat perhatian lebih besar. Ini terlihat memberi manfaat yang jelas untuk performa inferensi
    Biaya fine-tuning ini masuk akal, sekitar 0,01% dari biaya pretraining awal. Peningkatan performanya juga terlihat cukup konsisten

    • Ini tampak seperti hasil yang sangat besar untuk performa LLM
      Saya tidak begitu tahu makalah lain yang mengusulkan peningkatan performa inferensi LLM sebesar ini. Pernah ada sebelumnya?
      Apalagi dengan syarat setidaknya kualitas output tetap terjaga, bukan hanya latensi kueri tetapi juga throughput keseluruhan meningkat, tidak membutuhkan komputasi tambahan, implementasinya relatif praktis, dan tidak menambahkan kompleksitas besar
      Karena ini dibangun di atas pekerjaan yang sudah dilakukan pada decoding paralel/Jacobi, insight-nya sendiri mungkin bisa dianggap inkremental. Hasil-hasil sebelumnya juga diperlukan dan penting, tetapi hasil ini mungkin yang berhasil mengekstrak nilai dunia nyata dari kemungkinan decoding paralel
    • Peningkatan inferensi yang serupa atau lebih besar sudah bisa didapat dengan speculative decoding, yang sudah banyak digunakan
      Jadi pekerjaan ini benar-benar menarik, dan setahu saya sebelumnya juga pernah dicoba dengan keberhasilan yang lebih rendah, tetapi seberapa besar dampak nyatanya masih belum jelas
    • Terima kasih sudah tertarik pada pekerjaan kami. Bahkan dengan melatih hanya sebagian dataset menggunakan consistency loss + AR loss, kami memperoleh peningkatan kecepatan yang signifikan, dan biayanya sekitar 0,01% dari pretraining
      Jika dilatih dengan lebih banyak data, kecepatannya meningkat lagi. Itu karena model dapat belajar dari kolokasi dan frasa yang lebih sering muncul
      Untuk detailnya, lihat makalahnya; di sana juga bisa dilihat bahwa peningkatan kecepatan mulai jenuh ketika ukuran data pelatihan makin besar
  • Awalnya saya mengira ini makalah sejenis Medusa yang memakai unembed head tambahan untuk menebak token berikutnya, tetapi ternyata sama sekali bukan
    Benar-benar hebat. Tidak memakai parameter tambahan, hanya menambahkan loss pelatihan bantu

    • Satu-satunya kesamaan Medusa dan CLLM adalah keduanya melatih/mengadaptasi LLM untuk inferensi cepat
      Teknik pelatihan dan teknik decoding-nya benar-benar berbeda, dan seperti yang disebutkan, CLLM tidak memerlukan parameter tambahan atau pengaturan attention mask untuk verifikasi berbasis pohon
  • Sepertinya kita akan segera menyadari bahwa model tidak selalu perlu dilatih
    Yang dibutuhkan adalah pengindeksan dan sampling yang baik
    Pada dasarnya, di level tertentu semua LLM bisa dilihat seperti database dari dataset, dengan antarmuka bahasa alami yang bagus di atasnya
    Keduanya hanyalah cara berbeda untuk menjelajahi data yang tersimpan

    • LLM dapat dengan mudah menciptakan data yang tidak ada di dataset pelatihannya
      LLM tidak menjelajahi data yang tersimpan. LLM bukan database dari data pelatihan
    • Tapi pengindeksan juga merupakan pelatihan. Hanya saja tidak memakai gradient descent end-to-end
    • Karena model berukuran beberapa orde magnitudo lebih kecil daripada salinan terkompresi data pelatihannya, model tidak mungkin setara dengan database itu
    • Kalau begitu, Anda mungkin suka makalah Infinigram. Baru-baru ini dibahas
      https://news.ycombinator.com/item?id=40266791
  • Apakah ada tempat bagi orang yang tidak terlalu paham seperti saya untuk “bertanya kepada pakar AI”?
    Misalnya, saya ingin bertanya mengapa LLM tidak merespons dengan cara deterministik yang sama meskipun menerima prompt yang sama
    Saya ingin mempelajari ini, dan mungkin saya harus mengikuti video seperti “membuat LLM dalam 1 jam” di YouTube

    • Di dalam perangkat lunaknya secara harfiah ada generator angka acak yang memilih salah satu dari kandidat token berikutnya berbobot yang dikeluarkan model
      Proses pemilihan bisa memiliki beberapa kenop untuk memanipulasi respons. Jika ingin membuatnya deterministik dan Anda punya akses langsung ke perangkat lunaknya, tergantung perangkat lunak yang digunakan, mengatur top-k = 1 atau temperature = 0.0 akan membuatnya deterministik
      Biasanya pengaturan default tidak deterministik, karena jika dibuat sepenuhnya deterministik, kualitas hasilnya cenderung kurang bagus
    • Untuk jawabannya, lihat video 3blue1brown
      Model LLM mengeluarkan vektor probabilitas untuk token, dan pengguna LLM memilih token dari daftar yang berpeluang tinggi menggunakan angka acak
    • Karena LLM pada dasarnya adalah matriks probabilitas
      Ketika Anda memasukkan prompt, ia menghitung probabilitas kata berikutnya, lalu mengulangi proses itu hingga akhirnya membentuk kalimat. Probabilitas yang dipelajari didasarkan pada data pelatihan
      Karena model probabilitas dasar semacam ini, ia tidak 100% deterministik. Selain itu, model seperti ChatGPT sengaja memiliki parameter temperature untuk menambahkan keacakan ke seluruh proses
      Jika ingin membaca lebih lanjut, jawaban ini didasarkan pada makalah berikut: The Matrix: A Bayesian learning model for LLMs, https://arxiv.org/abs/2402.03175
    • Di sebagian besar sistem, ini bisa dikendalikan dengan parameter pengaturan inferensi yang disebut temperature
      Namun jika temperature diatur serendah mungkin, kualitas jawaban cenderung menjadi sangat rendah. Sistem tidak bisa keluar dari suatu optimum lokal dan terus mengulang. Jawaban seperti itu bisa saja “deterministik”, tetapi tidak bagus
    • Tulisan ini adalah titik awal yang baik, cukup sistematis dalam menjelaskan tetapi tetap tidak kehilangan gambaran besarnya
      https://writings.stephenwolfram.com/2023/02/what-is-chatgpt-...
  • Tidak ada makan siang gratis, jadi menurut saya di sini juga ada semacam kehilangan jalur
    Misalnya, sebagian trajektori Jacobi secara definisi mengecualikan jalur dengan temperature yang lebih tinggi. Dari sudut pandang pencarian data, ini mungkin justru positif, tetapi jika ingin memaksimalkan kreativitas, bisa jadi negatif

    • Ada algoritma yang lebih baik dan ada yang lebih buruk
      Saya tidak yakin “tidak ada makan siang gratis” selalu berlaku secara sangat bermakna. Sebagian hal tidak berada di atas Pareto frontier
  • Saya ingin tahu penjelasan lebih rinci tentang bagian “metode speculative decoding menimbulkan biaya memori tambahan saat inferensi”
    Dalam speculative decoding, model yang lebih kecil menghasilkan “cabang” yang cepat tetapi bisa tidak akurat, lalu cabang-cabang ini diverifikasi oleh model besar. Namun speculative decoding hanya membutuhkan memori yang setara dengan satu token, dan token dari cabang lain cukup di-mask selama inferensi. Jika ukuran konteks 1000 dan ada sekitar 30 cabang masing-masing 5 token, overhead memorinya 3%, bisa diabaikan. Jika ukuran konteks jauh lebih kecil dibanding jumlah cabang, saya ragu pengguna LLM generatif dengan jendela konteks hanya 50 token akan peduli pada kecepatan generasi
    Selain itu, teknik speculative decoding tidak terbatas pada greedy sampling. Ia harus berperilaku persis sama seperti model asli dan melakukan sampling dengan probabilitas ekspektasi. Sebagian besar literatur tentang speculative decoding sudah melaporkan peningkatan kecepatan 2,6~3,5x. Artikel blog ini melaporkan kecepatan generasi 2,4~3,4x, jadi saya tidak yakin apakah ini upgrade yang begitu besar
    Di atas saya menyebut speculative decoding, dan teknik yang dibandingkan penulis tampaknya Medusa2 dan Eagle, tetapi masalah intinya tetap sama. Apa pun metode yang dipakai untuk memprediksi token lebih dulu, ada titik tertentu ketika token sebelumnya mutlak diperlukan sebelum memprediksi token berikutnya. Ini bukan masalah model atau teknik, melainkan soal apa yang mungkin secara matematis. Jika distribusi probabilitas token kelima berikutnya sangat bergantung pada empat token sebelumnya, bagaimana mungkin memprediksi 5 token sekaligus? Sama saja, baik speculative decoding, Jacobi decoding, maupun multi-token parallel decoding
    Jika metode ini hanya mendukung greedy sampling, saya mempertanyakan apa keunggulannya. Terlebih jika mempertimbangkan bahwa teknik-teknik lain sudah mencapai peningkatan kecepatan yang diharapkan. Membandingkan peningkatan kecepatan greedy sampling dengan peningkatan kecepatan random sampling itu seperti membandingkan apel dan jeruk, dan saya ragu peningkatan kecepatan yang sama akan tetap ada setelah metode ini diubah agar sesuai untuk random sampling, karena masalah inti yang disebutkan di atas

    • Bagian “token sebelumnya mutlak diperlukan sebelum memprediksi token berikutnya” mungkin justru kontribusi utama makalah ini
      Melalui consistency training, mereka mungkin menunjukkan bahwa LLM dapat memprediksi n token berikutnya meskipun ada tebakan yang salah pada token sebelumnya
      Di sisi lain, secara matematis memang benar bahwa p(x_t|x_1,...,x_t-1) bergantung pada semuanya dari x_1 sampai x_t-1, tetapi dalam praktiknya prediksi x_t mungkin hanya membutuhkan x_1 sampai x_t-2, sementara attention terhadap x_t-1 bisa saja kecil. Karena itu x_t dapat diprediksi dengan x_1 sampai x_t-2 dan x_t-1 yang tidak akurat
    • Speculative decoding harus memuat model yang lebih kecil ke memori dan menjalankan inferensi dengan model itu
  • Ini menarik. Idenya mungkin sudah terpikir oleh banyak orang, tetapi tulisan dan presentasinya tersusun dengan baik

    • Benar. Saya dan teman sekamar saya pernah membicarakan hal seperti ini setahun lalu. Hal serupa juga bisa dilakukan untuk steering LLM