LLM’ler Sonraki Kelimeyi Nasıl Seçer?
Bir yapay zekâyla sohbet ederken yanıt genellikle biri yazıyormuş gibi parça parça görünür. Bunun arkasındaki süreç, göründüğünden daha basittir. Büyük dil modeli, yani LLM, küçük bir işlemi tekrar tekrar yapar: o ana kadarki metne bakar ve sırada ne gelebileceğini tahmin eder. Bu yazıda bu tahminin nasıl yapıldığını göreceğiz.
Öncelikle modeller harfleri veya tam kelimeleri okumaz. tokenları okurlar. Token, küçük bir metin parçasıdır. Çoğu zaman önündeki boşlukla birlikte kısa bir kelime, bazen uzun bir kelimenin parçası, bazen de tek bir semboldür. Metnin nasıl ayrıldığını görmek için aşağıya bir şeyler yazın.
GPT-4o tarafından kullanılan o200k_base tokenizerının gerçek tokenları. Diğer modeller farklı tokenizerlar kullandığı için sayılar oldukça değişebilir. Nokta (·) boşluğu, ×2 ise bir karakterin iki tokena bölündüğünü gösterir.
Yaygın İngilizce kelimeler genellikle tek bir tokena karşılık gelir. Uzun veya nadir kelimeler parçalara, sayılar küçük rakam gruplarına ayrılır; birçok emoji de birden fazla token gerektirir. Bu örnekte Türkçe cümle, İngilizce cümleden daha fazla token kullanır. Farklı tokenizerlar aynı metni farklı böler; bu yüzden sayılar dillere ve modellere göre değişir. Bu önemlidir, çünkü bir model aynı anda sınırlı sayıda token okuyabilir ve birçok yapay zekâ hizmeti token başına ücret alır.
Şimdi asıl fikre gelelim. Model her adımda bildiği her tokena bir olasılık verir. Tek bir yanıt yerine, her biri bir yüzdeyle ifade edilen olasılıklar listesi oluşturur. Aşağıdan bir cümle seçip en olası sonraki tokenlara bakın.
- mat31%
- floor14%
- couch9.0%
- bed8.0%
- edge5.0%
- table4.0%
- chair3.5%
- ground3.0%
- roof2.5%
- sofa2.0%
Fikri göstermek için elle belirlenmiş örnek olasılıklar. Gerçek bir model, sözlüğündeki her token için bir değer üretir.
Fransa örneğinde bir token neredeyse tüm olasılığı alır. Yemek örneğinde ise olasılıklar daha dağınıktır. Gerçek bir model, eğitim metinlerinden örüntüler öğrenir ve mevcut metni kullanarak sırada ne geleceğini tahmin eder. Modelin kendisi bilgi aramaz; ancak bir sohbet botu bilgi aramak için araçlar da kullanabilir.
Model her zaman en olası tokenı seçseydi, aynı soruya neredeyse hep aynı yanıtı verirdi ve metinleri çoğu zaman tekdüze ve tekrarlı olurdu. Bu yüzden birçok uygulama, olasılıklara göre rastgele bir token seçmesine izin verir. temperature adlı ayar, bu seçimin ne kadar cesur olacağını belirler. Düşük temperature olası tokenları daha da olası hale getirir. Yüksek temperature ise dağılımı düzleştirir; böylece alışılmadık tokenlar daha sık seçilir. Kaydırıcıyı hareket ettirip birkaç kez örnekleyin.
- mat38%
- floor17%
- couch11%
- bed9.8%
- edge6.1%
- table4.9%
- chair4.3%
- ground3.7%
- roof3.0%
- sofa2.4%
Modelin sonraki tokenı 20 kez seçmesi için 20 kez örnekle düğmesine basın.
Örnek olasılıklar. Basit tutmak için bu demo yalnızca gösterilen 10 tokenı kullanır. T > 0 olduğunda her p olasılığı p^(1/T) değerine dönüştürülür ve toplamları %100 olacak şekilde ölçeklenir. T = 0 olduğunda demo en olası tokenı seçer.
Aynı sorunun her seferinde farklı bir yanıt alabilmesinin nedeni budur. Düşük temperature seçimleri daha az rastgele hale getirir; yüksek temperature daha fazla çeşitlilik sağlar. Ancak rastgeleliğin azalması, kodun doğru olacağını veya bilgilerin gerçek olacağını garanti etmez.
Rastgele seçimin küçük bir riski vardır. Çok düşük olasılıklı tokenlar da ara sıra seçilebilir ve tek bir tuhaf token, cümleyi bambaşka bir yöne götürebilir. Yaygın iki ayar, listenin düşük olasılıklı ucunu keser. Top-k yalnızca en olası k tokenı tutar. Top-p ise toplam olasılığı en az p değerine ulaşan, en olası tokenlardan oluşan en küçük kümeyi tutar.
- pizza56%
- pasta22%
- sushi22%
- chicken–
- definitely–
- probably–
- steak–
- Mexican–
- ice–
- tacos–
Yalnızca gösterilen 10 tokenı kullanan örnek olasılıklar.
Top-p duruma uyum sağlar. Modelin emin olduğu durumlarda bir veya iki token yeterlidir. Emin olmadığında ise daha fazla token seçenekler arasında kalır. Birçok yapay zekâ aracı temperature, top-k ve top-p ayarlarını değiştirmenize; bazıları da birkaçını aynı anda kullanmanıza izin verir.
Şimdi hepsini birleştirelim. Tam bir yanıt yazmak için model aynı adımları tekrarlar: mevcut metni oku, her tokena bir olasılık ver, birini seç, metne ekle ve yeniden başla. Uzun bir yanıttaki her token, birbiri ardına bu şekilde üretilir.
- there58%
- in21%
- ,9.0%
- a4.0%
Örnek olasılıklar. Burada model her zaman en olası tokenı seçer; buna greedy decoding denir. Sampling kullanılsaydı başka bir dala ilerleyebilir ve cümlenin devamı değişebilirdi.
Bir LLM böyle yazar. Olası bir sonraki tokenı tekrar tekrar seçer. Bu süreç, en bilinen sorunlarından birini de açıklar. Modelin temel amacı gerçekleri kontrol etmek değil, metni olası bir şekilde sürdürmektir. Bir tokenın yüksek olasılığa sahip olması, yanıtın doğru olduğu anlamına gelmez. Kendinden emin ama yanlış bir yanıt da olası bir devam gibi görünebilir. Buna halüsinasyon denir.
Bu içerik size yardımcı olduysa bana bir kahve ısmarlayabilirsiniz.
yazılım, tasarım ve yapay zekâ üzerine etkileşimli yazı ve kurslardan haberdar olmak için bültene katılabilirsiniz. Ayda en fazla birkaç e-posta alırsınız.