Teknik Deteksi Ketidakpastian pada LLM
(thariq.io)- Entropix adalah proyek yang mencoba membaca ketidakpastian LLM saat memilih token berikutnya, lalu mengubah metode sampling berdasarkan keadaan untuk meningkatkan kualitas inferensi
- Kriteria penilaiannya adalah entropy dan varentropy (variance entropy) dari distribusi logit, dan kombinasi kedua nilai ini membagi tingkat keyakinan model ke dalam 4 keadaan
- Pada keadaan dengan keyakinan tinggi, argmax sampling cocok digunakan, tetapi ketika ada beberapa kandidat kuat, jalur dapat dibandingkan melalui branching
- Keadaan dengan entropy tinggi bisa berarti model benar-benar tidak tahu atau opsinya secara praktis setara, sehingga perlu respons seperti penyisipan thinking token, penyesuaian temperature, atau branching
- Karena belum ada evaluasi skala besar, efektivitasnya masih belum pasti, tetapi sampling pada saat inferensi adalah area yang bisa dicoba ditingkatkan lewat eksperimen open source tanpa anggaran besar
Masalah yang Dibidik Entropix
- Entropix adalah proyek yang dikembangkan oleh XJDR, dengan pendekatan mengubah strategi sampling saat model berada di momen tidak pasti untuk meningkatkan inferensi
- Sampai sekarang belum ada evaluasi skala besar untuk Entropix, sehingga besarnya peningkatan performa nyata masih belum jelas
- Meski begitu, sampling berbasis ketidakpastian menawarkan metode eksperimental dan model berpikir yang melihat inferensi LLM dari sudut yang berbeda
Di Mana Ketidakpastian LLM Muncul
- Sampling adalah proses menentukan token mana yang akan dipilih LLM dari distribusi token yang mungkin, yaitu logit
- Tingkat keyakinan model dapat dilihat dari distribusi logit untuk token berikutnya
- Jika keyakinan tinggi, probabilitas akan terkonsentrasi jelas pada beberapa token tertentu
- Jika keyakinan rendah, kandidat token berikutnya akan tersebar lebih luas
- Ketidakpastian tidak selalu merupakan sinyal buruk, dan penyebabnya bisa bermacam-macam
- Ketika token bersifat sinonim atau pada dasarnya setara, seperti
gooddangreat - Ketika ada jalur percabangan seperti program yang bisa ditulis dalam Java maupun C
- Ketika model tidak tahu harus melakukan apa, atau menghadapi input out of distribution yang tidak pernah dilihat di data pelatihan
- Ketika token bersifat sinonim atau pada dasarnya setara, seperti
Entropy dan Varentropy
- Entropix mengukur ketidakpastian dengan entropy dan varentropy dari logit
- Entropy menunjukkan seberapa berbeda logit prediksi satu sama lain, dan merepresentasikan ketidakpastian terhadap hasil yang paling mungkin
- Pada entropy rendah, model cukup yakin terhadap beberapa logit tertentu
- Pada entropy tinggi, distribusi logit menjadi lebih seragam sehingga keyakinan menurun
- Varentropy adalah metrik yang menunjukkan bentuk (shape) dari ketidakpastian
- Varentropy tinggi berarti beberapa nilai sangat berbeda dibanding nilai lainnya
- Kedua metrik ini didasarkan pada konsep surprisal (self-information)
- Surprisal mengukur seberapa tidak terduganya suatu peristiwa dibanding probabilitasnya
- Jika probabilitas peristiwa
xadalahP(x), maka surprisal adalahI(x) = -log₂(P(x)) - Jika
P(x) = 1/8, surprisal adalah 3 bit, dan jikaP(x) = 1/2, maka 1 bit
- Entropy adalah nilai harapan dari surprisal untuk semua hasil yang mungkin
- Varentropy dihitung sebagai varians dari surprisal, dan menunjukkan seberapa jauh beberapa hasil lebih mengejutkan dibanding surprisal rata-rata
4 Keadaan Ketidakpastian
- Dengan melihat entropy dan varentropy bersama-sama, keadaan model dapat dibagi menjadi 4 jenis
- Entropy rendah · varentropy rendah: distribusi runcing di mana satu hasil memiliki probabilitas sangat tinggi
- Entropy rendah · varentropy tinggi: distribusi dengan beberapa puncak yang berbeda
- Entropy tinggi · varentropy rendah: distribusi seragam atau hampir seragam
- Entropy tinggi · varentropy tinggi: distribusi yang menyebar luas tetapi tidak merata
Adaptive Sampling Berdasarkan Keadaan
-
Entropy rendah · varentropy rendah
- Ini adalah keadaan ideal di mana model cukup yakin bukan hanya pada pilihan pertama, tetapi juga pada alternatif jika pilihan itu salah
- Daftar kandidat sering tersusun rapi, sehingga argmax sampling yang memilih token dengan probabilitas tertinggi cocok digunakan
-
Entropy rendah · varentropy tinggi
- Ini adalah keadaan ketika model memprediksi beberapa pilihan dengan probabilitas sangat tinggi
- Keadaan ini bisa berarti seluruh jalur keluaran baru, atau hanya beberapa ekspresi yang sama-sama valid seperti sinonim, sehingga sulit dinilai
- Salah satu respons yang mungkin adalah branching, yaitu memprediksi kedua logit lalu mengikuti masing-masing jalur, kemudian membandingkan hasilnya setelah titik tertentu
- Jika hasil percabangan memiliki tingkat keyakinan yang mirip tetapi isi berbeda, itu bisa diubah menjadi pertanyaan untuk pengguna
-
Entropy tinggi · varentropy rendah
- Ini bisa berarti model berada dalam keadaan keyakinan rendah, atau semua pilihan dapat saling dipertukarkan
- Dalam kondisi ini, Entropix mengusulkan memasukkan thinking token sebagai token berikutnya agar model berpindah ke keadaan dengan keyakinan lebih tinggi
- Contohnya adalah token seperti
Wait.. - Thinking token disisipkan ke keluaran sebagai sinyal bahwa model perlu meluangkan lebih banyak waktu komputasi untuk berpikir sebelum memberi jawaban
- Misalnya ketika model hendak memprediksi
The capital of Germany is Paristetapi tidak yakin, penyisipanWaitdapat membuatnya berlanjut menjadiThe capital of Germany is Paris… Wait, no, it’s actually Berlin
-
Entropy tinggi · varentropy tinggi
- Tidak ada kandidat teratas yang jelas, tetapi model tetap lebih yakin pada beberapa keluaran dibanding yang lain
- Pilihan teratas bisa sama-sama layak seperti sinonim, sehingga pemilihan acak dengan temperature yang lebih tinggi dapat digunakan
- Seperti pada keadaan sebelumnya, branching atau penyisipan thinking token juga memungkinkan
Perbedaan Branching dan Thinking Token
- Kedua pendekatan ini sama-sama bertujuan menggunakan lebih banyak komputasi inferensi saat keadaan tidak pasti
- Prediksi bercabang mengikuti beberapa logit untuk melihat ke token-token apa saja jalur itu berlanjut
- Ini sering disebut MCTS (Monte Carlo Tree Search)
- Sudah cukup sering dicoba pada LLM, tetapi hasilnya tergolong sedang
- Trade-off utamanya adalah tiap cabang tidak bisa memanfaatkan komputasi dari cabang lain
- Thinking token adalah cara memperoleh komputasi tambahan dalam keadaan tidak pasti tanpa menghabiskan komputasi untuk menjelajahi cabang yang nantinya bisa dibuang
- Penyisipan
Wait…membuat AI menyadari bahwa ia mungkin telah melakukan kesalahan
- Penyisipan
- Mana yang lebih baik antara branching dan thinking token masih menjadi pertanyaan riset terbuka
Sinyal Berbasis Attention
- Entropix juga sebagian menggunakan metrik entropy lain saat menyesuaikan temperature
- Attention Entropy menunjukkan apakah attention head mengikuti token tertentu atau menyebarkan perhatian ke banyak token dalam konteks
- Attention Agreement menunjukkan apakah beberapa attention head memusatkan perhatian pada token yang sama atau melihat token yang berbeda
- Jika entropy head rendah dan agreement tinggi, itu bisa menjadi sinyal tambahan bahwa mengambil token dengan probabilitas tertinggi aman dilakukan
- Jika agreement rendah, head yang berbeda mungkin berkontribusi pada prediksi yang berbeda, sehingga branching layak dipertimbangkan
Mengapa Ini Penting
- Gagasan Entropix mudah dipahami dan bukan sesuatu yang sepenuhnya baru, tetapi mendorong kita memikirkan kembali peningkatan inferensi LLM pada tahap sampling
- Walaupun manfaat besar dalam evaluasi belum terbukti, teknik pada saat inferensi seperti ini relatif mudah untuk dieksperimenkan
- Ini bisa menjadi arah yang menjanjikan bagi para hacker open source untuk mencoba meningkatkan inferensi tanpa anggaran besar
1 komentar
Pendapat di Hacker News
Konon ia dua kali ditanya, “Tuan Babbage, kalau angka yang salah dimasukkan ke mesin, apakah jawaban yang benar akan keluar?”
Ini adalah ucapan Charles Babbage bahwa ia tidak bisa benar-benar memahami seperti apa kekacauan berpikir yang melahirkan pertanyaan semacam itu.
Teknik berbasis sampling semacam ini adalah salah satu kasus langka di mana kita bisa mencoba meningkatkan model mutakhir dengan hardware konsumen.
Sepertinya ini tidak akan bertahan lama, dan pada akhirnya akan muncul sampler yang bisa dilatih, tetapi untuk saat ini layak diutak-atik sepuasnya: https://github.com/codelion/optillm
Para penulis optillm tampaknya berpandangan bahwa komputasi tambahan Entropics tidak memberikan hasil yang lebih baik daripada decoding chain-of-thought sederhana. Saya tidak tahu apakah mereka juga memeriksa efisiensinya: https://x.com/asankhaya/status/1846736390152949966
Banyak masalah LLM tampaknya berasal dari kebocoran semantik atau perhatian yang terpecah ke informasi yang tidak relevan, seperti dalam paper GSM Symbolic, dan mungkin masih ada ruang untuk memperbaiki attention.
Saya juga menulis beberapa artikel terkait hal ini: https://zzbbyy.substack.com/p/semantic-leakage-quick-notes, https://zzbbyy.substack.com/p/llms-and-reasoning, https://zzbbyy.substack.com/p/o1-inference-time-turing-machi...
Ada yang mengklaim teknik ini bekerja lebih baik, tetapi tidak ada benchmark ketat yang membuktikannya. Klaimnya seperti “tulisannya jadi lebih bagus” atau “gayanya terasa segar”; dalam hal ini saya rasa LeCun 100% benar. Mengevaluasi model serbaguna dengan mengatakan ia bagus dalam “puisi” atau “prosa” hampir merupakan definisi bias, dan sama saja menjegal diri sendiri dengan anekdot pribadi.
Saya ingin melihat hasil penerapannya pada coding atau matematika. Misalnya, apakah sampler bekerja lebih baik pada soal matematika olimpiade, dengan benchmark sebelum dan sesudah yang teliti.
Atau mungkin ini adalah kelemahan yang lebih mendasar dari mekanisme attention. Saat ini alternatif-alternatifnya juga mulai bermunculan.
Saya tidak yakin apakah proyek ini berbasis paper akademik, yakni apakah ia memakai teknik publik untuk menilai ketidakpastian LLM.
Di antara pekerjaan terbaru, yang ini tampaknya cukup relevan: https://learnandburn.ai/p/how-to-tell-if-an-llm-is-just-gues...
Di sini digunakan gagasan entropi semantik yang lebih canggih daripada entropi standar dari logit token, dan lebih cocok untuk menguantifikasi secara statistik apakah LLM sedang menebak atau memiliki keyakinan tinggi. Paper aslinya adalah paper Nature dari para penulis Oxford.
Ada juga riset [1] yang menggeneralisasi pendekatan ini lebih jauh, dengan melakukan clustering lunak berdasarkan konsep ekuivalensi semantik di antara keluaran sampel.
Namun tetap ada hal yang perlu diperhatikan. Kami baru-baru ini menerbitkan paper [2] yang melakukan benchmark komprehensif terhadap teknik-teknik terbaru estimasi ketidakpastian LLM, dan dalam banyak kasus metode yang mempertimbangkan makna bekerja sangat baik, tetapi pada tugas lain baseline sederhana seperti entropi rata-rata distribusi token bisa setara atau bahkan lebih baik daripada teknik yang kompleks.
Selain itu, kami juga sedang mengembangkan library Python open source [3] yang mengimplementasikan teknik estimasi ketidakpastian mutakhir yang dapat diterapkan pada LLM, serta memudahkan benchmark metode estimasi dan estimasi ketidakpastian keluaran model yang sedang beroperasi.
[1] https://arxiv.org/abs/2307.01379
[2] https://arxiv.org/abs/2406.15627
[3] https://github.com/IINemo/lm-polygraph
Saya mengamatinya cukup dekat, dan menarik karena model kecil tampaknya bisa lebih efisien dengan sampler ini. Kalau tertarik, posting-postingnya layak dibaca, dan sampling jenis ini terasa seperti sesuatu yang sangat berarti.
Seperti yang saya tulis juga di komentar lain, penulis tampaknya memiliki kesalahpahaman mendasar, dan melihat catatan di bagian atas tulisan, karena itu ada kemungkinan pendekatan ini memang tidak menghasilkan hasil praktis yang nyata.
Bukan berarti saya ingin menyalahkan atau discouraging. Bisa saja mereka menangkap sesuatu, dan pendekatan unik semacam ini layak dicoba. Namun, karena alasan yang disebutkan tadi, kalau tidak ada efek positif, sulit baginya untuk menjadi paper; jadi tidak mengherankan juga jika tidak ada paper akademik tentang pendekatan ini.
Saat entropi tinggi, model seharusnya punya jalan keluar
Perlu dipicu bahwa kepastian seluruh jawaban rendah, lalu selama proses generasi skor kepastian diakumulasikan agar di akhir pengguna bisa memastikan apakah kepastian jawabannya sangat buruk. Jawaban seperti itu harus bisa dibuang atau diganti dengan “Saya tidak tahu”
Saat membandingkan berbagai metode untuk mengkuantifikasi ketidakpastian model di bidang ini, biasanya dilakukan validasi refusal. Pada dasarnya, caranya adalah terus menolak titik data dengan ketidakpastian tinggi, lalu melihat bagaimana kualitas rata-rata keluaran yang tersisa meningkat. Estimasi ketidakpastian yang baik seharusnya berkorelasi kuat dengan kualitas keluaran, sehingga kualitas rata-rata keluaran dengan ketidakpastian rendah harus lebih tinggi
Benchmark terbaru untuk pendekatan estimasi ketidakpastian LLM [1] juga menggunakan cara ini, dan pustaka open source [2] yang memungkinkan benchmark semacam ini juga sedang dikembangkan. Skor ketidakpastian untuk keluaran model tertentu juga bisa dibuat, sehingga dapat diintegrasikan ke aplikasi di lingkungan industri
[1] https://arxiv.org/abs/2406.15627
[2] https://github.com/IINemo/lm-polygraph
Jadi saat entropi tinggi, sering kali itu memang sinyal “tidak yakin”, tetapi model juga bisa sangat sering salah dengan penuh percaya diri. Karena itu, memakai entropi logit sebagai indikator kepercayaan bisa dengan mudah sangat menyesatkan
Saya bukan pakar LLM, ini hanya pemikiran berdasarkan pemahaman saya tentang classifier umum. Saya penasaran apakah pertimbangan ini tidak lagi berlaku kalau datanya cukup banyak
Eksperimen untuk mendorongnya cukup jauh sampai memberikan jawaban penolakan juga mungkin dilakukan, dan saya sarankan mencobanya sendiri. Repositori smollm-entropix [1] mengimplementasikan semuanya sebagai notebook Jupyter sehingga lebih mudah menguji idenya
[1]: https://github.com/SinatrasC/entropix-smollm
GPT besar modern mengeluarkan logit dari classifier raksasa untuk seluruh kosakata token
Semua itu berada dalam suatu ruang, dan bukan hanya kita bisa mengasumsikan manifold dengan sifat konveksitas yang tidak sepele, tetapi juga menghitungnya secara empiris. Masalah menentukan LLM mana yang menulis suatu teks, bahkan termasuk kasus ketika ia diperintahkan memakai gaya bicara tertentu, adalah masalah yang terdefinisi dengan baik atau secara praktis nyaris sudah terpecahkan
Ini bukan hanya masalah yang sedang diteliti, tetapi juga bidang dengan kemajuan yang cepat dan mengesankan, lalu pada suatu titik seolah-olah dimatikan begitu saja
Menjadi yang terbaik di bidang ini adalah bisnis yang sangat besar. Dan ini tipikal hal yang seharusnya dikerjakan startup. Sebab pemain mapan yang kaya sulit muncul sebagai pesaing; bukan karena mereka mengabaikan pasar ini, melainkan karena mereka secara aktif tidak ingin pasar ini ada
Cara penjelasan ini terdengar hampir seperti algoritma penelusuran labirin. Di sini waktu komputasi setara dengan “seberapa dalam kita mengikuti satu jalur untuk menguji apakah itu solusi yang mungkin”
Saya penasaran apakah ada kemiripan lain. Misalnya, apakah ada algoritma pemecahan labirin yang bisa diterapkan pada LLM?
Terus terang, ini berlawanan arah dengan Bitter Lesson(http://www.incompleteideas.net/IncIdeas/BitterLesson.html). Pelajaran itu juga berasal dari kecenderungan memperlakukan penelusuran labirin dalam catur secara terlalu rumit. Namun pada skala LLM sekarang, perbaikan semacam ini mungkin saja bernilai
Setiap kali membaca tentang potensi optimasi seperti ini, saya sulit memahami bagaimana orang bisa percaya dan memakai LLM dengan pengawasan minimal
Apakah mereka benar-benar percaya produk “AI” yang memakai LLM cukup kompeten untuk mengendalikan komputer atau menulis kode yang akurat? Bukankah secara desain semuanya adalah “halusinasi” atau tebakan? Bisakah itu benar-benar diatasi?
Program itu mengirim tindakan ke mesin, mengambil hasil/error/output, menyimpannya ke .csv, lalu mengubahnya menjadi file Excel yang diformat rapi. Program itu juga menyediakan panduan awal yang menunjukkan bagaimana teknisi harus menyambungkan sesuatu pada pengujian tertentu
Saya bukan programmer, dan di perusahaan kami juga tidak ada programmer. Namun ia menulis kode yang bekerja persis seperti yang saya minta. Saat pengembangan, kalau kode mentok, saya masukkan lagi ke ChatGPT agar diselesaikan, dan pada akhirnya semuanya terselesaikan. Butuh kira-kira sehari; kalau saya yang mengerjakan mungkin sebulan, kalau outsourcing mungkin US$10.000 dan seminggu
LLM mungkin buruk untuk proyek pemrograman canggih bergaji tinggi. Tapi bagi orang yang perlu melakukan sesuatu dengan komputer namun tidak bisa melewati hambatan bahasa untuk memberi tahu komputer apa yang harus dilakukan, ini adalah berkah
Jauh lebih kokoh dan akurat daripada kode yang biasa saya tulis. Saya sudah memprogram selama 20 tahun
Ini hanya satu lagi gelombang hype. Seperti Client/Server, Industry 4.0, Machine Learning, Microservices, Cloud, Crypto
Apakah ada yang pernah bereksperimen melihat seperti apa outputnya jika model dibuat tidak pernah bisa menjadi tidak pasti?
Misalnya, setiap kali tingkat kepastian turun di bawah ambang batas, sampler mundur dan memilih token lain. Pada akhirnya setiap token tunggal memiliki kepastian di atas ambang batas
Mungkin tidak akan sepenuhnya menghilangkan output yang tidak diinginkan, tapi akan menarik
Atau bisa juga mengatakan “Saya tidak tahu” dengan keyakinan penuh
Ada miliaran strategi sampling untuk model bahasa
Masalahnya, sangat sulit menunjukkan secara empiris bahwa suatu strategi sampling lebih baik daripada sampling top-k atau top-p standar. Sekadar meminimalkan perplexity tidak cukup untuk membuktikan keunggulan metode tertentu. Strategi yang diusulkan di tulisan blog itu juga punya masalah yang sama. Secara teori terdengar masuk akal, tetapi dalam praktiknya merupakan inovasi yang belum terverifikasi
Sulit untuk mengatakan dengan jelas apa arti “lebih baik”, dan karena biaya mengumpulkan data preferensi dan semacamnya besar, pembuktiannya sulit
Setelah melihat banyak sampel, secara akal sehat kita bisa mengatakan, “kalau ingin mengoptimalkan X, metode ini tampaknya bekerja lebih baik”
Batasan jawaban LLM memiliki jauh lebih banyak dimensi daripada sekadar “ketidakpastian”
Ada hal-hal seperti “pertanyaan/kalimatnya tidak bermakna”, “informasinya tidak cukup untuk menjawab”, “ada informasi bahwa konsensus ahli adalah ‘tidak ada yang benar-benar bisa tahu’”, dan sebagainya
Ada kecenderungan manusia untuk mereduksi alasan mengapa suatu pertanyaan sulit dijawab menjadi sekadar masalah ketidakpastian, sehingga jawaban LLM juga dipandang seolah hanya memiliki satu tingkat ketidakpastian. Namun itu adalah antropomorfisasi
Gambar AI, dan sebelumnya fotografi, menunjukkan cara-cara baru dan tak terbayangkan bagi sebuah gambar untuk bisa salah, yaitu cara yang tampak nyata tetapi salah. Interaksi bahasa AI melakukan hal yang sama, hanya lebih halus
Sejauh ini hal itu terutama dilakukan dengan reinforcement learning, tetapi pendekatan menangkap dan menanganinya pada saat inferensi juga tampaknya layak dieksplorasi. Ini juga jauh lebih mudah diakses bagi open source. Reinforcement learning seperti ini hanya bisa dilakukan oleh lab ML besar
Saya merasa antropomorfisasi adalah bagian dari strategi pemasaran LLM
Ketidakpastian juga bisa dipecah menjadi beberapa “rasa”. Pemecahan paling sederhana dan sering dibahas adalah ketidakpastian aleatorik dan ketidakpastian epistemik. Ketidakpastian epistemik, atau ketidakpastian berbasis model, biasanya merujuk pada kasus ketika model menerima jenis input yang belum pernah dilihat sebelumnya lalu menghasilkan output buruk, situasi yang sulit diharapkan bisa ditangani dengan benar. Sebaliknya, ketidakpastian aleatorik melekat pada data itu sendiri; bayangkan ambiguitas alami dalam tugas atau pelabelan yang banyak noise
Dalam bidang estimasi ketidakpastian, ada banyak minat untuk mengembangkan cara mengkuantifikasi berbagai jenis ketidakpastian ini, dan tiap metode bisa lebih sensitif terhadap salah satunya