Yapay zeka ve dil modeli uygulamalarında performansın kilit noktalarından biri olan tokenizasyon işlemi, Perplexity AI ekibi tarafından baştan sona yeniden tasarlandı. Rust programlama dili kullanılarak sıfırdan geliştirilen Unigram tokenizer, CPU kullanımını beş ila altı kat azaltırken, yanıt sürelerinde de gözle görülür iyileşme sağladı. Üstelik bu geliştirme açık kaynak olarak paylaşıldı ve alanında önemli bir referans olarak gösteriliyor.
Bu atılım, özellikle küçük dil modelleri ve yeniden sıralama sistemlerinde tokenizasyonun yarattığı darboğazı aşmayı hedefliyor. Büyük dil modellerinde GPU hesaplama maliyetleri ön planda olsa da, küçük modellerde tokenizasyon hâlen CPU tarafında önemli bir zaman ve kaynak tüketimine neden oluyor. Perplexity’nin geliştirdiği yeni tokenizer, XLM-RoBERTa modeli gibi 250 bin kelimelik Unigram sözlüğü kullanan sistemlerde performansı ciddi oranda artırıyor.
Unigram tokenizasyon yöntemi, 2018’de Kudo tarafından ortaya konan ve SentencePiece gibi araçlarda kullanılan, en olası yolun seçilmesine dayanan bir algoritma. Bu yöntemde, her kelime parçası belirli bir olasılık değeri taşır ve tokenizer, en yüksek toplam olasılığa sahip parçalama yolunu seçer. Bu seçim süreci, 1967’de geliştirilen dinamik programlama algoritması Viterbi aracılığıyla yapılır. Buradaki zorluk, her metin baytı için büyük bir kelime hazinesi trie yapisini hızlıca taramak ve en uygun segmentasyonu bulmaktır.
Perplexity AI’nin eski tokenizasyon sisteminde, özellikle Hugging Face’in Rust tabanlı tokenizers kütüphanesinde, gereksiz belleğe erişimler ve karmaşık yapılar nedeniyle ciddi performans kaybı yaşanıyordu. Örnek olarak, 512 token uzunluğundaki girişlerde binlerce gereksiz bellek tahsisi ve her byte için karmaşık hash map taraması yapılıyordu. Bu da CPU’da tampon bellek sorunlarına ve gecikmelere yol açıyordu.
Perplexity’nin ilk olarak yaptığı şey, bu aşırı bellek tahsislerini ortadan kaldırmak oldu. Sadece bu değişiklikle p50 gecikmeyi 326 mikro saniyeden 155 mikro saniyeye indirdiler. Ardından esas iyileştirmeler, token trie yapısının tamamen değişmesiyle geldi. Geleneksel hash map yapısı yerine, çok daha hızlı erişim sağlayan çift dizili trie (double-array trie) kullanıldı. Bu yapı, tüm kelime hazinesini sıralı tamsayı dizilerinde depolayarak, tek bir arama adımında hızlıca ilerlemeye imkan tanıyor.
Bu geliştirme, işlem süresini yarıdan fazla azaltarak p50 gecikmeyi 68 mikro saniyeye çekti ve orijinal koda göre yaklaşık 5 kat daha hızlı çalışmasını sağladı. Bunun ardından, her trie düğümünün içinde geçerli baytların bitmap yöntemiyle kontrol edilmesi ve 64 baytlık CPU önbellek satırı boyutunda paketlenmesiyle işlem adımları daha da hızlandı. Bu optimizasyon, işlem sırasında gereken bellek erişimini azalttı ve CPU önbellek kullanımını artırdı.
Son olarak, işletim sistemi seviyesinde 2 MB boyutunda büyük sayfa desteğinin getirilmesi, bellek yönetimini iyileştirdi ve bellek adresleme tablosu gezintilerinde ciddi zaman tasarrufu sağladı. Bu sayede özellikle uzun girdi metinlerinde, CPU önbellek yarışması azaltılarak maksimum verim elde edildi.
Tüm bu adımların bir araya gelmesiyle, Perplexity AI’nin tokenizasyon algoritması hem işlem süresinde hem de CPU tüketiminde şaşırtıcı sonuçlar ortaya koydu. Özellikle yeniden sıralama gibi çok sayıda küçük modele sahip sistemlerde, tokenizasyonun darboğaz olmaktan çıktığı gözlemlendi. Bu da kullanıcıların daha hızlı yanıt almaları ve altyapı maliyetlerinin düşmesi anlamına geliyor.
Yeni geliştirilen tokenizer’ın kodları hem açık kaynak olarak sunuldu hem de gerçek üretim ortamlarında test edilerek doğrulandı. Perplexity AI, bu teknolojinin benzer NLP tabanlı uygulamalarda geniş çapta kullanılmasının performans iyileştirmeleri için kritik önemde olduğunu vurguluyor. Gelecekte, bu tür optimizasyonların küçük ve orta ölçekli modellerin yaygınlaştığı yapay zeka uygulamalarında hız ve verimlilik açısından standart haline gelmesi bekleniyor.
Sonuç olarak, dil modeli altyapılarında dikkat edilmesi gereken bir diğer önemli unsurun tokenizasyon olduğuna dikkat çeken bu çalışma, hem akademik hem de endüstriyel uygulamalarda önemli bir referans olarak öne çıkıyor. CPU üzerinde çalışan katmanların optimize edilmesi, yapay zekanın yaygınlaşmasında yeni fırsatlar sunuyor ve bu tip çalışmalar, teknoloji dünyasında hızla karşılık buluyor.
📎 Kaynak: marktechpost.com



