Neden Bir Çeviriye İhtiyaç Var?

Yapay zekanın "dili anladığını" söylediğimizde aslında ufak bir yalan söyleriz. Bir dil modeli ne harfleri ne kelimeleri ne de cümleleri bizim anladığımız anlamda görür. Onun dünyasında her şey sayıdır. Tıpkı bir hesap makinesinin yalnızca rakamlarla iş görmesi gibi, modern yapay zeka sistemlerinin içinde dönen tek şey de uçsuz bucaksız sayı dizileridir. Demek ki ortada çözülmesi gereken temel bir problem var: insanın yazdığı bir metni, makinenin işleyebileceği sayılara nasıl çeviririz?

Bu çeviri kulağa mekanik gelse de işin asıl zorluğu mekanik kısımda değil. Bir kelimeyi rastgele bir sayıya eşlemek kolaydır; sözlükteki her kelimeye bir numara verir, işi bitirirsiniz. Ama bu yöntem anlamı tamamen çöpe atar. "Kral" kelimesine 4172, "kraliçe" kelimesine 9038 numarasını verseniz, bu iki sayı arasında o iki kavramın akrabalığına dair tek bir iz bile kalmaz. Asıl mesele, çeviriyi öyle bir yapmaktır ki anlam da metinle birlikte yolculuk etsin.

Bu yazıda söz konusu çevirinin üç temel taşını adım adım kuracağız: önce metni parçalara ayıran tokenizasyonu, ardından her parçaya anlam yükleyen embedding'leri, en sonunda da bu anlamların içinde yaşadığı vektör uzayını ele alacağız. Amacımız, modern yapay zekanın kalbindeki bu sessiz mekanizmayı hiç matematik geçmişi gerektirmeden anlaşılır kılmak.

Tokenizasyon: Metni Lokmalara Bölmek

Çevirinin ilk adımı, metni yönetilebilir parçalara bölmektir. Bu parçalara token denir. Bir token çoğu zaman tam bir kelime değildir; bazen bir kelimenin parçası, bazen bir ek, bazen de yalnızca birkaç harftir. Modeli besleyen sistem, gelen metni bu token'lara ayırır ve her birine sözlüğündeki sıra numarasını verir. Belki de en sade benzetme yemektir: bir cümleyi olduğu gibi yutamazsınız, önce ısırıp lokmalara ayırırsınız. Tokenizasyon da modelin metni sindirilebilir lokmalara böldüğü adımdır.

Peki neden tam kelimeler yerine bu tuhaf alt-parçalar kullanılıyor? Çünkü dünyadaki tüm kelimeleri tek bir sözlüğe sığdırmak imkânsızdır. Yeni kelimeler, yazım hataları, isimler ve teknik terimler sonsuza kadar üretilebilir. Bunun yerine modeller, sık geçen parçalardan oluşan sabit boyutlu bir kelime dağarcığı kullanır. "Kitaplıklarımızdan" gibi uzun bir kelime, model tarafından "kitap" ve onu izleyen ekler gibi tanıdık parçalara bölünebilir. Böylece daha önce hiç görmediği bir kelimeyi bile bildiği parçalardan yeniden kurabilir; tıpkı tanımadığınız bir kelimeyi hecelerine ayırarak okuyabilmeniz gibi.

Bu bölme işi masum görünür ama sonuçları derindir. Bir metnin kaç token'a bölündüğü doğrudan maliyeti, hızı ve modelin tek seferde göz önünde tutabileceği bağlamın uzunluğunu belirler; çünkü modeller metni token sayısıyla ölçer. Üstelik token sınırları her dilde aynı verimlilikte düşmez. İngilizce için tasarlanmış birçok tokenizer, Türkçe gibi sondan eklemeli dillerde kelimeleri anlamla ilgisi olmayan noktalardan parçalar; bu da aynı şeyi söylemek için daha fazla token harcanması demektir. Yani tokenizasyon, çoğu kişinin sandığının aksine teknik bir ayrıntı değil, ürün kalitesini sessizce belirleyen temel bir tasarım kararıdır.

Embedding: Bir Token'a Anlam Yüklemek

Token kimlikleri anlam koordinatı değil, tanımlayıcıdır. Model her kimliği öğrenilmiş bir giriş vektörüne eşler; token bağlam içinde işlendikçe temsili değişir. Ayrı bir cümle veya belge embedding modeli ise bir pasajı arama için tek vektöre dönüştürebilir. “Embedding” sözcüğünün bu iki kullanımı ilişkilidir, ancak birbirinin yerine geçmez. Google'ın embedding rehberi basit statik vektörlerle daha zengin temsiller arasındaki farkı açıklar.

Vektör değerleri insanın okuyacağı etiketler olarak atanmaz, eğitim sırasında öğrenilir. Benzer bağlamlar yararlı geometrik ilişkiler üretebilir; ancak tek bir koordinat genellikle “kraliyet” veya “canlılık” diye okunamaz. Kelimenin anlamı bağlama göre de değişir: finans belgesindeki “banka”, nehir kıyısından farklıdır. Statik kelime vektörü kelime başına tek temsil verirken bağlamsal modeller aynı kelimenin kullanımını farklı temsil edebilir.

Bunu basit bir benzetmeyle düşünelim. Diyelim ki her kelimeyi birkaç eksende puanlıyoruz: ne kadar "canlı", ne kadar "kraliyetle ilgili", ne kadar "erkeksi mi dişil mi". "Kral" yüksek kraliyet, yüksek erkek alır; "kraliçe" yüksek kraliyet, yüksek dişil; "muz" ise her üçünden de düşük puan alır. Gerçek embedding'lerde bu eksenler yüzlercedir ve hiçbiri bizim koyduğumuz kadar temiz etiketli değildir; ama fikir aynıdır. Her kelime, anlamını oluşturan özelliklerin bir koordinat listesine dönüşür.

Vektör Uzayı: Bir Anlam Haritası

Her kelimeyi bir sayı listesine, yani koordinatlara çevirdiğimize göre artık her kelimeyi bir noktaya benzetebiliriz; tıpkı bir haritadaki bir şehrin enlem ve boylamla işaretlenmesi gibi. İki sayıyla iki boyutlu bir harita, üç sayıyla üç boyutlu bir uzay kurabiliriz. Embedding'ler yüzlerce sayı içerdiğinden, kelimelerin yaşadığı yer yüzlerce boyutlu bir uzaydır. Bunu gözümüzde canlandıramayız, ama mantık tıpatıp aynıdır: her kelime, bu devasa uzayda kendine ait bir konuma sahip bir noktadır. İşte bu uzaya vektör uzayı denir.

Bu haritanın güzelliği, üzerindeki konumların rastgele olmamasıdır. Embedding'ler iyi öğrenildiğinde anlamca yakın kelimeler haritada da birbirine yakın düşer. "Kral", "kraliçe", "taht" ve "saray" bir mahallede toplanırken; "muz", "elma" ve "çilek" bambaşka bir mahallede kümelenir. Anlamın kendisi fiziksel bir yakınlığa dönüşmüştür. Coğrafi bir haritada birbirine yakın şehirler çoğu zaman benzer iklimi paylaşır; bu anlam haritasında da birbirine yakın noktalar benzer anlamlar taşır.

Klasik statik kelime embedding örnekleri, bazı ilişkilerin vektör uzayında yön olarak görünebildiğini gösterir. “Kral − erkek + kadın ≈ kraliçe” örneği belirli embeddingler için bir gösterimdir; her model veya dilde geçerli kural değildir. Bu tür analojiler eğitim verisindeki kalıp yargıları da yansıtabilir. Geometrinin her zaman böyle davranacağını varsaymak yerine görevinizle ilgili ilişkileri test edin.

Anlamsal Benzerlik: İki Anlamın Arasındaki Açı

Kelimeler bir haritada noktalara dönüştüğüne göre, artık çok güçlü bir soru sorabiliriz: iki kelime ne kadar benzer? Bunu ölçmek için iki noktanın ne kadar "aynı yöne baktığına" bakarız. En yaygın yöntem kosinüs benzerliğidir. İsmi korkutucu gelse de fikri sadedir: her vektörü, uzayın merkezinden o noktaya uzanan bir ok gibi düşünün. İki ok aynı yöne işaret ediyorsa, temsil ettikleri anlamlar da benzerdir. Oklar arasındaki açı küçüldükçe benzerlik artar.

Kosinüs benzerliği tam olarak bu açıyı bir sayıya çevirir. İki ok birebir aynı yöne bakıyorsa benzerlik 1'e yakın olur; tamamen ilgisiz, yani dik açıyla duruyorlarsa 0'a; zıt yönlere bakıyorlarsa -1'e yaklaşır. Önemli bir incelik şu: kosinüs benzerliği okların uzunluğunu değil yalnızca yönünü dikkate alır. Yani bir kavram metinde çok sık geçtiği için "daha uzun" bir vektöre sahip olsa bile benzerlik kararı bundan etkilenmez; yalnızca anlamın yönü konuşur.

Uygun bir embedding modeli “otomobil” ve “araba” sözcüklerine farklı yazılsalar da benzer vektörler verebilir. Sonuç modele, dile ve bağlama bağlıdır. Gerçek aramada vektör benzerliği adayları bulur; en yararlı sonucu üste taşımak için anahtar kelime araması, üst veri filtreleri ve yeniden sıralama yine gerekebilir. Getirme akışı için anlamsal arama yazımıza bakın.

Cümleler ve Belgeler: Tek Kelimeden Bütün Metne

Arama sistemleri sorguları ve belge pasajlarını temsil etmek için genellikle özel bir embedding modeli kullanır. Uzun belgeler, ilgili bölümlerin bulunup kaynak gösterilebilmesi için çoğu zaman daha küçük pasajlara ayrılır. Sorgu ve belge vektörleri uyumlu model ayarlarıyla üretilmelidir; herhangi bir kelime vektörüyle herhangi bir belge vektörü anlamlı biçimde karşılaştırılamaz. Sentence Transformers belgeleri getirme için ayrı sorgu ve belge kodlama yöntemlerini gösterir.

Bu sıkıştırma, kelimelerinkinden daha incelikli bir iştir. Bir cümlenin anlamı içindeki kelimelerin sadece toplamı değildir; sıraları, hangi kelimenin hangisini nitelediği ve bağlam da işin içine girer. "Köpek adamı ısırdı" ile "Adam köpeği ısırdı" aynı kelimeleri içerir ama bambaşka şeyler anlatır. Bu yüzden cümle embedding'i üreten modeller, kelimeler arasındaki ilişkileri de hesaba katarak tek bir bütünsel temsil çıkarır. Sonuç yine bir vektördür, ama artık bir cümlenin ya da paragrafın anlamını taşır.

Bu yetenek, yapay zekanın en kullanışlı uygulamalarından birinin kapısını açar: anlamsal arama. Bir kullanıcının sorusunu bir vektöre çevirirsiniz; ardından elinizdeki binlerce belgenin vektörleri arasından soruya en yakın yöne bakanları, yani kosinüs benzerliği en yüksek olanları getirirsiniz. Kullanıcı, sorudaki kelimelerin birebir geçtiği belgeleri değil, sorunun anlamına en yakın belgeleri alır. Anahtar kelime eşleştirmesinin atladığı, yani farklı sözcüklerle ama aynı anlamı anlatan belgeler de böylece yakalanır.

Gerçek Bir Üründe Bu Ne İşe Yarar?

Bu kavramlar soyut görünebilir, ama somut bir üründe hayata değdiklerinde değerleri ortaya çıkar. Bir işletmenin belge arşivi tam da böyle bir alandır. Bir kullanıcının aradığı, çoğu zaman belli bir kelimenin geçtiği belge değil, belli bir konuyu ele alan kayıtlardır. Kullanıcı "yıllık izin talebinin reddi" diye arattığında, bu tam ifadeyi içermese bile aynı konuyu tartışan belgelerin gelmesini ister. Anlamsal benzerlik, kelimelerin ötesine geçip meselenin özünü yakaladığı için bunu mümkün kılar.

Hukuk külliyatında uygulanabilir bir akış, sürümlü pasajları belge kimliği, tarih ve erişim izniyle indeksler. Sorgu aday pasajları getirir; yeniden sıralama veya insan incelemesi uygunluğu kontrol eder ve yanıt kaynağı gösterir. Anlamsal benzerlik farklı ifadeleri bulabilir; ama konuya yakın olup hukuken ilgisiz pasaj da getirebilir. Tarih, yetki alanı, kaynak otoritesi ve tam terimler görünür kalmalıdır. Bu, tasarım örneğidir; belirli bir Hatson Tech ürününün uygulama iddiası değildir.

Türkçenin ekli yapısı ve uzmanlık terimleri değerlendirmeyi özellikle önemli kılar. Çekimli biçimleri, kısaltmaları, karar atıflarını ve hukuktaki anlamı günlük kullanımdan farklı olan terimleri test edin. Etiketli gerçek sorularda anlamsal aramayı anahtar kelime başlangıç çizgisiyle karşılaştırın; doğru pasajın üst sonuçlarda bulunup bulunmadığını ve benzer ama ilgisiz pasajların elenip elenmediğini ölçün. Tokenizasyon ve embedding önemlidir, ancak güvenilir aramanın yalnızca parçalarıdır.

Toparlayalım: Sayıların Altındaki Sezgi

Tokenizasyon metni token kimliklerine dönüştürür. Dil modeli bu kimlikleri giriş vektörlerine eşler ve bağlamı işlerken iç temsillerini günceller. Arama sistemi ise bütün sorguları ve pasajları karşılaştırılabilir vektörlere dönüştürmek için ayrı bir model kullanabilir. Bunlar ilişkili fakat farklı görevlerdir.

Vektör geometrisi aday pasajları sıralamak için yararlı bir sinyal verir: benzer temsillere sahip sorgu ile pasaj ilgili olabilir. Puan, pasajın doğru veya somut olaya uygulanabilir olduğunun kanıtı değildir. Güvenilir bir sistem kaynak, tarih ve erişim bilgisini korur; yanıtı atıf yapılan metne karşı denetler.

Anlamsal aramayı değerlendirirken gerçek soruları etiketli bir veri kümesinde test edin ve anahtar kelime aramasıyla karşılaştırın. Böylece seçilen embedding modelinin Türkçe çekim ekleri ve uzmanlık terimleri dahil bu alanda kullanıcıyı doğru kaynağa götürüp götürmediğini görürsünüz. Bu tür embedding testlerini gerçek sorgularla nasıl yürüttüğümüzü RAG ve anlamsal arama çözümleri sayfamızda anlatıyoruz.

Kaynaklar ve Ek Okuma