LLM'lerin Belirsizliği Algılama Teknikleri
(thariq.io)- Entropix, LLM'in bir sonraki token'ı seçtiği andaki belirsizliği okuyup, duruma göre örnekleme yöntemini değiştirerek çıkarım kalitesini artırmayı amaçlayan bir proje
- Karar ölçütleri, logit dağılımının entropisi ve varyans entropisi (varentropy); bu iki değerin birleşimiyle modelin güven durumu 4 kategoriye ayrılıyor
- Güvenin yüksek olduğu durumda argmax örnekleme uygundur; ancak öne çıkan birden fazla aday varsa dallanma (branching) ile yollar karşılaştırılabilir
- Yüksek entropi durumu, modelin gerçekten bilmemesi ya da seçeneklerin fiilen eşdeğer olması anlamına gelebilir; bu yüzden düşünme token'ı (thinking token) ekleme, sıcaklık ayarı ve dallanma gibi tepkiler gerekebilir
- Henüz geniş ölçekli değerlendirme olmadığı için etkinlik belirsiz, ancak çıkarım anındaki örnekleme, büyük bütçe olmadan da açık kaynak deneylerle iyileştirme denenebilecek bir alan
Entropix'in hedeflediği sorun
- Entropix, XJDR tarafından geliştirilen ve modelin belirsiz olduğu anlarda örnekleme stratejisini değiştirerek çıkarımı iyileştirmeyi amaçlayan bir proje
- Entropix için henüz geniş ölçekli değerlendirme bulunmadığından, gerçek performans artışının boyutu net değil
- Yine de belirsizlik temelli örnekleme, LLM çıkarımına farklı bakmayı sağlayan deneysel bir yöntem ve düşünme modeli sunuyor
LLM'lerin belirsizliği nerede ortaya çıkar
- Örnekleme, LLM'in olası token dağılımı olan logitler (logits) arasından hangi token'ı seçeceğini belirleme sürecidir
- Modelin ne kadar emin olduğu, bir sonraki token'a ilişkin logit dağılımında görülebilir
- Güven yüksekse olasılık birkaç token üzerinde belirgin şekilde yoğunlaşır
- Güven düşükse bir sonraki token adayları daha geniş bir alana yayılır
- Belirsizlik her zaman kötü bir sinyal değildir; bunun birden çok nedeni olabilir
goodvegreatörneğinde olduğu gibi token'lar eş anlamlı ya da fiilen eşdeğer olabilir- Bir programın Java ile de C ile de yazılabilmesi gibi dallanmış yollar olabilir
- Model ne yapacağını bilmiyor olabilir ya da eğitim verisinde görmediği dağılım dışı (out of distribution) bir girdiye rastlamış olabilir
Entropi ve varyans entropisi
- Entropix, belirsizliği logitlerin entropisi (entropy) ve varyans entropisi (varentropy) ile ölçüyor
- Entropi, tahmin edilen logitlerin birbirinden ne kadar farklı olduğunu gösterir ve en olası sonuca dair belirsizliği ifade eder
- Düşük entropide model bazı logitler konusunda oldukça emindir
- Yüksek entropide logit dağılımı daha uniform hale gelir ve güven azalır
- Varyans entropisi, belirsizliğin biçimini (shape) gösteren bir ölçüttür
- Yüksek varyans entropisi, bazı değerlerin diğerlerinden belirgin biçimde farklı olduğu anlamına gelir
- Bu iki gösterge surprisal (self-information) kavramına dayanır
- Surprisal, bir olayın kendi olasılığına kıyasla ne kadar beklenmedik olduğunu ölçer
xolayının olasılığıP(x)ise surprisalI(x) = -log₂(P(x))olurP(x) = 1/8ise surprisal 3 bit,P(x) = 1/2ise 1 bittir
- Entropi, tüm olası sonuçların surprisal değerlerinin beklenen değeridir
- Varyans entropisi, surprisal'in varyansı olarak hesaplanır ve bazı sonuçların ortalama surprisal'e göre ne kadar daha şaşırtıcı olduğunu gösterir
4 belirsizlik durumu
- Entropi ve varyans entropisine birlikte bakıldığında model durumu 4 kategoriye ayrılabilir
- Düşük entropi · düşük varyans entropisi: tek bir sonucun çok yüksek olasılığa sahip olduğu sivri bir dağılım
- Düşük entropi · yüksek varyans entropisi: birbirinden ayrışan birkaç tepe içeren dağılım
- Yüksek entropi · düşük varyans entropisi: uniform ya da neredeyse uniform dağılım
- Yüksek entropi · yüksek varyans entropisi: geniş alana yayılmış ama dengeli olmayan dağılım
Duruma göre uyarlamalı örnekleme
-
Düşük entropi · düşük varyans entropisi
- Bu, modelin yalnızca ilk seçimine değil, bu seçim yanlışsa alternatiflerine de görece güvendiği ideal durumdur
- Aday listesi genellikle temiz biçimde sıralandığından, en yüksek olasılıklı token'ı seçen argmax örnekleme uygundur
-
Düşük entropi · yüksek varyans entropisi
- Modelin birkaç seçeneğe çok yüksek tahmin verdiği durumdur
- Bu durum tümüyle yeni bir çıktı yoluna işaret edebilir ya da eş anlamlılarda olduğu gibi birkaç ifadenin de mümkün olduğu bir durum olabilir; bu yüzden yorumlamak zordur
- Olası yaklaşım, iki logiti de tahmin edip her bir yolu izledikten sonra belirli bir noktadan sonra sonuçları karşılaştıran dallanma (branching) yöntemidir
- Dallanma sonuçları benzer güven düzeyine sahip ama içerik olarak farklıysa, bu durum kullanıcıya yöneltilecek bir soruya dönüştürülebilir
-
Yüksek entropi · düşük varyans entropisi
- Bu, modelin düşük güven durumunda olduğunu ya da tüm seçeneklerin birbirinin yerine kullanılabildiğini gösterebilir
- Entropix bu durumda modelin daha yüksek güven durumuna geçmesi için sonraki token olarak bir düşünme token'ı eklemeyi öneriyor
- Örnek olarak
Wait..gibi bir token veriliyor - Düşünme token'ı, modelin yanıt vermeden önce daha fazla hesaplama zamanı harcayıp düşünmesi gerektiğine dair bir sinyal olarak çıktıya eklenir
- Örneğin model
The capital of Germany is Parisdiye tahmin etmeye çalışıyor ama emin değilse,Waiteklenerek bununThe capital of Germany is Paris… Wait, no, it’s actually Berlinşeklinde devam etmesi sağlanabilir
-
Yüksek entropi · yüksek varyans entropisi
- Bu durumda net bir en üst aday yoktur, ancak model bazı çıktılara diğerlerinden daha çok güveniyor olabilir
- Üst sıralardaki seçeneklerin hepsi eş anlamlılar gibi kabul edilebilir olabilir; bu yüzden daha yüksek temperature ile rastgele seçim yapılabilir
- Önceki durumlardaki gibi dallanma ya da düşünme token'ı ekleme de mümkündür
Dallanma ile düşünme token'ı arasındaki fark
- Her iki yöntem de belirsiz durumlarda daha fazla çıkarım hesaplaması kullanmaya yöneliktir
- Dallanmalı tahmin, birkaç logiti takip ederek bunların hangi farklı token'lara bağlandığını kontrol eder
- Buna sıkça MCTS (Monte Carlo Tree Search) denir
- LLM'lerde sık denenmiştir, ancak sonuçlar orta düzeyde kalmıştır
- Başlıca ödünleşim, her dalın diğerlerinin hesaplamasından yararlanamamasıdır
- Düşünme token'ı ise çöpe gidebilecek dalları keşfetmek için hesaplama harcamadan, belirsiz durumda ek hesaplama kazanmanın bir yoludur
Wait…eklemek, yapay zekanın hata yapmış olabileceğini fark etmesini sağlayabilir
- Dallanma ile düşünme token'ından hangisinin daha iyi olduğu hâlâ açık bir araştırma sorusu
Attention tabanlı sinyaller
- Entropix, temperature ayarlanırken başka bazı entropi ölçümlerini de kısmen kullanıyor
- Attention Entropy, attention head'lerin belirli bir token'ı mı izlediğini yoksa bağlamdaki birçok token'a mı dikkat dağıttığını gösterir
- Attention Agreement, farklı attention head'lerin aynı token'a mı odaklandığını yoksa farklı token'lara mı baktığını gösterir
- Head'lerin entropisi düşük ve agreement yüksekse, en yüksek olasılıklı token'ı örneklemek için bu ek bir sinyal olabilir
- Agreement düşükse farklı head'ler farklı tahminlere katkı yapıyor olabilir; bu durumda dallanma düşünmeye değer olabilir
Neden önemli
- Entropix'in fikri anlaşılması kolay ve tamamen yeni olmasa da, LLM çıkarımını örnekleme aşamasında yeniden düşünmeye yöneltiyor
- Değerlendirmelerde büyük avantajı henüz doğrulanmamış olsa bile, bu tür çıkarım anı teknikleri denemesi görece kolay yaklaşımlar
- Büyük bütçeler olmadan çıkarımı iyileştirmeye çalışan açık kaynak geliştiriciler için umut verici bir yön olabilir
1 yorum
Hacker News görüşleri
İki kez “Bay Babbage, makineye yanlış sayılar girilirse doğru cevap çıkar mı?” sorusunu aldığından bahsediliyor
Charles Babbage, böyle bir soruyu doğuran düşünce karmaşasının nasıl bir şey olduğunu tam olarak anlayamadığını söylüyor
Bu tür örnekleme tabanlı teknikler, tüketici donanımıyla son modeleri iyileştirmeyi deneyebilmenin nadir yollarından biri
Bunun uzun ömürlü olacağını sanmıyorum; sonunda eğitilebilir örnekleyiciler çıkacaktır, ama şimdilik kurcalamaya değer: https://github.com/codelion/optillm
optillm yazarları, Entropics’in ek hesaplamasının basit chain-of-thought decoding’e göre daha iyi sonuç vermediğini düşünüyor gibi. Verimliliği de doğruladılar mı bilmiyorum: https://x.com/asankhaya/status/1846736390152949966
LLM’lerdeki birçok sorunun, GSM Symbolic makalesinde olduğu gibi, semantic leakage ya da alakasız bilgilere dikkatin dağılması gibi durumlardan geldiği anlaşılıyor; belki attention tarafında iyileştirme payı da vardır
Bununla ilgili birkaç yazı da yazmış: 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...
Daha iyi çalıştığını iddia edenler var ama bunu kanıtlayan katı benchmark yok. “Yazı daha iyi çıkıyor”, “üslup daha taze” gibi şeyler söyleniyor; bence LeCun bu konuda %100 haklı. Genel amaçlı bir modeli “şiir” ya da “düzyazı”da iyi diye değerlendirmek, neredeyse önyargının tanımına giriyor ve kişinin kendi anekdotlarıyla kendini sabote etmesi anlamına geliyor
Bunun coding ya da matematiğe uygulanmış sonuçlarını görmek isterim. Mesela olimpiyat matematiği sorularında örnekleyici daha iyi çalışıyor mu; önce-sonra şeklinde titiz benchmark görmek iyi olurdu
Ya da attention mekanizmasının daha temel bir zayıflığı olabilir. Şu anda alternatifler de çıkıyor
Bu projenin akademik makalelere dayanıp dayanmadığından, yani LLM belirsizliğini değerlendirmek için açık bir teknik kullanıp kullanmadığından emin değilim
Son dönemde yapılan işler arasında şu epey ilgili görünüyor: https://learnandburn.ai/p/how-to-tell-if-an-llm-is-just-gues...
Burada, token logits’in standart entropisinden daha sofistike olan semantic entropy fikri kullanılıyor; bu da LLM’in tahmin mi yürüttüğünü yoksa yüksek güvene mi sahip olduğunu istatistiksel olarak nicelleştirmeye daha uygun. Asıl makale, Oxford’lu yazarların Nature makalesi
Bu yaklaşımı daha genelleyen bir çalışma [1] de var; örnek çıktıların birbirine anlamsal eşdeğerliği kavramına dayanarak yumuşak kümeleme yapıyor
Yine de dikkat edilmesi gereken noktalar var. Yakın zamanda, LLM belirsizliği tahminine yönelik en güncel teknikleri topluca benchmark eden bir makale [2] yayımlandı ve birçok durumda anlamı hesaba katan yöntemler çok iyi çalışsa da, başka görevlerde token dağılımının ortalama entropisi gibi basit baseline’ların karmaşık tekniklere benzer hatta daha iyi sonuç verdiği görüldü
Ayrıca, LLM’lere uygulanabilen güncel belirsizlik tahmini tekniklerini uygulayan ve hem tahmin yöntemi benchmark’larını hem de üretimdeki modellerin çıktı belirsizliğini tahmin etmeyi kolaylaştıran açık kaynaklı bir Python kütüphanesi [3] de geliştiriliyor
[1] https://arxiv.org/abs/2307.01379
[2] https://arxiv.org/abs/2406.15627
[3] https://github.com/IINemo/lm-polygraph
Oldukça yakından takip ettim; küçük modellerin bu örnekleyicide daha verimli olabilmesi ilginç geldi. İlgileniyorsanız gönderileri okumaya değer ve bu tür örnekleme anlamlı bir iş gibi hissettiriyor
Diğer yorumlarda da yazdığım gibi, yazarın temel bir yanlış anlaması var gibi görünüyor ve yazının başındaki nota bakılırsa bu yüzden pratikte işe yarar sonuçlar üretememiş olması mümkün
Bunu küçümsemek ya da heves kırmak için söylemiyorum. Belki gerçekten bir şey yakalamıştır ve bu tür sıra dışı yaklaşımlar denenmeye değerdir. Sadece az önceki nedenlerden dolayı olumlu bir etki göstermediyse bunun makale olarak çıkmasının zor olacağını düşünüyorum; dolayısıyla bu yaklaşıma dair akademik bir makalenin olmaması da şaşırtıcı değil
Entropi yüksek olduğunda modelin bir kaçış yolu olması gerektiği düşünülüyor
Genel yanıtın kesinliğinin düşük olduğunu tetiklemeli ve üretim sırasında kesinlik puanını biriktirerek, sonunda kullanıcının yanıtın kesinliğinin berbat olup olmadığını kontrol edebilmesini sağlamalı. Böyle yanıtlar atılabilmeli ya da “bilmiyorum” ile değiştirilebilmeli
Bu alanda model belirsizliğini nicelleştiren çeşitli yöntemler karşılaştırılırken sıkça reddetme doğrulaması yapılır. Temelde belirsizliği yüksek veri noktaları sürekli reddedilir ve geriye kalan çıktıların ortalama kalitesinin nasıl yükseldiğine bakılır. İyi bir belirsizlik tahmini, çıktı kalitesiyle güçlü biçimde ilişkili olmalıdır; dolayısıyla belirsizliği düşük çıktıların ortalama kalitesi daha yüksek olmalıdır
Yakın tarihli bir LLM belirsizlik tahmini yaklaşımı benchmark'ında [1] de tam olarak bu yöntem kullanıldı ve bu tür benchmark'ları mümkün kılan açık kaynak bir kütüphane [2] de geliştiriliyor. Belirli model çıktıları için belirsizlik puanları da üretilebildiğinden, bu yaklaşım endüstriyel ortamlarda uygulamalara entegre edilebilir
[1] https://arxiv.org/abs/2406.15627
[2] https://github.com/IINemo/lm-polygraph
Bu yüzden entropi yüksek olduğunda bu çoğu zaman “emin değilim” sinyali olsa da, model çok sık biçimde kendinden emin bir şekilde yanlış da olabilir. Bu nedenle logit entropisini güvenilirliğin göstergesi olarak kullanmak kolayca ciddi yanlış yorumlara yol açabilir
LLM uzmanı değilim; bu, genel sınıflandırıcılara dair anlayışıma dayanan bir görüş. Veri yeterince fazlaysa bu değerlendirmenin artık geçerli olup olmadığını merak ediyorum
Reddeden yanıtları yeterince zorlayan deneyler yapmak da mümkün; bizzat denemenizi tavsiye ederim. smollm-entropix deposu [1], her şeyi bir Jupyter notebook olarak uyguladığı için fikirleri test etmeyi daha kolay hale getiriyor
[1]: https://github.com/SinatrasC/entropix-smollm
Modern büyük GPT'ler, tüm token sözlüğü üzerinde devasa bir sınıflandırıcının logitlerini üretir
Bunlar bir uzayda bulunur ve yalnızca önemsiz olmayan dışbükeylik özelliklerine sahip bir manifold varsaymakla kalmayıp bunu ampirik olarak da hesaplamak mümkündür. Hangi LLM'in hangi metni yazdığını ayırt etme problemi, belirli bir üslup kullanması talimatı verilmiş durumlar dahil, iyi tanımlanmış ya da pratikte çözülmüş bir probleme yakındır
Bu yalnızca üzerinde çalışılan bir araştırma problemi değil, aynı zamanda hızlı ve etkileyici ilerlemelerin yaşandığı bir alandı; sonra bir noktada bu alan basitçe kapatıldı
Bu alanda en iyisi olmak muazzam bir iştir. Ve tam da startup'ların yapması gereken türden bir şeydir. Çünkü parası bol yerleşik şirketlerin rakip olarak ortaya çıkması zordur; bunun nedeni pazarı görmezden gelmeleri değil, bu pazarın var olmasını aktif olarak istememeleridir
Bu anlatım biçimi neredeyse bir labirent arama algoritması gibi geliyor. Burada hesaplama süresi, “olası bir çözüm olup olmadığını denemek için bir yolu ne kadar derine kadar takip edeceğiz” sorusuna karşılık geliyor
Başka benzerlikler de olup olmadığını merak ediyorum. Örneğin LLM'lere uygulanabilecek labirent çözme algoritmaları var mı?
Dürüst olmak gerekirse bu, Bitter Lesson(http://www.incompleteideas.net/IncIdeas/BitterLesson.html) ile ters yönde gidiyor. O ders, satrançta labirent aramayı aşırı incelikli ele alma eğiliminden de çıkmıştı. Ama LLM'lerin bugünkü ölçeğinde bu tür iyileştirmeler değerli olabilir
Bu tür potansiyel optimizasyonları her okuduğumda, insanların LLM'lere nasıl bu kadar az denetimle güvenip kullandığını anlamakta zorlanıyorum
LLM kullanan “AI” ürünlerinin bilgisayarı kontrol edecek veya doğru kod yazacak kadar gerçekten yetkin olduğuna gerçekten inanıyorlar mı? Tasarım gereği her şey bir “halüsinasyon” ya da tahminden ibaret değil mi? Bu gerçekten aşılabilir mi?
Makinelere komut gönderiyor, sonuçları/hataları/çıktıları sorguluyor, bunları
.csvolarak kaydedip sonra düzgün biçimlendirilmiş Excel dosyalarına dönüştürüyor. Ayrıca belirli testlerde teknisyenin nasıl bağlantı yapması gerektiğini gösteren bir başlangıç kılavuzu da sağlıyorBen programcı değilim, şirketimizde de programcı yok. Ama tam istediğim gibi çalışan kod yazdı. Geliştirme sırasında kod tıkandığında tekrar ChatGPT'ye verip çözmesini sağladım ve sonunda hepsini çözdü. Yaklaşık bir gün sürdü; bunu ben yapsaydım bir ay, dışarıya versek 10 bin dolar ve bir hafta tutardı
LLM'ler yüksek maaşlı ileri düzey programlama projeleri için kötü olabilir. Ama bilgisayarla bir şey yapması gereken fakat bilgisayara ne yapacağını söyleyen dil bariyerini aşamayan insanlar için bir nimet
Benim normalde yazdığım koddan çok daha sağlam ve doğru. 20 yıldır programlama yapıyorum
Bu da sadece bir başka aşırı hype döngüsü. Client/Server, Industry 4.0, Machine Learning, Microservices, Cloud, Crypto gibi
Modelin asla belirsizleşmesine izin verilmezse çıktının nasıl olacağını deneyen oldu mu?
Örneğin kesinlik bir eşik değerin altına her düştüğünde örnekleyicinin geri dönüp başka bir token seçmesi gibi. Sonuçta her bir token tek tek eşik üstü kesinliğe sahip olur
İstenmeyen çıktıları tamamen ortadan kaldırmaz ama ilginç olurdu
Ya da “Bilmiyorum”u tam bir kesinlikle söyleyebilir
Dil modelleri için milyarlarca örnekleme stratejisi var
Sorun, herhangi bir örnekleme stratejisinin standart top-k ya da top-p örneklemeden daha iyi olduğunu ampirik olarak göstermenin çok zor olması. Sadece perplexity'yi en aza indirmek, belirli bir yöntemin üstünlüğünü kanıtlamak için yeterli değil. Blog yazısında önerilen strateji de aynı sorunu taşıyor. Teoride makul görünüyor ama pratikte doğrulanmamış bir yenilik
“Daha iyi”nin ne olduğunu net söylemek zor ve tercih verisi gibi şeyleri toplamanın maliyeti yüksek olduğu için kanıtlamak zor
Çok sayıda örnek gördükten sonra sağduyuyla “X'i optimize etmek için bu yöntem daha iyi çalışıyor gibi görünüyor” denebilir
LLM yanıtlarının sınırları yalnızca “belirsizlik”ten ibaret değil, çok daha fazla boyutu var
“Soru/cümle anlam taşımıyor”, “yanıt vermek için yeterli bilgi yok”, “uzman görüş birliği ‘bunu gerçekten kimse bilemez’ bilgisini içeriyor” gibi durumlar var
İnsanların, belirli bir soruya cevap vermenin neden zor olduğunu sadece belirsizlik meselesine indirgeme eğilimi var; bu yüzden LLM yanıtlarına da sanki tek bir belirsizlik seviyesi varmış gibi bakıyorlar. Ama bu antropomorfizm
Yapay zeka görselleri ve ondan önce fotoğraf, görüntülerin yanlış olabileceği yeni ve daha önce hayal edilmemiş yolları, yani gerçek gibi görünüp yanlış olma biçimlerini gösterdi. Yapay zeka dil etkileşimi de aynı şeyi daha incelikli biçimde yapıyor
Şimdiye kadar bu çoğunlukla pekiştirmeli öğrenmeyle yapıldı ama çıkarım anında yakalayıp ele alan yöntemler de keşfetmeye değer görünüyor. Açık kaynakta çok daha erişilebilir de. Bu tür pekiştirmeli öğrenme büyük ML araştırma laboratuvarlarının yapabildiği bir şey
Antropomorfizmin LLM pazarlama stratejisinin bir parçası olduğunu düşünüyorum
Belirsizlik birden fazla “çeşit”e ayrılabilir. En basit ve en sık tartışılan ayrım aleatorik belirsizlik ile epistemik belirsizlik arasında yapılıyor. Epistemik belirsizlik, ya da model kaynaklı belirsizlik, genelde modelin daha önce hiç görmediği türden girdiler alıp kötü çıktılar üretmesi durumunu ifade eder; yani doğru işlemesini beklemenin zor olduğu durumlar. Buna karşılık aleatorik belirsizlik verinin kendisine içkindir; görevin doğal muğlaklığı ya da gürültülü etiketleme gibi şeyler düşünülebilir
Belirsizlik tahmini alanında bu farklı belirsizlik türlerini nicelleştirmenin yollarını geliştirmeye büyük ilgi var ve yöntemler buna karşı farklı derecelerde duyarlı olabilir