Bir oyun oynayalım. Sana bir kitabı harf harf okuyacağım ve her harften önce sıradaki harfi tahmin etmeni isteyeceğim. "Merhab" dedim, sıradaki neydi? Kolay. "Türkiye'nin başkenti Ank" dedim, gerisi geldi. Şimdi işin ekonomik tarafı: doğru tahmin ettiğin her harf için bana neredeyse hiç bilgi göndermene gerek yok. Ancak şaşırdığın yerlerde, yani tahminin tutmadığında bana bir şey söylemen gerekiyor.
İşte bir dosyayı sıkıştırmak tam olarak bu. Sıkıştırma programı, sıradaki parçayı ne kadar iyi tahmin ederse o kadar az yer harcıyor. Tahmin ile sıkıştırma arasındaki bu bağ bir benzetme değil; bilgi kuramında ispatlanmış bir denklik.
- Bir metni iyi sıkıştıran program, aslında sürekli bir tahmin oyunu oynuyor.
- Bu oyunun kuralını 1948'de bir mühendis yazdı ve bugünkü yapay zekanın temelini attı.
- Sadece metinle eğitilmiş bir model, resim sıkıştırmada PNG'yi geçince kimse buna hazır değildi.
- Peki iyi sıkıştırmak gerçekten anlamak mı? Cevap ilk bakışta göründüğü kadar net değil.
Sürpriz ne kadar yer kaplar?
1948'de Claude Shannon, bilgiyi ölçülebilir bir şeye çevirdi. Fikri şu: bir mesajın taşıdığı bilgi, ne kadar beklenmedik olduğuyla ölçülür. Yarın güneşin doğacağını söylemek neredeyse sıfır bilgi taşır, çünkü zaten biliyorsun. Yarın İstanbul'a kar yağacağını söylemek ağustos ayında çok bilgi taşır.1
Shannon bunu sayıya bağladı: bir olayın bilgi miktarı, olasılığının tersinin logaritmasıdır. Yüzde elli olasılıklı bir olay bir bit, yüzde yirmi beşlik bir olay iki bit yer tutar. Buradan çıkan sonuç şu: bir metni en kısa hâliyle kodlamak istiyorsan, harflerin olasılıklarını iyi bilmen gerekir. Yani sıkıştırma oranın, tahmin kalitene bağlıdır.
Bu bağı pratiğe çeviren teknik aritmetik kodlama. Modelin sıradaki harf için verdiği olasılıkları alıp, mesajı sayı doğrusu üzerinde bir aralığa çeviriyor. Olasılıklar isabetliyse aralık geniş kalır, geniş aralığı yazmak için az hane yeter. Model şaşırırsa aralık daralır ve daha çok hane gerekir. Programın "ne kadar iyi tahmin ettiği", doğrudan dosyanın kaç bayt olduğuna dönüşür.
Zip dosyası da bir tahmin makinesi
Bilgisayarındaki sıkıştırma programları da aynı işi yapar, sadece daha mütevazı tahminlerle. Bir metin dosyasında "ve" kelimesinin sık geçtiğini fark eder, sık geçenlere kısa kodlar verir. Bir resimde yan yana duran piksellerin genelde benzer olduğunu varsayar. Her sıkıştırma algoritması, sıkıştırdığı şeyin dünyası hakkında sessiz bir tahmin taşır. Bir müzik dosyasını zip'lemenin işe yaramaması bu yüzden: zip'in varsayımları sese uymaz.
Tersi de doğru. İyi tahmin eden bir şeyin elinde varsa, onu sıkıştırıcıya çevirebilirsin. Bugünkü dil modelleri tam olarak bunu yapıyor: her adımda sıradaki parçanın olasılık dağılımını veriyorlar. O dağılımı aritmetik kodlamaya bağladığında elinde kayıpsız bir sıkıştırıcı olur.
Metinle eğitilen model PNG'yi geçti
2023'te DeepMind ekibi bu fikri ölçtü ve sonuç kafa karıştırıcı çıktı. Chinchilla 70B adlı, esas olarak metinle eğitilmiş bir dil modelini sıkıştırıcı gibi kullandılar. Model, ImageNet'ten alınan görüntü parçalarını özgün boyutunun yüzde 43,4'üne indirdi; aynı veriyi resimler için özel tasarlanmış PNG yüzde 58,5'te bırakıyordu. Sesli konuşma kayıtlarında model yüzde 16,4'e indi, sesin uzmanı sayılan FLAC yüzde 30,3'te kaldı.2
Yani hayatı boyunca cümle görmüş bir sistem, hiç resim üstüne kurulmamışken resim sıkıştırmada resmin uzmanını geçti. Sebep, modelin "resim bilmesi" değil; dünyadaki verinin tekrarlarını, örüntülerini genel olarak yakalayabilmesi. Örüntü yakalamak neyse, sıkıştırmak da o.
Aynı çalışmanın ters yönde bir de şakası var: gzip gibi sıradan bir sıkıştırıcıyı alıp, ondan metin üretmesini istediler. Denklik iki yönlü çalıştığı için bu mümkün oldu, ama çıkan metin okunacak bir şey değildi. Sıkıştırıcı ile üretici aynı madalyonun yüzleriyse, madalyonun kalitesi de o kadar oluyor.
İyi sıkıştırma, dünyanın tekrar eden kısımlarını fark etmektir. Anlamak da büyük ölçüde bu. bu yazının tek cümlelik özeti
Sıkıştırmak anlamak mıdır?
Bu fikrin en cesur hâli bir yarışmada duruyor. Hutter Ödülü, sabit bir İngilizce metin yığınını en iyi sıkıştıran programa para veriyor. Arkasındaki iddia şu: bir metni gerçekten iyi sıkıştırmak için dilin yapısını, hatta anlattığı dünyayı bir ölçüde kavramak gerekir. Dolayısıyla sıkıştırma oranı, zekânın ölçüsü olabilir.3
Bu iddianın güçlü tarafı var. Bir dosyayı iyi sıkıştıran model, yeni veri karşısında da genellikle iyi genelleme yapıyor; ezberleyen değil, kural bulan kazanıyor. Zayıf tarafı da var: sıkıştırma oranı, modelin ne kadar yer kapladığını hesaba katmaz. Yüz milyarlarca parametreyi kenara koyup "şu dosyayı ne güzel küçülttüm" demek biraz kolaya kaçmak olur. Dürüst hesap, modelin kendisini de paketin içine saymayı gerektirir.
Yine de bu bakış açısı bir şeyi netleştiriyor. Sana cümle tamamlayan sistem sihirli bir şey yapmıyor; olasılık atıyor. Ve olasılık atmakta iyi olmak, dosyaları küçültmekte iyi olmakla aynı beceri. Bir sonraki sefer bir zip dosyası oluşturduğunda, aslında küçük bir kâhine iş verdiğini düşün.
Dipnotlar ve Kaynaklar
- Shannon, C.E. (1948). "A Mathematical Theory of Communication", Bell System Technical Journal 27: 379-423 ve 623-656. Entropi tanımı ve kaynak kodlama teoremi. ↩
- Delétang, G., Ruoss, A., Duquenne, P.-A. ve ark. (2024). "Language Modeling Is Compression", ICLR 2024 (arXiv:2309.10668). Chinchilla 70B ile ImageNet parçalarında %43,4, LibriSpeech örneklerinde %16,4 sıkıştırma; PNG %58,5, FLAC %30,3. Aynı çalışmada gzip'in üretici model olarak kullanılması. ↩
- Hutter Ödülü: sabit bir Wikipedia metni üzerinde kayıpsız sıkıştırma yarışması; Marcus Hutter'ın "sıkıştırma başarısı genelleme başarısıdır" tezine dayanır (Hutter, 2006). ↩
- Aritmetik kodlamanın ayrıntısı için: Witten, I.H., Neal, R.M., Cleary, J.G. (1987). "Arithmetic coding for data compression", Communications of the ACM 30(6): 520-540. ↩
- Türkçe kaynak: Bilgi kuramı ve entropi konusunda TÜBİTAK Bilim ve Teknik dergisinin bilgi teorisi dosyaları giriş düzeyinde iyi bir başlangıç sağlar. ↩
Bu yazı bilgi kuramına giriş niteliğindedir; teknik ayrıntılar için dipnotlardaki birincil kaynaklara bakılmalıdır.


