Karlı ekrandan tabloya

Bir kutuya “gün batımında, sisli bir İstanbul boğazı, yağlı boya” yazıyorsunuz; saniyeler sonra karşınızda hiç var olmamış ama gayet inandırıcı bir tablo. Midjourney, DALL-E, Stable Diffusion gibi araçların yaptığı bu iş, dışarıdan bakınca düpedüz sihir gibi görünüyor.

Perde arkasındaki fikir ise — bu sitede artık gelenekselleşti — şaşırtıcı derecede sade. Hatta biraz da tuhaf: bu modeller resim yapmayı, resim bozmayı öğrenerek öğrendi. Adındaki “difüzyon” (yayılma) da buradan geliyor. Gelin adım adım açalım; sonunda hem mekanizmayı hem de bu araçların neden bazı şeylerde bocaladığını (yazı yazamamak, parmak saymayı karıştırmak) anlamış olacaksınız.

Önce bozmayı öğren, sonra tersini oyna

Eski televizyonların “karıncalı” ekranını hatırlayın: anlamsız, rastgele noktalar. Buna gürültü diyoruz. Difüzyonun ilk yarısı şudur: net bir fotoğraf alın ve üzerine azar azar gürültü ekleyin. Birinci adımda hafif grenli olur, onuncu adımda seçilmesi zorlaşır, yüzüncü adımda ortada sadece karınca kalır. Bu yön kolaydır — bozmak her zaman kolaydır.

Asıl soru: bu film tersten oynatılabilir mi? Karıncalı kareden bir adım geriye, birazcık daha az gürültülü kareye gidilebilir mi?

İşte model tam bunu öğrenir. Eğitimde ona milyonlarca kez şu alıştırma yaptırılır: “Bu, gürültü eklenmiş bir fotoğraf. Eklenen gürültüyü tahmin et.” Model tahmin eder, yanılma payı ölçülür, parametreleri azıcık düzeltilir — yapay sinir ağının klasik öğrenme döngüsü. Milyonlarca fotoğraf ve her birinin farklı bozulma seviyeleriyle bu tekrarlanınca, model “gürültünün altında ne olabileceğine” dair güçlü bir sezgi kazanır.

Bu “boz ve tersini öğren” tarifi ilk olarak 2015’te önerildi; pratikte çığır açan formülasyon ise 2020 tarihli DDPM makalesidir (kaynaklar aşağıda).

Üretim anı da bu becerinin tersten kullanımıdır: tamamen rastgele bir gürültüyle başla ve modele sor: “Bunun altında ne var?” Model bir miktar gürültüyü “temizler”. Sonra tekrar sor, tekrar temizle. Onlarca adım sonra, karıncalı ekrandan yavaş yavaş bir görüntü belirir — mermerin içinden heykelin çıkması gibi, ama heykel önceden mermerin içinde değildi; model her adımda “burada ne olması olasıydı” sorusuna cevap vererek onu inşa etti.

Peki yazdığımız metin nerede devreye giriyor?

Buraya kadar anlattığım süreç rastgele bir görüntü üretir — herhangi bir şey. “Sisli boğaz, yağlı boya” istediğimizi modele söyleyen ek bir bileşen var.

Eğitim verisi sadece fotoğraflardan değil, fotoğraf + açıklama çiftlerinden oluşur (internetteki görsellerin alt yazıları, açıklamaları). Model gürültü temizlemeyi öğrenirken, yanında hep o görselin açıklaması da gösterilir. Böylece “kedi” kelimesi eşliğinde temizlenen gürültülerin kediye, “gün batımı” eşliğindekilerin turuncu göğe evrilmesi gerektiğini öğrenir. Sizin yazdığınız prompt, üretim sırasında her temizleme adımına eşlik eder ve süreci o yöne çeker. Metnin hangi kelimesinin görüntünün neresini etkileyeceğini hizalayan mekanizma da tanıdıktır: attention, yani dikkat mekanizması, burada metin ile görüntü parçaları arasında köprü kurar.

Dil modelinden farkı ne?

İkisi de “üretici yapay zeka” ailesinden ama çalışma biçimleri güzel bir tezat oluşturur. Büyük dil modelleri sıralı üretir: bir token yazar, sonra bir sonrakini, soldan sağa, her adımda “sıradaki en olası parça ne?” diye sorarak. Cümlenin sonu, başı yazılırken henüz yoktur.

Difüzyon modeli ise bütünsel üretir: ilk adımdan itibaren tuvalin tamamı oradadır — bulanıktır sadece. Her adımda resmin her yeri birlikte netleşir. Yani dil modeli cümleyi kelime kelime kurar; difüzyon modeli resmi kabataslaktan detaya rötuşlar. Bir ressamın önce kompozisyonu bloklaması, sonra detaya inmesi gibi.

Ortak payda da önemli: ikisi de ezberden kopyalamaz, eğitim verisinden öğrendiği örüntülerden yeni bir çıktı üretir. “Sisli boğaz tablosu” internetten bulunup getirilmiyor; boğaz fotoğraflarının, sis görüntülerinin ve yağlı boya dokularının örüntüleri, o an, o gürültüden ilk kez bir araya getiriliyor. Aynı prompt’u iki kez yazınca farklı görsel çıkması bundandır: başlangıç gürültüsü her seferinde farklıdır.

Neden yazı yazamıyor, parmakları neden karıştırıyor?

Mekanizmayı anlayınca, bu araçların meşhur gafları da anlam kazanıyor.

Görüntü içinde yazı: Model harfleri okuma-yazma sistemi olarak değil, görsel doku olarak öğrenmiştir. “Tabela” örüntüsü der ki: dikdörtgen zemin, üzerinde harf gibi şekiller. Harflerin belirli sırayla anlamlı kelime kurması gerektiği bilgisi, piksel örüntülerinden kolay süzülmez. O yüzden çıktılarda “harfimsi” ama okunmaz yazılar görürsünüz. (Yeni nesil sistemler bu konuda ciddi yol katetti — çoğu, metin anlayışı güçlü bileşenlerle desteklenerek — ama zayıflığın kökeni budur.)

Eller ve parmaklar: Eller fotoğraflarda binbir açıdan, çoğu zaman kısmen görünür: kimi parmak kapalı, kimi başka nesneyi kavramış. Model “el” örüntüsünü öğrenir ama “her elde tam beş parmak olur ve şöyle eklemlenir” kuralını saymaz — çünkü hiçbir şeyi saymaz, örüntü genelleştirir. Altı parmaklı el, halüsinasyonun görsel karşılığıdır: parçalar olası, bütün yanlış. Dil modelinin uydurma kaynak vermesiyle aynı ailedendir; o mekanizmayı halüsinasyon neden olur yazısında anlatmıştım.

Bir de dürüstlük gereği eklenmeli: bu modellerin eğitim verisi — internetten toplanan görseller — telif ve sanatçı emeği tartışmalarının tam ortasında. Teknik yazının konusu değil ama yokmuş gibi de davranmayalım; bu tartışmanın hukuki boyutunu hukuk ve etikte yapay zeka yazısında ele aldım.

Sadece resim değil

Difüzyon fikri görselle sınırlı kalmadı. Video üreten sistemler benzer mantıkla kare dizilerini “temizliyor”; ses ve müzik üretiminde, hatta ilaç molekülü ve protein tasarımı gibi bilimsel alanlarda difüzyon temelli yaklaşımlar kullanılıyor — molekül yapısını da “gürültüden rafine etmek” mümkün çünkü. Bilim tarafındaki bu açılımı AlphaFold ve bilimde yapay zeka yazısında görebilirsiniz. Fikrin gücü şurada: “rastgelelikten, öğrenilmiş örüntülere doğru adım adım rafine et” tarifi, resimden çok daha genel bir tarif.

Aklınızda kalsın

  1. Difüzyon modeli, bozmayı öğrenip tersini oynar: eğitimde fotoğraflara gürültü eklenir ve model gürültüyü tahmin etmeyi öğrenir; üretimde saf gürültüden adım adım görüntü rafine edilir.
  2. Prompt, her temizleme adımını yönlendirir — model görüntü-açıklama çiftlerinden, kelimelerle görsel örüntüleri eşlemeyi öğrenmiştir.
  3. Dil modeli sıralı, difüzyon bütünsel üretir — ama ikisi de ezber değil örüntü genellemesidir; altı parmaklı el, uydurma kaynağın görsel kuzenidir.

Bir dahaki sefere birisi “yapay zeka bu resmi internetten çalıp birleştiriyor” dediğinde, artık daha doğru cümleyi biliyorsunuz: çalmıyor, örüntülerden yeniden üretiyor — ki bu, hem teknik olarak daha etkileyici hem de etik tartışması daha incelikli bir durum.

Kaynaklar

  • Sohl-Dickstein, J. vd. (2015). Deep Unsupervised Learning using Nonequilibrium Thermodynamics. Difüzyon temelli üretici modellemenin ilk formülasyonu: veriyi adım adım boz, tersine çevirmeyi öğren. arxiv.org/abs/1503.03585
  • Ho, J., Jain, A. ve Abbeel, P. (2020). Denoising Diffusion Probabilistic Models. Modern görsel üretiminin temelindeki DDPM makalesi — modelin eklenen gürültüyü tahmin etmeyi öğrenmesi. arxiv.org/abs/2006.11239
  • Rombach, R. vd. (2022). High-Resolution Image Synthesis with Latent Diffusion Models. Stable Diffusion’ın dayandığı çalışma; metnin üretimi yönlendirmesi için cross-attention kullanımı. arxiv.org/abs/2112.10752
  • Ramesh, A. vd. (2022). Hierarchical Text-Conditional Image Generation with CLIP Latents. DALL-E 2’nin teknik raporu: metin-görüntü eşleme (CLIP) ile difüzyonlu üretimin birleşimi. arxiv.org/abs/2204.06125