Hiç, gelecek hakkında tatlı sözler fısıldayan yapay zekanın, değiştirmesi gereken dünyayı gerçekten anlayıp anlamadığını merak ettiniz mi?
Olay şu: Kocaman yapay zeka beyinleri inşa ediyoruz ve bunlar metinlerden öğreniyor. Peki ya metnin kendisi bir bilmeceyse? İtalyanca için, bu bilmece sürekli, sinir bozucu bir engel olmuş ve araştırmacıların çoğu – İngilizcenin düz ovlarına alışmış olanlar – bunu fark bile etmemiş. Bu, bir astronota sadece kara tabanlı hareket talimatları kullanarak yüzmeyi öğretmeye benziyor. Tamamen faydasız.
Bu sadece küçük bir teknik aksaklık, yapay zekanın devasa makinesindeki kayan minik bir dişli değil. Hayır, bu İtalyanca gibi diller için temel bir platform kayması, yapısal derin bir sorun ki, şimdiye kadar bu güçlü modellerin gerçekte neyi kavrayabileceğini sistematik olarak sınırlamış. Ve Fabio Angeletti’nin bunu nasıl ele aldığı, özel Dante-2B modeli için özel bir tokenizer inşa ederek, gerçek zekanın sadece ölçekle ilgili olmadığını; incelikle, verinin dilini konuşmakla ilgili olduğunu gösteren bir ustalık dersi.
Sessiz Sabotajcı: Neden İngilizce Tokenizer’lar İtalyancada Başarısız Oluyor?
Şunu hayal edin: Bir tokenizer’ın görevi, metni dil modelinin çiğneyebileceği lokma lokma parçalara, yani token’lara ayırmak. Basit görünüyor, değil mi? Ekmek dilimlemek gibi. Ama İtalyanca sadece dilimlenmiş ekmek değil; gizli katmanları olan narin bir hamur işi ve standart İngiliz dilimleme yöntemi onu paramparça ediyor.
Suçlu mu? Mütevazı kesme işareti (apostrof). İngilizcede, kısaltmalar (“it’s“) veya iyelikler (“Sarah’s“) için kullanılan titiz küçük bir işarettir. Anlam hala kristal netliğinde olsa bile, çoğunlukla onsuz da idare edebilirsiniz. Ama İtalyancada, bu kelimeleri tek bir kelimede birleştiren bir ses düşmesidir (elision). “L’intelligenza” “L” + “intelligenza” değil; tek bir kavramdır. “Dell’algoritmo” sadece parçalar değil; tek, ayrılmaz bir ifadedir. İngilizce eğitilmiş bir tokenizer “dell’algoritmo” gördüğünde, onu üçe ayırır: [“dell”, “‘“, “algoritmo”]. Yapay zeka daha sonra bozuk bir artikel, bir noktalama işareti ve bir isim görür. Bu, bir besteciden senfoniyi tahmin etmelerini isteyip onlara rastgele notalar verdiğinizde, ondan bir senfoniyi anlamasını beklemek gibi. Model, anlamı yeniden yapılandırmak için aşırı çalışmak, değerli bilişsel enerjiyi harcamak zorunda kalır; sadece tokenizer tarafından kırılan anlamı.
Ve sonra aksanlar var. Ah, aksanlar! İtalyanca altı aksanlı sesli harfle dans eder: à, è, é, ì, ò, ù. “Perché” (neden/çünkü), “è” (dir), “più” (daha fazla), “già” (zaten), “così” (çok) gibi kelimeler tamamen yaygındır. En yaygın bayt seviyesi tokenizer’larda, bunlar karakter olarak görülmez. Hayır. İki bayt olarak işlem görürler. “È”, 0xC3 ve 0xA8 olur. Algoritma, bu bayt çiftlerini tek bir token’da birleştirecek kadar yeterli görmediği sürece – ki bu, diğer birleşmeleri çözerken büyük bir istek – model bu temel dilsel işaretleri sadece… anlamsız bayt parçacıkları olarak işler. Bu ince bir dil körlüğü şeklidir.
“GPT, LLaMA, Mistral’ınkiler dahil her büyük İngilizce tokenizer, apostrofları ayırma noktaları olarak ele alır. İngilizce için tasarlandılar ve orada doğru davranış budur. Ancak onlara İtalyanca metin beslediğinizde, ‘dell’algoritmo’ üç ayrı tokene dönüşür: [“dell”, “‘“, “algoritmo”]. Model bozuk bir artikel, bir noktalama işareti ve bir isim görür – halbuki İtalyan okuyucu tek, ayrılmaz bir ifade görür.”
İlk Girişim: Sinir Bozucu Bir Yanlış Başlangıç
Angeletti’nin özel bir tokenizer için ilk denemesi, GPT-2 ve LLaMA gibi devasa modelleri güçlendiren aynı şablon olan ByteLevel kodlamayı kullandı. İngilizce için sağlam bir yaklaşımdı, ancak İtalyanca deneyi… bir felaketti. Çıktı garip görünüyor, aksanlı karakterleri ò ve ó gibi tuhaf semboller olarak gösteriyordu – saf bayt seviyesi anlamsızlık, İtalyanca değil. Daha da kötüsü, özel kelime hazinesi sadece 23 tane İtalyanca aksan içeren tokene sahipti. Sıfır apostrof tokeni. Verimlilik oranı – token başına düşen kelime oranı – 2.04 gibi sefil bir düzeydeydi, LLaMA’nın standart İtalyanca performansı olan yaklaşık 1.85’ten daha kötü. Özel yapay zekası aktif olarak daha kötü durumdaydı.
Şimdi düşünebilirsiniz, ‘Sadece daha fazla veri üzerinde eğitin!’ Ve evet, 100.000 belge (sadece 2.6 GB) 64.000 token’lık bir kelime hazinesi için yeterli değildi. Tokenizer, yaygın birleşmeleri öğrenmek için yeterince İtalyanca metin görmemişti, bu da “implementazione” gibi kelimelerin tek bir parça yerine beş parçaya ayrılmasına neden oluyordu. Ancak sorun veri hacminden daha derindeydi. ByteLevel kodlama, tokenizer’ın sadece 0xC3 + 0xA8’in “è” olduğunu anlamak için değerli “birleşme bütçesini” boşa harcamasını zorlar. Milyonlarca aksanlı karakter ve binlerce İtalyanca kelime ile, temel bayt yeniden yapılandırması için binlerce değerli birleşme boşa harcanıyordu.
Bu gerçekle yüzleşme anıydı. Hatalı bir stratejide ısrar etmek mi, yoksa tamamen yön değiştirmek mi? Angeletti ikincisini seçti.
Büyük Kaçış: Metaspace Kurtarıcı Olarak Sahneye Çıkıyor
Harika dönüş? ByteLevel kodlamayı tamamen Metaspace için terk etmek. Bu Unicode tabanlı yaklaşım her şeyi değiştiriyor. Ham baytlar yerine, her kelimenin başına bir boşluk karakteri ekleyerek başlar. Bu basit numara, daha akıllı bir kodlama stratejisiyle birleştiğinde, tokenizer’ın kelime sınırlarını daha iyi belirlemesine ve en önemlisi, aksanlı karakterler ve birleşmiş kelimeler için gerçek token’lar oluşturmasına olanak tanır. Bu, tokenizer’a sadece kuzeyi belirsiz gösteren bir pusula vermek yerine, İtalya’nın dilbilimsel bir haritasını vermek gibidir.
Bu sadece yapay zeka için İtalyanca metnin güzel görünmesini sağlamakla ilgili değil. Modelin dili nasıl algıladığını ve öğrendiğini temelden değiştirmekle ilgili. “L’intelligenza”yı tek bir birim olarak ele alarak, yapay zeka, o sinir bozucu, enerji tüketen yeniden yapılandırma adımı olmadan nihayet dilbilgisel rolünü kavrayabilir. Her aksan, her ses düşmesi, artık anlamsız bir bayt anormalliği değil, anlamlı bir sinyal. Yeni Metaspace tokenizer’ının verimlilik oranı mı? Çok daha sağlıklı bir 1.6. Bu, daha az token’a daha fazla anlam yüklenmesi anlamına geliyor, yapay zekanın İtalyanca metni çok daha yüksek verimlilik ve doğrulukla işlemesi anlamına geliyor. Bu, İtalyanca dil modelleri için yepyeni bir anlayış seviyesinin kilidini açan sismik bir değişim.
Gerçek Etki: Sadece İtalyanca Konuşmanın Ötesinde
Bu sadece akıcı İtalyanca sohbet edebilen bir yapay zeka yaratmakla ilgili değil. Bu, yapay zekanın yekpare bir varlık olmadığını; devasa, çeşitli bir ekosistem olduğunu ve her dilin kendine özgü zorlukları ve fırsatlarıyla geldiğini kabul etmekle ilgili. Angeletti’nin burada yaptığı çalışma, gerçek yapay zeka ilerlemesinin derin, alana özel anlayış gerektirdiğinin güçlü bir hatırlatıcısıdır. Bu, insan dilini taklit edebilen bir yapay zeka ile, kendi koşullarında gerçekten kavrayabilen bir yapay zeka arasındaki farktır.
Bunu galaksi için evrensel bir çevirmen inşa etmek gibi düşünün. Her uzaylı türü için aynı temel firmware’i kullanamazsınız. Her birinin kendi sesleri, kendi sözdizimi, kendi kültürel bağlamı vardır. Angeletti’nin tokenizer’ı, galaksinin İtalyan sektörü için özel dilsel arayüzü geliştirmek gibidir. Bu, yapay zekanın yüzeysel anlayışın ötesine geçmesini ve insan dilinin tüm görkemli formlarının zenginliği ve karmaşıklığıyla etkileşim kurmasını sağlayan bulmacanın hayati bir parçasıdır.
Gelecek sadece daha büyük modellerle ilgili değil; daha akıllı modellerle ilgili. Ve daha akıllı olmak daha kapsayıcı, bizim insanlar olarak iletişim kurduğumuz güzel, karmaşık çeşitliliğe daha duyarlı olmak anlamına gelir. İşte bu şekilde bize sadece hizmet eden değil, bizi gerçekten anlayan yapay zeka inşa ederiz.