- Jika tujuan standar LLM, yaitu prediksi token berikutnya, diubah menjadi prediksi beberapa token masa depan secara bersamaan, performa generasi kode dan bahasa alami dapat ditingkatkan lebih jauh dengan data dan anggaran komputasi yang sama
- Strukturnya menggunakan beberapa output head di atas inti Transformer bersama, dan pada inferensi dasar hanya head prediksi token berikutnya yang dipakai sehingga tetap bekerja seperti generasi autoregresif biasa
- Pada model kode, model 13B parameter memecahkan 12% lebih banyak soal di HumanEval dan 17% lebih banyak di MBPP dibanding model prediksi token berikutnya yang sebanding, dan keuntungannya lebih jelas pada model besar
- Head tambahan dapat dimanfaatkan untuk self-speculative decoding, sehingga model prediksi 4 token menunjukkan peningkatan kecepatan inferensi hingga 3×, dan model prediksi 8-byte mencapai 6.4×
- Pada tugas sintetis, pendekatan ini unggul untuk induction heads dan penalaran algoritmik, serta berpotensi mengurangi perbedaan distribusi antara teacher forcing saat pelatihan dan distribusi autoregresif saat generasi
Pendekatan prediksi multi-token
- Pemodelan bahasa tradisional meminimalkan cross-entropy loss untuk satu token berikutnya di setiap posisi
- Prediksi multi-token memperluas tujuan pelatihan agar model memprediksi n token berikutnya sekaligus di setiap posisi
- Struktur model dibagi menjadi tiga bagian
- Inti Transformer bersama membentuk representasi laten dari konteks yang diamati
- n output head independen memprediksi tiap token masa depan secara paralel
- Shared unembedding matrix menghitung probabilitas token akhir
- Cara inferensi paling sederhana adalah prediksi autoregresif biasa yang hanya memakai head prediksi token berikutnya, sementara head lainnya bisa dibuang
- Output head tambahan juga bisa dipakai untuk self-speculative decoding seperti blockwise parallel decoding atau tree attention ala Medusa
Implementasi efisien memori
- Pada implementasi naif, logit dan gradient dari setiap head harus dimuat sekaligus ke memori sehingga penggunaan memori GPU membengkak
- Pada LLM modern, ukuran vocabulary V jauh lebih besar daripada dimensi representasi laten d, sehingga vektor logit menjadi bottleneck memori GPU
- Implementasi yang diusulkan menjalankan forward/backward tiap output head secara berurutan setelah forward pass inti bersama
- Logit dan gradient dari satu head dibebaskan sebelum lanjut ke head berikutnya
- Pada inti model hanya gradient terakumulasi yang dipertahankan
- Pendekatan ini menurunkan penggunaan memori GPU puncak dari O(nV + d) menjadi O(V + d) tanpa menambah biaya runtime
Hasil eksperimen pada model kode
- Eksperimen data nyata membandingkan model prediksi token berikutnya dan model prediksi n-token dengan jumlah parameter yang sama
- Jika n−1 layer ditambahkan ke head prediksi masa depan, maka n−1 layer dihapus dari inti bersama
- Enam ukuran model dari 300M hingga 13B dilatih dari nol dengan minimal 91B code tokens
- Pada evaluasi MBPP dan HumanEval, model kecil kadang lebih buruk daripada model dasar, tetapi prediksi multi-token unggul saat skala model membesar
- Model 13B menyelesaikan lebih banyak soal dibanding model prediksi token berikutnya yang sebanding
- Menyelesaikan 12% lebih banyak soal di HumanEval
- Menyelesaikan 17% lebih banyak soal di MBPP
- Dalam ablation pada model 7B yang dilatih dengan 200B code tokens, n=1, 2, 4, 6, 8 dibandingkan
- n=4 konsisten terbaik pada pass@1, pass@10, dan pass@100 untuk HumanEval dan MBPP
- Pada APPS/Intro, n=6 lebih unggul
- Ukuran window optimal dapat berubah tergantung distribusi data masukan
Kecepatan inferensi dan model byte-level
- Pada model prediksi 4-token 7B, greedy self-speculative decoding diterapkan dan kecepatan decoding diukur pada prompt uji kode dan bahasa alami yang tidak dipakai saat pelatihan
- Hasilnya menunjukkan peningkatan kecepatan 3.0× pada kode dan 2.7× pada teks
- Pada kode, rata-rata 2.5 token dari 3 usulan diterima
- Model prediksi 8-byte mencatat peningkatan kecepatan inferensi 6.4×
- Dalam eksperimen tokenisasi byte-level, transformer byte-level 7B dilatih dengan 314B byte, setara sekitar 116B token
- Model prediksi 8-byte menyelesaikan lebih banyak soal dibanding next-byte prediction
- Menyelesaikan 67% lebih banyak soal pada MBPP pass@1
- Menyelesaikan 20% lebih banyak soal pada HumanEval pass@1
- Multi-byte prediction dapat menjadi jalur untuk melatih model byte-level dengan lebih efisien
Banyak epoch, fine-tuning, dan hasil bahasa alami
- Bahkan setelah dilatih beberapa epoch pada data yang sama, prediksi multi-token tetap mempertahankan sebagian keunggulan atas prediksi token berikutnya
- MBPP pass@1: +2.4%
- HumanEval pass@100: +3.2%
- Metrik lainnya serupa
- Pada fine-tuning CodeContests, model 7B yang dipra-latih dengan prediksi 4-token lebih unggul di hampir semua pass@k dibanding model dasar next-token
- Fine-tuning langsung pada model prediksi 4-token dengan loss n′=4 juga tetap lebih baik daripada model dasar
- Hasil terbaik secara keseluruhan didapat saat head tambahan dihapus dan fine-tuning dilakukan dengan target next-token
- Untuk bahasa alami, model 7B dilatih dengan 200B tokens dan dievaluasi pada 6 benchmark NLP standar
- Model prediksi 2-token mirip dengan model dasar next-token
- Model prediksi 4-token sedikit menurun performanya
- Mungkin dibutuhkan ukuran model yang lebih besar
- Evaluasi generatif bahasa alami dibagi menjadi tugas ringkasan dan matematika
- Pada 8 benchmark summarization, model n=2 dan n=4 mengungguli model dasar next-token dalam ROUGE-L F1 baik saat dilatih dengan 200B maupun 500B tokens
- Pada evaluasi GSM8K 8-shot, n=2 unggul atas model dasar pada 200B tokens, tetapi polanya berbalik setelah 500B tokens, dan n=4 secara umum lebih buruk
Induction dan penalaran algoritmik pada tugas sintetis
- Induction adalah pola ketika setelah “AB” muncul dalam kalimat, lalu “A” muncul lagi kemudian, model memprediksi “B” setelahnya
- Model dengan 1M hingga 1B nonembedding parameters dilatih pada dataset children stories, lalu kemampuan induction diukur dengan test set yang berisi nama acak 2-token
- Pada model kecil di bawah 30M, 2-token prediction loss sangat meningkatkan pembentukan kemampuan induction
- Pada 100M ke atas, keuntungan ini menghilang
- Dalam tugas aritmetika polinomial, model dilatih dan dievaluasi pada ekspresi di F7[X]/(X5) yang mencakup unary negation, addition, multiplication, dan composition
- Prediksi multi-token meningkatkan akurasi di berbagai tingkat kesulitan tugas, dan juga sangat meningkatkan generalisasi out-of-domain meski nilai absolutnya tetap rendah
- Dampaknya lebih besar daripada sekadar menaikkan ukuran model dari 30M ke 100M, dibandingkan tetap memakai next-token prediction
Mengapa ini bisa bekerja
- Prediksi multi-token dapat mengurangi ketidakcocokan distribusi antara pelatihan dengan teacher forcing dan generasi autoregresif saat inferensi
- Prediksi token berikutnya bisa terlalu fokus pada prediksi jarak pendek dan mengabaikan dependensi jarak jauh
- Prediksi multi-token memberi bobot implisit lebih besar pada token yang sangat terkait dengan token-token setelahnya
- Ini bisa ditafsirkan sebagai penguatan choice point
- Generasi teks yang berguna dianggap sangat ditentukan oleh pemilihan keputusan yang benar pada choice point
- Dalam penguraian berbasis teori informasi, 2-token prediction muncul sebagai bentuk yang lebih menekankan pentingnya komponen mutual information antara X dan Y dibanding next-token prediction
Batasan dan biaya
- Tantangan yang tersisa mencakup cara memilih n secara otomatis dalam prediksi multi-token, memanfaatkan loss scale dan loss balancing, menyesuaikan ukuran vocabulary, serta mengembangkan auxiliary prediction loss yang bekerja di embedding space
- Seluruh pelatihan model dalam eksperimen ini menggunakan total sekitar 500K GPU hours
- Perangkat keras yang dipakai adalah A100-80GB dan H100
- Estimasi total emisi sekitar 50 tCO2eq, dan di-offset 100% melalui sustainability program Meta
- Tujuannya adalah meningkatkan efisiensi compute dan data pada model bahasa, tetapi rebound effects tetap perlu diwaspadai, dan manfaat sosial serta risiko LLM harus dipertimbangkan bersama
1 komentar
Komentar Hacker News
Terlalu banyak hal yang terjadi di bidang ini
Akan bagus kalau ada materi yang menjelaskan secara kronologis, seperti tur pabrik, kapan istilah seperti data, pra-pelatihan, pelatihan, inferensi, mixture of experts, RAG muncul dalam alur kerja yang sebenarnya
Kebanyakan orang tidak tahu di mana istilah-istilah itu masuk dalam gambaran besarnya, dan saat pertama kali melihat pra-pelatihan, saya kira itu proses pengolahan data sebelum pelatihan, padahal ternyata itu pelatihan lain lagi
Di bidang ini rasio sinyal terhadap noise sangat rendah, dan dokumentasi pemimpin industri seperti Langchain pun sering sudah usang atau saling bertentangan
Hal serupa juga terjadi saat hype blockchain, jadi tampaknya ini memang ciri khas kereta hype
Khususnya karena perkembangan terbaru seperti RAG bergerak terlalu cepat, jadi sepertinya akan sulit ada buku referensi yang tetap mutakhir untuk sementara waktu, sehingga susah tahu harus mulai dari mana
Meski begitu, dokumentasi alat level tinggi seperti LlamaIndex cukup layak sebagai titik awal karena menunjukkan di mana posisinya dalam gambaran keseluruhan, alih-alih mencoba menjelaskan konsepnya secara mendalam
YouTube, seperti biasa, penuh lautan non-ahli yang mencoba menarik klik dengan tren terbaru, jadi menurut saya kurang cocok sebagai titik awal
Tentu, itu berlaku untuk semua hal, tetapi daripada menambal semuanya, lebih baik berasumsi bahwa dalam waktu dekat akan muncul sesuatu yang jauh lebih baik daripada GPT-4, lalu merancang produk yang terdiferensiasi di atas asumsi itu
Bagi orang yang tahu speculative decoding, ini pada dasarnya adalah speculative decoding terhadap diri sendiri
Urutan label yang diprediksi tetap dimasukkan kembali ke jaringan secara autoregresif, lalu prediksi hanya dipertahankan sampai titik yang cocok
Jadi performanya tidak memburuk, hanya menjadi lebih cepat; di sini sampai 3x, yang tergolong biasa untuk speculative decoding
Ini bahkan bisa lebih baik berkat multi-task learning. Gagasan memprediksi target beberapa langkah ke depan sebagai auxiliary loss sudah ada cukup lama, dan ini pekerjaan yang bagus
Jika speculative decoding juga meningkatkan performa perencanaan, adopsinya akan jauh lebih mudah
Speculative decoding tidak menurunkan performa model dari sisi akurasi atau kualitas output
Secara matematis, distribusi yang dihasilkan sama dengan jika melakukan decoding autoregresif biasa, dan kalau ada perbedaan itu murni karena keacakan
Kalau yang dimaksud performa adalah kecepatan, speculative decoding memang bisa menurunkan kecepatan, tetapi untuk sebagian besar input dan pemilihan draft model yang tepat, seharusnya tidak begitu
Apakah LLM tidak mempertimbangkan distribusi probabilitas dari semua kemungkinan kombinasi token sampai panjang output tertentu dalam prediksi sekuens? Saya kira mereka memang sudah melakukannya
Kalau tidak, cukup mengejutkan bahwa sistemnya bisa bekerja sebaik sekarang
Misalnya, jika untuk sekuens 2 bit peluang dan probabilitasnya adalah 00: p=0.36, 01: p=0.04, 10: p=0.30, 11: p=0.30, maka sekuens 2 bit yang paling mungkin adalah 00
Tetapi jika hanya memprediksi satu token berikutnya, hasilnya jadi 0: p=0.40, 1: p=0.60, sehingga bit berikutnya tampak seperti 1, dan itu mengarah ke titik awal yang tidak optimal saat memprediksi bit setelahnya
Untuk sekuens panjang, kesalahan ini akan makin terlihat semakin distribusi probabilitas gabungan tidak bisa diuraikan dengan baik menjadi distribusi marginal
Setelah dipikir-pikir lagi, tampaknya bisa dibuat studi sederhana yang mengubah fungsi loss cross-entropy agar hanya mempertimbangkan token masa depan ke-n dalam data pelatihan teks, lalu memetakan hubungan antara performa LLM dan n
Jika kita berasumsi semua LLM saat ini adalah n=1, hipotesisnya adalah ledakan sumber daya yang dibutuhkan untuk memprediksi distribusi probabilitas gabungan dari 1 sampai n token berikutnya sebagian besar bisa dihindari
Ini karena memprediksi token ke-n secara langsung secara implisit membutuhkan model data yang lebih baik. Setidaknya itu berlaku untuk teks buatan manusia, meskipun belum tentu untuk semua jenis data
LLM dirancang untuk menyampel teks yang mengikuti distribusi pelatihan, bukan untuk memberi tahu kita teks “paling mungkin” yang akan menyusul, dan sebenarnya kita juga tidak menginginkan itu
Kalau begitu, keragaman output akan hilang
Dalam contoh itu, untuk aplikasi chat masuk akal jika 40% mengambil sampel 0 dan 60% mengambil sampel 1
Untuk penggunaan seperti menjawab pertanyaan, ketika kalimat yang paling mungkin itu penting, beam search membantu seperti yang disebut orang lain
Selain itu, perlu juga dipertimbangkan bahwa model bisa “melihat ke depan” dan menghitung token masa depan terlebih dahulu, lalu menggunakannya untuk memprediksi token saat ini
Faktanya, penelitian seperti [1] membahas hal ini
Terakhir, memprediksi satu token pada satu waktu bukan pendekatan yang salah, karena manusia juga berbicara seperti itu. Kita melakukan semacam “lookahead” ini di kepala sebelum berbicara
[1] https://arxiv.org/abs/2404.00859
Kalau tidak salah ingat, ada pola aneh pada keluaran LLM, misalnya karena “an” sering kali kurang mungkin daripada “a”, jadi nomina yang diawali huruf vokal muncul lebih jarang daripada yang diperkirakan
Artinya, jika model bahasa dilatih pada suatu distribusi lalu di-sample dengan temperature 1, hasilnya akan tepat sama dengan distribusi itu
Jika di-sample dengan suhu rendah atau secara greedy, tentu distribusinya akan berbeda
Ada berbagai strategi sampling optimisasi lokal seperti beam search, dan juga banyak pekerjaan sampling yang lebih global seperti speculative decoding
Apakah benar LLM saat ini memulai dari awal untuk setiap token output?
Jika ditanya “Apa yang membuat pisang berwarna kuning?” lalu menjawab “Bananas are yellow due to a pigment called bromelain.”, saat mengeluarkan “a” tampaknya konsep pigment dan bromelain di dalam jaringan saraf sudah agak aktif
Pada titik itu, model tidak bisa lagi berubah pikiran dan melanjutkan dengan jawaban seperti “an optical illusion...”, jadi tampaknya ia sudah merencanakan ke depan bahwa ia akan berbicara tentang pigmen bernama bromelain
Saat LLM mengeluarkan “a”, bisakah ia memanfaatkan pekerjaan yang sudah dilakukan itu untuk jawaban berikutnya? Bisakah keadaan jaringan saraf dipertahankan untuk jawaban selanjutnya?
Jika dilihat dari sudut lain, kita bisa meminta GPT melengkapi kalimat berikut
“Bananas are yellow due to a” dan “Bananas are yellow due to an”
Pada kasus pertama, ia bisa menjawab “Bananas are yellow due to a pigment called bromelain.”, dan pada kasus kedua “Bananas are yellow due to an organic compound called bromelain, which is a yellow pigment.”
Dalam kedua kasus, bagi GPT memilih “a” atau “an” mungkin tidak memengaruhi makna respons
Secara ekstrem, kita bahkan bisa menganggap LLM bergerak dengan heuristik bodoh bahwa token setelah “due to” adalah “a” 55% dan “an” 45%
Tentu kenyataannya jauh lebih rumit, tetapi perilaku ini tetap bisa dijelaskan hanya dengan heuristik semacam itu
Jika fakta terkait bromelain tidak dimasukkan ke data pra-pelatihan, LLM benar-benar bisa melengkapi otomatis dengan sesuatu seperti “an optical illusion”
GPT-3 cukup sering membuat kesalahan fakta seperti itu, tetapi setahu saya ia memahami aturan tata bahasa “a” dan “an”
Seperti yang dikatakan, saya rasa konsep itu tidak harus benar-benar diaktifkan lebih dulu, tetapi dalam makna implisit dan emergen, kemungkinan pra-aktivasi semacam itu tetap ada
Sampai batas tertentu, attention adalah mekanisme yang membuat perhitungan pada token sebelumnya berguna di kemudian hari
KV cache bisa dipandang sebagai representasi teks sejauh ini dan apa yang dipikirkan model tentangnya
Karena model bahasa dilatih pada seluruh sekuens sampai akhir, besar kemungkinan hal seperti ini memang terjadi
Prediksi multi-token secara eksplisit mendorong perilaku ini, tetapi hanya di dalam jendela kecil n token yang didefinisikan
Di sisi lain, ada juga banyak upaya untuk meningkatkan pemanfaatan komputasi pada model bahasa transformer, seperti early exit, depth mixing, dan arsitektur baru seperti SSM
Output LLM biasanya diambil secara acak dari beberapa token/kata berikutnya yang paling mungkin, tetapi model itu sendiri tidak tahu kata mana yang akan dipilih sampler
Mungkin ada semacam rencana konseptual tentang apa yang bisa datang setelah “a” atau kandidat lain, tetapi prediksi tingkat tinggi seperti itu dipertimbangkan ulang dari awal begitu “a” dihasilkan
Model bukan hanya bisa berubah pikiran setelah setiap kata dihasilkan, tetapi memang harus begitu
Karena itu, “rencana” seperti ini sangat fana, dan lebih mirip rapper freestyle yang berimprovisasi daripada seseorang yang berpikir mendalam lalu memilih jawaban dan ungkapan dengan cermat
Tulisan ini menarik: https://clementneo.com/posts/2023/02/11/we-found-an-neuron
Output sebagian besar LLM bersifat probabilistik
Inti LLM menerima token dan mengeluarkan kumpulan token berikutnya yang telah diperingkat beserta “tingkat keyakinan”-nya
Lalu biasanya ada tahap pemfilteran dan pencarian, di mana token-token berperingkat itu dimasukkan kembali ke LLM untuk memperoleh lebih banyak token berperingkat dan membentuk pohon probabilitas pendek
Misalnya, jika N token teratas dimasukkan kembali, masing-masing akan menghasilkan kumpulan baru berisi N token teratas
Setelah melihat pohon itu, bisa dilakukan pemfilteran dasar seperti memilih cabang dengan total keyakinan tertinggi, cabang dengan token berulang paling sedikit, atau cabang dengan token yang paling sedikit cocok dengan token input; biasanya kriteria seperti ini digabungkan, dan bahkan ditambah pemilihan acak yang dibobot berdasarkan total keyakinan
Karena itu, meskipun bobot LLM sepenuhnya tetap, memberi input yang sama beberapa kali tetap bisa menghasilkan output yang berbeda
Jadi untuk menjawab pertanyaan spesifiknya, model memang bisa “berubah pikiran”. Setiap token yang dihasilkan memberi filter output probabilistik kesempatan untuk memilih jalur baru di antara jalur keluaran yang mungkin
Ini mungkin pertanyaan yang sangat naif, tetapi jika kita mengasumsikan kita bisa membuat vektor yang mengenkode makna seluruh kalimat, kenapa kita tidak melatih LLM untuk memprediksi vektor kalimat itu alih-alih satu kata?
Melatih autoencoder untuk bahasa sebenarnya sangat mudah karena jumlah informasi dalam teks lebih kecil dibandingkan visual/video.
Bagian sulitnya adalah membuat model fokus pada bagian makna ketika semua sinyal berasal dari kecocokan tepat di ruang token.
Karena itu muncul ide arsitektur prediksi embedding bersama dari Yann LeCun.
Selain itu, tugas bantu memang memberi lebih banyak sinyal, tetapi selalu ada trade-off karena fokusnya bisa bergeser.
Dalam kasus kami, saat jumlah token yang diprediksi terlalu banyak, kami melihat penurunan performa.
Jadi, pendekatan prediksi laten perlu menjelaskan apa yang benar-benar berguna.
Masalahnya adalah setelah mendapatkan vektor yang merepresentasikan jawaban, Anda memerlukan sesuatu seperti model lain untuk mengubah jawaban itu kembali menjadi representasi kata.
Itu bisa berupa sesuatu seperti model difusi untuk teks.
Selain itu, fungsi yang harus didekati model difusi ini bukan fungsi injektif; paling bagus hanya surjektif, dan paling buruk bahkan mungkin bukan fungsi dalam arti matematis.
Alasannya, untuk satu embedding bisa ada banyak representasi teks yang mungkin, dan sebagian besar di antaranya mungkin tidak valid secara tata bahasa maupun makna.
Terakhir, embedding adalah representasi lossy dari suatu data, jadi inversnya akan kehilangan banyak nuansa dan konteks.
LLM menghindari masalah di atas dengan memprediksi token berikutnya, dan kini beberapa token berikutnya, sambil menjaga konsistensi diri terhadap kueri dan n token sebelumnya; fungsi yang mereka dekati pada umumnya harus mendekati surjektif.
Sekarang kira-kira AI bekerja dengan kata, jadi AI hanya bisa memakai kata yang sudah dikenalnya, tetapi dapat menyintesis kalimat baru dari kata-kata itu.
Jika AI bekerja pada unit kalimat, bukankah itu berarti hanya mengulang kalimat yang pernah dilihat? Jadi mungkin bisa menyintesis paragraf baru, tetapi tidak bisa membuat kalimat baru.
Dalam bahasa Inggris, saya tidak yakin kalimat adalah abstraksi yang berguna bagi AI. Bagi manusia pun itu nyaris hanya sedikit berguna.
Kalau melihat obrolan biasa, email, komentar YouTube, ada sangat banyak yang sebenarnya bukan kalimat atau bahkan tanpa tanda baca.
Saya tidak menganggap kalimat berkorespondensi dengan unit makna.
Sebuah kalimat bisa terdiri dari dua kata, atau setengah makalah akademik berbahasa Inggris, bisa melintasi enam ide, atau hanya memuat satu.
Tempat berakhirnya kalimat biasanya lebih ditentukan oleh gaya penulis daripada makna.
Saat kalimat dipecah menjadi token, setiap token mendapat representasi vektor.
Jika naik ke level kalimat, kamus untuk semua token akan menjadi tak terbatas.
Mungkin itu bisa dilakukan dengan model yang lebih cepat, tetapi kualitas outputnya tampaknya akan turun.
Saya belum membaca makalahnya dengan sangat rinci, tetapi ada komentar editorial kecil.
Lampiran L.2 memuaskan, tetapi argumen yang dipadatkan di 5.2 terasa agak longgar.
Khususnya, tidak jelas bagi saya bagian yang mengatakan H(Y | X) “dibuang” dari H(X) + H(Y) = H(X | Y) + 2I(X ; Y) + H(Y | X).
Jika kita memprediksi token ketiga Z, bukankah H(Y | X) seharusnya ada dalam konteks implisit C, sehingga tidak bisa dibuang begitu saja?
Bahkan di lampiran pun argumen ini tampaknya belum menjadi lebih jelas.
Meski begitu, saya tidak sampai bingung hingga meragukan inti klaimnya; ini lebih merupakan masalah cara penyajian.
Jadi, dalam target 2 token H(X) + H(Y), bagian mana yang merupakan informasi bantu yang membantu pembelajaran, dan bagian mana yang terbuang?
H(X | Y) dan I(X; Y) berguna untuk generasi token berikutnya, tetapi H(Y | X) menurut definisi adalah jumlah informasi yang tidak relevan dengan token berikutnya X.
Karena itu kita bisa mengatakan “prediksi multi-token menukar informasi berguna I(X; Y) dari H(Y) dengan komputasi terbuang atas H(Y | X)”.
Namun perlu dicatat bahwa H(Y | X) adalah entropi next-token saat memprediksi Y dari prefiks (C, X).
Jika mekanisme attention dapat memindahkan komputasi yang sudah dilakukan untuk prediksi Y|X ke langkah berikutnya, maka komputasi itu mungkin sebenarnya bukan pemborosan, melainkan pra-komputasi.
Saya pernah membaca tulisan bahwa LLM secara harfiah hanya punya jendela satu dimensi ke dunia.
Semuanya hanyalah urutan token.
Hal seperti prediksi ganda ini mungkin bisa memperluas pandangan itu menjadi sekitar 1,1 dimensi.
Bagaimanapun juga, ada argumen nyata bahwa jendela itu pada akhirnya harus diperluas menjadi 2 dimensi atau lebih.
Misalnya, jika Anda punya sumber daya setingkat FAIR dan benar-benar ingin melatih model coding Java yang sangat bagus, masuk akal untuk melatihnya agar memprediksi AST, bukan token.
Untuk memprediksi komentar, nama identifier, dan sebagainya, Anda mungkin masih memerlukan bentuk gabungan dengan LLM biasa, tetapi Anda tidak akan memodelkan program itu sendiri sebagai aliran token.
Sebaliknya, Anda bisa membuatnya memprediksi hal seperti “tambahkan blok if”, “tambahkan blok pemanggilan metode dengan 4 parameter”.
Selain itu, model juga bisa dilatih untuk mencadangkan posisi tertentu di context window bagi informasi seperti anggota tipe dari kursor saat ini, dan loop inferensi bisa diintegrasikan dengan analisis statis gaya IDE/LSP.
Dengan begitu model bisa melihat lebih banyak informasi daripada yang termuat dalam teks aktual.
Menurut saya alasan model seperti ini belum banyak terlihat sekarang adalah karena biaya risetnya besar, dan orang-orang AI semuanya berpusat pada Python, sementara Python tidak terlalu mendapat manfaat dari keunggulan IDE.
Dalam machine learning, kata head tidak digunakan secara konsisten sehingga bisa membingungkan.
Makalah ini memuat dua konsep sekaligus: multihead attention dan multiple output heads.
Multihead attention dalam arsitektur transformer adalah tentang berfokus pada area-area berbeda dari input, dan analogi biologisnya di sini lebih dekat ke kepala sebagai pusat pemrosesan.
Output head berarti lapisan terakhir dari jaringan saraf, dan kita bisa memiliki beberapa di antaranya yang menghasilkan output berbeda berdasarkan lapisan sebelumnya yang sama.
Ini juga analogi biologis yang longgar, tetapi lebih dekat ke kepala sebagai salah satu ujung tubuh daripada kepala sebagai CPU.
Keduanya sama sekali bukan analogi dengan tape head yang membaca data.
Pada LLM, sebagian besar proses “berpikir” tampak terjadi dengan cara memasukkan kembali keluarannya sendiri sebagai input, sehingga terus diamati bahwa memaksa model untuk berpikir keras-keras meningkatkan kualitas penalaran
Artinya, penalaran rantai pikiran berbeda dari langsung meminta jawaban atas pertanyaan: model diminta mengulang apa yang diminta, mengekspresikan strategi tingkat tinggi tentang informasi apa yang dibutuhkan untuk menjawab, menyebutkan informasi yang sudah diketahui, dan menjelaskan bagaimana informasi itu akan memengaruhi penalaran awal
Namun ada kekhawatiran bahwa pendekatan yang memaksa model memprediksi beberapa token berikutnya pada setiap langkah justru dapat menimbulkan efek yang pada dasarnya berlawanan
Prompting rantai pikiran tampaknya menunjukkan bahwa model lebih “pintar” saat memiliki n + m token daripada saat hanya memiliki n token sebagai input
Karena itu, memperoleh 5 token berikutnya dari n bisa jadi menghasilkan hasil yang lebih buruk dibanding memperoleh 1 token berikutnya dari n, lalu 1 token berikutnya dari n+1, dan seterusnya
Fakta bahwa metode khusus ini membutuhkan lebih banyak token tidaklah penting
Jika tidak ada model murah, LLM akan selalu dipengaruhi bias untuk menjawab dengan perkiraan alih-alih jawaban sebenarnya
Selain itu, sebagian besar strategi speculative decoding menghasilkan output yang sama seperti menjalankan model secara berurutan
Jika prediksinya salah, token tersebut dibuang dan yang hilang hanya peningkatan kecepatannya
Jika token/kata +1 dan +2 diprediksi secara independen, bagaimana hasilnya bisa tetap masuk akal secara tata bahasa? Rasanya itu akan sering rusak?
Ini tidak jelas di abstrak, tetapi pada keterangan gambar 1 tertulis, “During inference, only the next token output head is used. Optionally, the other three heads can be used to reduce inference time.”
Jika semua prediksi teratas diambil, ketiga head memang bisa dipakai semuanya, tetapi itu membuat strategi sampling yang umum tak bisa digunakan
Saya tidak tahu berapa banyak orang yang benar-benar menjalankan LLM pada temperature 0 di luar benchmark, dan hasilnya mungkin berbeda jika mereka melakukan sesuatu yang lebih baik daripada sekadar menerapkan temperature