- LLM, bir sonraki token olasılık dağılımını hesapladıktan sonra birini seçer; örnekleme ise greedy yaklaşıma kontrollü rastgelelik ekleyerek çıktının çeşitliliğini ayarlar
- temperature, tekrar cezaları, DRY, Top-K/Top-P/Min-P; token seçimi öncesinde veya sonrasında logits ya da olasılık dağılımını değiştirerek aday aralığını ve göreli olasılıkları yeniden yapılandırır
- Her sampler, token’ları tutmak veya elemek için sabit sayı, kümülatif olasılık, en yüksek olasılığa göre oran, entropy, n-gram tekrarı, surprisal gibi farklı ölçütler kullanır
- Gerçek pipeline’larda filtreleme, cezalar, temperature ve dağılım ayarlamalarının uygulama sırası sonucu büyük ölçüde değiştirir; kombinasyona göre etkiler birbirini tamamlayabilir veya birbirinin üzerine yazabilir
- Tokenizer’ın vocabulary boyutu ve bölme yöntemi, modelin olasılık atadığı birimi ve DRY gibi n-gram tabanlı sampler’ların algıladığı örüntüleri değiştirir
LLM üretimi ve örneklemenin temel yapısı
- LLM, kullanıcı prompt’u gibi bir metni girdi olarak alıp bir sonraki kelimeye karşılık gelen token’ı hesaplar
- Model, geçerli token’lardan oluşan bir vocabulary’ye sahiptir ve eğitim ile inference sırasında bu vocabulary’ye başvurur
- Eğitim sırasında çok sayıda metni görerek token’ların içsel olasılık haritasını oluşturur; inference sırasında ise öğrenilmiş olasılıklara dayanarak bir sonraki token’a karar verir
- Üretim süreci iki aşamaya ayrılır
- Tahmin: Her konumda olası tüm bir sonraki token’lar için olasılık dağılımını hesaplar
- Seçim: Bu dağılımdan bir token seçip çıktıya ekler
- Greedy yaklaşım her zaman en olası token’ı seçtiği için tekrarlı ve deterministik metinler üretmeye yatkındır
- Örnekleme, seçim aşamasına kontrollü rastgelelik katarak çıktının daha çeşitli olmasını sağlar
Neden kelime veya karakter değil de token?
- Karakter düzeyinde tokenization aynı metni çok daha uzun bir sekansa dönüştürür;
tokenization, alt-kelime yaklaşımındaki 2–3 token yerine 12 token olabilir - Uzun sekanslar self-attention için daha fazla hesaplama gerektirir ve modelin
t-h-egibi birden fazla konumdaki bilgiyi tek bir kavram olarak ilişkilendirmesi gerekir - Kelime düzeyinde tokenization, İngilizcedeki tüm kelimeleri ve birçok dildeki kelimeleri içermek zorunda olduğundan embedding matrisi çok büyür ve pahalı hale gelir
- Yeni veya nadir kelimelerle karşılaşıldığında kelime düzeyindeki yöntem genellikle bunları
"unknown"token’ıyla değiştirir ve anlam bilgisini kaybeder - Alt-kelime tokenization,
grompuficiousgibi yeni bir kelimeyi mevcut alt-kelime kombinasyonlarıyla temsil edebilir - Yeni bir tokenizer kullanan dil modeli, eğitim verisinin temsili bir örneğinde sık görülen alt-kelimeleri bulacak şekilde tokenizer’ı eğitir ve vocabulary boyutunu önceden belirler
Sampler’ların ele aldığı temel değerler
- logits: Modelin vocabulary’deki her token için ürettiği, normalize edilmemiş skorlardır; değer ne kadar yüksekse bir sonraki token olma olasılığı o kadar yüksektir
- softmax: Logits’i 0–1 arası değerlere dönüştürür ve toplamı 1 olan bir olasılık dağılımına çevirir
- entropy: Olasılık dağılımının belirsizliğini veya rastgeleliğini gösterir; ne kadar yüksekse model bir sonraki token’dan o kadar az emindir
- perplexity: Modelin metne ne kadar “şaşırdığını” gösterir; ne kadar düşükse güven o kadar yüksektir
- n-gram: Ardışık n token’dan oluşan sekanstır;
"once upon a"bir 3-gram’dır - context window: Prompt ve üretilen çıktı dahil LLM’in tek seferde işleyebileceği maksimum token sayısıdır
Olasılık dağılımını doğrudan ayarlayan temel sampler’lar
- Temperature, LLM’in “yaratıcılık düğmesi” gibi çalışır
- Düşük temperature, en yüksek skorlu token’ları daha güçlü adaylar haline getirerek öngörülebilirliği artırır
- 0.7–1.0 gibi yüksek temperature, 3. veya 4. adayın da seçilebilmesine izin vererek çeşitliliği artırır, ancak hata olasılığını da yükseltir
- 1.0’ın üzerindeki çok yüksek temperature, Min-P gibi başka örnekleme yöntemleriyle birlikte kullanılmazsa çıktıyı kaba ve öngörmesi zor hale getirebilir
- Teknik olarak logits temperature değerine bölündükten sonra softmax uygulanır
- Presence Penalty, daha önce en az bir kez çıkmış token’lara sabit ceza uygular
- Görünme sayısından bağımsız olarak daha önce kullanılmış token’ların logits değerinden ceza değeri çıkarılır
- Daha iyi ceza stratejileri bulunduğundan genellikle önerilmez
- Frequency Penalty, token’ın görünme sayısıyla orantılı olarak cezayı artırır
- Bir token üç kez göründüyse logits
3 × frequency penaltykadar azaltılır - Aynı token tekrarlandıkça yeniden seçilme olasılığı kademeli olarak düşer
- Bir token üç kez göründüyse logits
- Repetition Penalty, hem prompt’ta hem de üretilen çıktıda görünen token’ları hedefler
- Pozitif logits ceza değerine bölünür, negatif logits ise ceza değeriyle çarpılarak daha da negatif hale getirilir
- Tekrar döngülerini kırmakta faydalıdır, ancak agresif değerlerde tutarlılık maliyeti doğurur
Tekrarlı örüntüleri engelleyen DRY
- DRY(Don't Repeat Yourself) basit kelime tekrarından daha geniş biçimde tekrarlı örüntüleri algılar
- Üretilen token sekansında n-gram tekrarlarını bulur ve bu örüntüyü devam ettirecek token’lara ceza verir
"the cat sat on the"gibi bir örüntü daha önce geçtiyse ve aynı akış yeniden başlarsa, daha önce ardından gelen sonraki token’ın seçilme olasılığını düşürür- Tekrar örüntüsü ne kadar uzunsa uygulanan ceza o kadar güçlü olur
- Başlıca parametreler ceza şiddeti olan multiplier, n-gram uzunluğuna bağlı artış oranı olan base, minimum ve maksimum n-gram uzunluğu, sequence breaker, range limit gibi değerlerdir
- Punctuation gibi sequence breaker’lar örüntü eşleşmesini sıfırlayabilir; verimlilik için yalnızca yakın tarihli metni dikkate alan aralık sınırı da vardır
- Yaratıcı yazı gibi tekrarlı ifadelerin doğal durmadığı alanlarda özellikle yararlıdır
Adayları kesip atan filtreleme sampler’ları
- Top-K, tüm vocabulary yerine yalnızca en iyi K token’ı bırakır
- K 40 ise yalnızca en olası 40 aday arasından seçim yapılır
- Geri kalan logits
-∞olarak ayarlanır ve softmax sonrasında pratikte olasılıkları 0 olur
- Top-P(Nucleus) sabit sayı yerine kümülatif olasılığı P eşiğini aşan en küçük aday kümesini bırakır
- P 0.9 ise üst adaylar kümülatif olasılık %90’a ulaşana kadar dahil edilir
- Model emin olduğunda aday sayısı az, belirsiz olduğunda daha fazla aday kalır
- En yüksek olasılıklı token korunarak her zaman en az bir token’ın kalması sağlanır
- Min-P, kalite eşiğini en yüksek olasılıklı token’a göre bir oran olarak belirler
- En yüksek olasılık 0.6 ve Min-P 0.1 ise eşik 0.06’dır
- En iyi adaya göre olasılığı çok düşük token’lar elenir
- Genellikle 1.0–1.2 gibi yüksek temperature değerleriyle birlikte kullanılır; Min-P değeri de 0.1 civarında çok düşük tutulur
- Top-K veya Top-P gibi tüm vocabulary’yi sıralamayı gerektirmediği için daha verimlidir
- Top-A, en yüksek olasılığın karesiyle orantılı bir eşik kullanır
- Model ne kadar eminse kare etkisiyle eşik o kadar yükselir ve adaylar büyük ölçüde azalır
- Min-P’den önce ortaya çıkan bir yöntemdir; teknik olarak Min-P doğrusal, Top-A ise kare tabanlıdır
- Epsilon Cutoff, sabit olasılık eşiğinin altındaki token’ları kaldırır
- Dağılımın özelliklerinden bağımsız olarak aynı ölçütü uygular
- Basit ve öngörülebilirdir, ancak Eta Cutoff kadar uyarlamalı değildir
Dağılım biçimini ve belirsizliği kullanan sampler’lar
- Top-N-Sigma, logits’in maksimum değerini ve standart sapmasını kullanarak istatistiksel bir eşik oluşturur
- Ölçüt
maksimum logit - N × standart sapmadır - Yalnızca dağılımın mutlak değerlerini değil, tüm skor dağılımının yayılımını da yansıtır
- Ölçüt
- Tail-Free Sampling(TFS) olasılık dağılımının eğriliğine bakarak uzun kuyruğun başladığı noktayı bulur
- Logits’i azalan sırada sıralayıp olasılıklara çevirdikten sonra ikinci farkların mutlak değerini hesaplar
- Eğriliğin kümülatif dağılımı eşiği aştıktan sonraki token’ları kaldırır
- Mutlak olasılık değerlerinden çok dağılımın biçimine odaklanır
- Eta Cutoff, tekil olasılıkları ve toplam entropy’yi birlikte kullanır
- Modelin emin olduğu düşük entropy durumlarında daha sıkı bir cutoff uygulanır
- Modelin belirsiz olduğu yüksek entropy durumlarında daha toleranslı bir cutoff uygulanır
- Eşik,
etailesqrt(eta) * exp(neg_entropy)değerlerinin minimumu olarak belirlenir
- Locally Typical Sampling, olasılığın kendisine değil ortalama surprisal’a ne kadar yakın olduğuna bakar
- Hem çok öngörülebilir token’ları hem de çok şaşırtıcı token’ları daha az “typical” kabul eder
- Token’lar surprisal deviation değeri küçük olandan büyüğe sıralanır ve
typical-pile tutulacak kümülatif olasılık miktarı belirlenir
- Quadratic Sampling, filtreleme değil, tüm logits dağılımını doğrusal olmayan biçimde dönüştürmedir
- En yüksek skorlu token’ı referans alarak diğer logits ile arasındaki farkı quadratic ve cubic terimlerle ayarlar
- Smoothing factor ayarlamanın şiddetini, smoothing curve ise dönüşüm biçimini kontrol eder
spozitifse dağılım daha sivri hale gelir;kpozitifse dağılımı düzleştirme yönünde çalışır
Öngörülebilirliği ve çeşitliliği kontrol eden gelişmiş yöntemler
- XTC(eXclude Top Choices) olasılıksal olarak etkinleşir ve en öngörülebilir seçenekleri kasıtlı olarak dışlar
- Etkinleşme olasılığını ve dışlama eşiğini parametre olarak kullanır
- Eşiği aşan üst adaylar arasındaki en düşük skorlu bir adayı hariç tutar ve geri kalan yüksek olasılıklı adayları kaldırır
- Düşük olasılıklı adayları kesen normal filtrelerden farklı olarak en bariz seçenekleri hedefler
- Mirostat, hedef surprisal’ı korumak için dinamik olarak ayarlanan bir geri bildirim yöntemidir
- Mevcut
muthreshold ile fazla şaşırtıcı token’ları filtreler - Token seçildikten sonra gerçek surprisal’ı hesaplar ve hedef değer
tauile karşılaştırır eta,mudeğerinin ne kadar hızlı ayarlanacağını belirleyen learning rate’tir- Güncelleme formülü
mu_{t+1} = mu_t - η × (surprisal_t - τ)şeklindedir - Metin üretiminin perplexity değerini sabit tutmaya çalışan özdenetimli bir yöntemdir
- Mevcut
- Dynamic Temperature Sampling, mevcut dağılımın entropy değerine göre temperature’ı değiştirir
- Düşük entropy’de çeşitlilik katmak için daha yüksek temperature kullanır
- Yüksek entropy’de çıktıyı odaklamak için daha düşük temperature kullanır
- Kullanıcı minimum temperature, maksimum temperature ve exponent ayarlar
- Hesaplama formülü
temperature = min_temp + (max_temp - min_temp) * (normalized_entropy ^ exponent)şeklindedir
Beam Search ve Contrastive Search
- Beam Search, birden çok aday sekansı paralel olarak tutar ve toplam olasılığı yüksek yolları arar
- Beam width kadar aday sekansı korur; her decoding step’te adayları genişletip yalnızca en iyi adayları bırakır
- Genellikle her aşamada
2kaday örnekleyerek tamamlanmış sekanslar vb. çıkarıldıktan sonra da yeterli adayın kalmasını sağlar - Skor, sekans içindeki tüm token’ların logprob toplamıdır
- Aynı girdi için deterministik olarak aynı çıktıyı üretir; maliyeti yüksektir ve daha iyi örnekleme yöntemleri bulunduğundan günümüzde pek kullanılmaz
- Contrastive Search, bağlama uygun yüksek olasılık ile tekrarlı örüntülerden kaçınmayı birlikte optimize eder
- Önce Top-K adayları seçer
- Mevcut context ile aday continuation’ın hidden representation’ını karşılaştırarak similarity tabanlı degeneration penalty hesaplar
- Nihai skor
score(x) = α * P(x) - (1-α) * sim(x, context)şeklindedir α, olasılık ile çeşitlilik arasındaki dengeyi ayarlar- Beam Search’e benzer şekilde yaygın kullanılmayan bir yöntemdir
Sampler uygulama sırasının sonucu nasıl değiştirdiği
- Gerçek LLM implementasyonlarında örnekleme teknikleri çoğunlukla sırayla uygulanır; bazı kütüphaneler istek bazında sıra değişikliğine izin verse de çoğu vermez
- Tipik pipeline şu sırayı izler
- Model raw logits üretir
- Dikkate alınmaması gereken token’lar filtrelenir veya yasaklanır
- Repetition, frequency, presence cezaları uygulanır
- DRY gibi örüntü tabanlı teknikler uygulanır
- Temperature scaling uygulanır
- Top-K, Top-P, Min-P gibi dağılım ayarlama teknikleri uygulanır
- Nihai olasılık dağılımından token örneklenir
- Temperature, implementasyona bağlı olarak cezaların ve post-softmax sampler’ların dışında en başta veya en sonda uygulanır
- Çoğu işte temperature önce uygulanır
- Yaratıcı yazıda ise genellikle en sonda uygulanır
- Her sampler, bir sonraki sampler’ın göreceği olasılık arazisini değiştirir
- Cezalar, daha önce kullanılmış token’ların peak’ini düşürür ve diğer adayları göreli olarak yükseltir
- Düşük temperature dağılımı keskinleştirir, yüksek temperature ise düzleştirir
- Top-K/P gibi filtreler düşük olasılıklı token’ları kaldırır ve kalan olasılıkları yeniden normalize eder
Sıra bağımlı etkileşimler ve kombinasyonlar
- Temperature → Filtering sırası, önce tüm dağılımı yeniden yapılandırır ve ardından filtreler
- Düşük temperature, filtrelemeden önce olasılık kütlesini az sayıda token’da yoğunlaştırır
- Yüksek temperature, olasılık kütlesini daha geniş alana yaydıktan sonra filtrelenmesini sağlar
- Filtering → Temperature sırası önce adayları keser; temperature yalnızca kalan token’lar arasındaki göreli olasılıkları ayarlar
- Yüksek temperature kullanılsa bile orijinal filtrede kaldırılan token’lar geri gelmez
- Top-K 40 ve temperature 1.5’te filtre önce uygulanırsa yalnızca başlangıçtaki ilk 40 token kalır
- Penalties → Temperature, önce tekrarlı token’ların olasılığını düşürür; ardından temperature bu ayarlamayı büyütür veya küçültür
- Yüksek temperature’da ceza etkisi fiilen silinebilir
- Düşük temperature’da ceza aşırı büyütülebilir
- Temperature → Penalties, cezaların temperature ile yeniden yapılandırılmış dağılım üzerinde çalışmasını sağlayarak daha dengeli ve öngörülebilir ceza etkileri yaratabilir
- DRY konuma duyarlıdır
- Pipeline’ın başlarında uygulanırsa tekrar önleme etkisi güçlüdür, ancak sonraki sampler’lar ceza almış token’ları yeniden yukarı çekebilir
- Sonlarda uygulanırsa önceki sampler’lar bazı adayları zaten elemiş olduğundan zayıflayabilir, ancak token seçiminin hemen öncesinde tekrara karşı son savunma hattı olur
- Birbirini tamamlayan kombinasyonlar da vardır
- Top-K + Top-P: Top-K sert bir sınır sağlar, Top-P ise modelin eminlik düzeyine uyum sağlar
- Temperature + Min-P: Yüksek temperature dağılımı düzleştirir, Min-P ise en iyi adaya göre kalite alt sınırı koyar
- Çatışan kombinasyonlar da vardır
- High Temperature + Low Top-K: Düşük Top-K adayları güçlü biçimde sınırlar ve temperature etkisinin büyük kısmını örter
- Birden fazla filtreleme yöntemini aynı anda kullanmak: Top-K, Top-P, Min-P, TFS birlikte kullanılırsa en kısıtlayıcı yöntem baskın hale gelip diğerlerini gereksiz kılabilir
- XTC + Top-A: İkisi de üst seçenekleri farklı yöntemlerle dışlamaya çalıştığından örnekleme alanını aşırı daraltabilir
Tokenizer’ın örnekleme alanını oluşturma biçimi
- Tokenizer, modelin ne için olasılık tahmin ettiğini ve sampler’ın hangi adaylarla uğraştığını belirler
- Alt-kelime algoritmaları, karakter düzeyindeki uzun sekans sorunu ile kelime düzeyindeki dev vocabulary ve unknown sorunu arasında denge kurar
- BPE(Byte Pair Encoding) karakter veya byte tabanlı vocabulary’den başlayıp eğitim corpus’unda en sık görülen bitişik symbol çiftlerini tekrar tekrar birleştirir
- İstenen vocabulary boyutuna ulaşana kadar birleştirmeyi sürdürür
- Örnek vocabulary boyutu olarak 32000 veya 128256 units verilir
- Standart BPE, boşluk ve noktalama işaretlerine göre pre-tokenization gerektirebilir; implementasyona göre whitespace işleme tutarlı olmayabilir
- SentencePiece, metni önceden bölmeden doğrudan Unicode karakter sekansları olarak ele alır
- Boşluğu token’ın bir parçası olarak encode edebilir
- Raw Unicode üzerinde çalıştığı için whitespace’i
U+2581ile açıkça encode ederek tokenization ve de-tokenization’ı reversible ve lossless hale getirebilir - İçeride BPE veya unigram language model yöntemini uygulayabilir
- Dil bağımsızlığı ve tersine çevrilebilirliği nedeniyle modern LLM’lerde popülerdir
Vocabulary boyutu, token sınırları ve nadir kelimelerin etkisi
- Tokenizer sabit bir vocabulary boyutuna sahiptir; büyük vocabulary daha fazla tam kelime içerir, küçük vocabulary ise alt-kelimelere daha çok dayanır
"sampling"veya"probability"tek token ise model tüm kavramın olasılığını tek seferde tahmin eder- Yaygın kalıplarda daha doğrudan ve öngörülebilir çıktı mümkün olur
- Nadir kelimelerde
<UNK>veya garip alt-kelime kombinasyonu sorunları doğabilir
"sampling",sampl+inggibi bölünürse model daha ince adımlarda tahmin yapar- Temperature gibi sampler’lar izin verirse
samplingyerinesamplera dönüşme ihtimali doğar - Nadir kelimeler parçalardan oluşturulabilir
- Common sub-word prefix’e takılı kalırsa daha az tutarlı veya stuck olmuş çıktılar oluşabilir
- DRY gibi cezaların daha kısa ve anlamı daha az belirgin sekansları izlemesi gerekir
- Temperature gibi sampler’lar izin verirse
- Aynı ifade tokenizer’a göre farklı biçimlerde parçalanır
"State-of-the-art",State+-+of+-+the+-+artolabilir; SentencePiece stilindeState+_of+_the+_artda olabilir- Sık geçtiyse tamamı tek token da olabilir
- Token sınırları DRY gibi n-gram tabanlı sampler’ları doğrudan etkiler
"once upon a time"4 token ise DRY 4-gram’ı kolayca algılar- Tek token ise çıktı rollback yapılmadıkça aynı şekilde ceza vermek zordur
- Nadir veya yeni kelimeler BPE ve SentencePiece’te bilinen parçalara ayrılabilir
<UNK>oluşturmak, sampler’ın dikkate alacağı anlamlı seçeneklerden birini eksiltir- Alt-kelime yaklaşımı parçaları yaratıcı biçimde birleştirebilir, ancak nadir kelime üretmek için birden fazla örnekleme adımı gerektiğinden tek bir known token’a kıyasla arada sapma olasılığı daha yüksektir
1 yorum
Hacker News yorumları
Bununla ilgili olarak, min_p makalemiz ICLR’a yapılan 12.000 başvuru arasında 18. oldu ve sözlü sunum için seçildi
https://iclr.cc/virtual/2025/oral/31888
Poster de oldukça ilgi gördü: https://iclr.cc/media/PosterPDFs/ICLR%202025/30358.png?t=174...
Sözlü sunumu buradan izleyebilirsiniz. Bu konuda Yoshua Bengio’ya laf atılan bir sahne var; ilk soru soran kişi de o oluyor. İkinci sunum yapan kişi 19:30 civarında başlıyor; sunum slaytları da var ve epey komik: https://iclr.cc/virtual/2025/session/31936
Makale: https://arxiv.org/abs/2407.01082
min_p yazarlarından biri olarak, şu anda genel amaçlı örnekleyiciler arasında Top N sigma’nın açık ara en iyisi olduğunu teyit edebilirim. Ayrıca temperature, şu ankinden çok daha yükseğe ayarlanabilir ve ayarlanmalı. min_p ya da top N sigma gibi teknikler kullanıldığında temperature 100 bile tamamen sorun değil
Bir de, makalenin sonunda yazarların önermediği top_k = 2 ve aşırı yüksek temperature birleşimi kendi başına çok ilginç. Yaklaşık her 10 kelimede bir yazım hatası yapıyor ama aynı zamanda epey ilginç bir yaratıcılık ortaya çıkıyor gibi görünüyor
Dallanma sayısının akıl almaz derecede büyük olduğunu ve düğüm genişletme maliyetinin de pahalı olduğunu biliyorum ama gerçekten arama yapılmaması bana hep tuhaf gelmiştir
Burada eksik kalan bir nokta, örnekleyicinin modelin iç durumuna erişememesi. Örnekleyici yalnızca çıktı dağılımına temel matematik uygular; bu dağılım teknik olarak biraz anlamsallık taşısa da, model kadar akıllı değilseniz onu çözemezsiniz
Burada açıklanan repetition penalty ya da DRY gibi örnekleyiciler için de aynı şey geçerli. Model kendini sayısız farklı biçimde tekrar edebilir ve bunların hepsini engellemenin tek yolu daha iyi eğitimdir; n-gram araması ya da klasik doğal dil işleme yöntemleri değil. Bütün delikleri parmaklarınızla kapatmaya çalışmak gibi; kaç parmağınız var ki?
Otoregresif süreci hack’leyerek Min-P gibi kolay toplanan meyvelerle iyileştirmeler ya da zekice hileler yapmak mümkün; ama amaç kötü bir modeli iyi bir modele dönüştürmekse, yön yanlış
Top n sigma 2024 ortasından beri, min_p ise 2023’ten beri var; buna rağmen hâlâ açık kaynak dışındaki, yani HF/vllm dışındaki dünyada bu yeniliklerin entegre edilmesini bekliyoruz. API sağlayıcılarının bilerek yavaş davranmasının nedeni, modelin fazla yaratıcı hâle gelmesi riskini üstlenmek istememeleri; ayrıca yüksek temperature’ın filigranlamayı bozma ihtimali de yüksek
Bir de, modele kendi örnekleme ayarlarını bildirmek çok kolay. Her token’da ya da her üretimde bu ayarları modele geri beslemek yeterli. Örneğin yapılandırılmış üretimle yapılabilir. Model kendi örnekleme ayarlarını kontrol edebilir ve çok az ek programlamayla “iç duruma erişebilir”. Artık o kodu model sizin yerinize de yazabilir
Yakın zamanda Ollama/llama.cpp için bir örnekleme kılavuzu da biraz yazdım; geri bildirimlere ve düzeltme önerilerine açığım: https://smcleod.net/2025/04/comprehensive-guide-to-llm-sampl...
Her şeyin iyi derlenmiş ve kolay anlaşılır biçimde açıklanmış olması hoşuma gitti; yeni denemelerin nerelerde etkili olabileceğini görmeye kapı açıyor
Örneğin neden kelimelerin tamamını token olarak kullanmıyoruz? Sınırlı bir “robot lehçesine” sahip bir “robot” yapılabilir. Yeni ya da nadir kelimeleri işleme yeteneği olmazdı; ama eğitim verisi ve girdi verisi değiştirilerek bu kelimeler mevcut sözlüğe çevrilebilir. Böylece çok daha küçük bir eşleme oluşur, kelimenin tam anlamıyla daha robotik olur ve kullanıcı da C-3PO gibi bu robotun ne tür yanıtları iyi vereceğine dair bir beklenti geliştirir
LLM’in yalnızca “sonraki token” değil de fikirler üretmesini sağlamaya yönelik bir girişimse, lojit vektörü üzerinde seçim yapma süreci o asıl fikri bozacak gibi duruyor. Fikir tamamlanmışsa, lojitler üzerinde örnekleme kullanmaya gerek olmamalı
Bu çerçevede örnekleme, çıktıya yakın bir düzeyde, yani “sonra söylenecek kelime nedir” seviyesinde gerçekleşmemeli
Birkaç hafta önce ilgili bir konu olan kısıtlı örnekleme üzerine etkileşimli bir yazı hazırlamıştım. Gerçi bu yazı çok daha kapsamlı
http://michaelgiba.com/grammar-based/index.html
LLM modeli tokenizasyonu örtük olarak yapabilir mi? Ayrı bir tokenizer oluşturmadan rastgele bir dizeyi kabul edip sonra sinir ağının onu tokenlara dönüştürmesini ve o ağın ağırlıklarını LLM’nin geri kalanıyla birlikte eğitmesini kastediyorum.
Bu one-hot vektörler doğrusal bir katmandan geçerek modelin gizli durum boyutuna sıkıştırılır. Örneğin token sözlüğü 10 bin–100 bin öğe olabilir, ama gizli durum boyutu 500–2.000 civarında olabilir. Modelin geri kalanının tamamı, içinde çeşitli üst düzey kavramların bulunduğu gizli durum uzayında[1] çalışır.
Tokenizasyonu kaldırırsanız, encoder’ın bizim aşina olduğumuz gizli durum uzayına ulaşmak için daha fazla iş yapması gerekir. Eşleşmemiş byte’lardan gizli uzaya daha verimli bir kodlama bulabilir belki, ama çoğu modelde tokenizasyonun zaten eğitim kümesinin istatistiksel özelliklerine dayandığı düşünülürse bu pek olası görünmüyor. “anti” ya da “ism”i modele vermeden önce otomatik olarak tek bir token halinde birleştirmezseniz, modelin alt katmanlarındaki attention head’lerin aynı işi yapması gerekir.
Eskiden modeller karakter dizileriyle eğitiliyor, verimlilik nedeniyle tokenizasyona geçiliyordu; bu yüzden bu ödünün muhtemelen buna değmeme olasılığı yüksek.
[0] Token ID listelerini öylece veremezsiniz. Token 123.25’in matematiksel bir anlamı yoktur; token ID’sini artırıp azaltmanın da bir anlamı yoktur.
[1] Performans iyileşir, ama yorumlanabilirlik daha zorlaşır. Özellikle gizli uzaydaki baz vektörleri kelimelerle ya da kavramlarla doğrudan eşleşmez; tüm kavramlar bir tür N boyutlu halka üzerinde var olur.
Sadece birkaç yıl önce icat edilmiş teknikleri kullanacak şekilde yöntemleri güncellemeyi modern diye adlandırmak neredeyse okuryazarlık meselesi. Modernse neye göre; klasik LLM sampling’e mi?
modern, adj. designed and made using the most recent ideas and methods
— https://dictionary.cambridge.org/us/dictionary/english/moder...
Bu yazının açıkladığı şey tam olarak bu tanıma uyuyor. Son yaklaşık 7 yılda bu alanda çok gelişme oldu; örneğin GPT 1, 2, 3 bugünün ölçütlerine göre kesinlikle çok eski ve yukarıdaki tanım anlamında modern değil.
ChatGPT yalnızca kitlesel dönüm noktasıydı. Ondan da önce akıllı telefon klavyeleri 10 yıldır LLM kullanıyordu.
Gerçekten faydalı bir belge. Açıklamalar çok net, kapsadığı alan da geniş.
Kimin yazdığını bilen var mı? Yazar belirtilmemiş ve ücretsiz bir Markdown pastebin’e yüklenmiş.
DRY tekrar cezası bölümü ilginçti. Ben çoğu zaman LLM’nin girdiyi bilinçli olarak aynen kopyalayıp çıktı vermesini isterim. Örneğin uzun bir konuşmayı özetlerken, argümanı en iyi gösteren birebir alıntıları istemeyi tercih ederim. Çünkü sonradan özgün metinde arayıp doğrulama yapmak kolay olur.
DRY cezası bu hedefin tersine çalışacak gibi görünüyor.