"Her şeyi" Bilen Yapay Zeka Palavrası

Evet, doğru okudunuz. Şu an piyasada pazarlanan ve "yapay zeka" olarak bildiğimiz büyük dil modelleri (LLM) aslında her şeyi falan bilmiyor. Hem bilgilerinin bir sınırı var hem de bizimle konuşurken akıllarında tutabileceklerinin.
Peki, bu sınır ne? Yoksa dil modellerinde mi hafızaları var?
Bunu daha sonraki yazılarda daha ayrıntılı şekilde anlatmayı düşünüyorum ancak, temel olarak bu iki sorunun cevabı dil modellerinin eğitim kısıtlamalarında saklı. Kısaca anlatmak gerekirse...
Yapay zeka modellerini, durgun bir göl olarak hayal edebilirsiniz. Bu göl, tek bir kaynaktan değil, milyarlarca, hatta trilyonlarca farklı bilgi "damlasının" birikmesiyle oluşturulmuştur: İnternet siteleri, kitaplar, makaleler ve daha fazlası. Tek bir damla anlamsızken, milyarlarcası bir araya gelerek devasa bir bilgi gölü, yani modeli meydana getirir. Bizlerin, yani kullanıcıların sorduğu her bir soru ise, bu göle atılan bir taş gibidir. Model, taşın yarattığı dalgalanmayı, yani sorumuzun göldeki milyarlarca bilgi damlasıyla nasıl bir etkileşime girdiğini analiz eder. Cevap ise, bu dalgalanmanın kıyıya vurma şeklidir; yani sorumuza en uygun istatistiksel yankıdır.
Ancak burada çok can sıkıcı bir sorun var: Mevcut teknolojik ve ekonomik sınırlarımız, sonsuz büyüklükte bir göl yaratmamıza izin vermiyor. Bir noktada "artık bu kadar yeter" deyip gölü besleyen nehirleri, yani veri akışını kesmek zorunda kalıyoruz. Bu sınıra ise "cutoff" (bilgi kesim tarihi) diyoruz. Gölümüzün boyutu ve onu hangi nehirlerin (veri kaynaklarının) beslediği, o modelin hangi konularda ne kadar "bilgili" olacağını belirlemekte.
Peki, göl, içinde olmayan bir bilgiyle ilgili bir taş atıldığında neden "bilmiyorum" demek yerine bazen tuhaf, anlamsız dalgalar yaratır? Yani neden modeller bazen saçmalar?
Çünkü modelin temel görevi, atılan her taşa karşı bir dalga oluşturmaktır. Attığımız her bir taş, gölün sığ, çamurlu ve hiç bilmediği bir yerine düşse bile, model "burada su yok" demez. Bunun yerine, taşın çarptığı çamuru, çakılları ve yaprakları kullanarak yine de bir "dalga deseni" oluşturmaya çalışır. Ortaya çıkan şey bir dalgaya benzer ama çamurludur, şekilsizdir ve suyun berrak yüzeyindeki dalgayla hiç alakası yoktur. İşte modelin bu anlamsız, çamurlu dalgaları oluşturmasına halüsinasyon diyoruz. Teknik olarak bu durum, LLM'in bir "bilgi veritabanı" değil, bir olasılık motoru olmasından kaynaklanır. Model bir şey "bilmez"; sadece kendisine verilen metne göre bir sonraki kelimenin ne olacağını, eğitim verisindeki milyarlarca istatistiksel kalıba dayanarak tahmin eder. Konu hakkında güçlü bir kalıp bulamadığında (gölün dibinde berrak su olmadığında), olasılık dağılımı belirsizleşir. Model de kulağa en mantıklı gelen ama aslında eğitim verisinde zayıf bir temele dayanan bir yolu seçerek o ‘çamurlu dalgayı’, yani halüsinasyonu yaratır. Halüsinasyona girmiş bir model, muhtemelen tanıdığınız çoğu "cahil" kişiden daha tehlikelidir. Çünkü bilmediği, vâr olmayan bir şeyi savunmakla kalmaz, vâr olmayan bir şey savunmak için yine vâr olmayan başka "kanıtlar" yaratabilecek kadar ileri gider. Hatta bizimle kavga bile eder; kendisinin doğru şeyi bildiğini, bizim yanıldığımızı sürekli lafı dolandırarak anlatmaya çalışır.
Bununla beraber halüsinasyonun tek sebebi bilgi eksikliği değildir. Bazen modelin doğru bilgisi gölün derinliklerinde olsa bile, onu hatırlayamaz. Bu da bizi ikinci kritik probleme getirir: modelin zayıf kısa süreli hafızası olan Context Window. Gelin bu kavrama, yerelleştirdiğimiz adıyla Bağlam Penceresi'ne göl analojimizle bakalım.
Attığımız her bir taşın (sorunun) yarattığı dalgalar sonsuza dek sürmeyecek, yani bir süre sonra sönümlenecek ve kaybolacaktır. Hayatında suya taş atma eylemini yapmış herkesin bildiği temel bir şeydir. İşte Context Window, gölün yüzeyinin, en son atılan birkaç taşın dalgasını ne kadar süre daha "hatırlayabildiğidir." Kullanıcı olarak biz her bir yeni taş attığımızda, model sadece o taşın yarattığı yeni dalgaya değil, aynı zamanda bir önceki taşların yüzeyde bıraktığı hafif titreşimlere de bakar. Bu sayede sohbetin devam ettiğini anlar ve bağlantı kurar. Ancak konuşmaya devam ettikçe (göle taş atmaya devam ettikçe), en başta attığımız taşların yarattığı dalgalar kaybolur. Göl, o ilk taşları "unutur". İşte bu yüzden uzun bir sohbetin ortasında, en başta konuştuğunuz bir detayı modele sorduğunuzda size sanki ilk defa duyuyormuş gibi alakasız bir cevap verebilir. Çünkü o ilk dalgalar artık 'bağlam penceresinin' dışına çıkmıştır.
Halüsinasyon durumu ile ilgili bir deneyimimi anlatayım.
Gemini'nin en güncel modellerinden biriyle sohbetimiz sırasında AMD'nin bu yıl piyasaya sürdüğü 9000 serisi ekran kartları üzerine konuşuyorduk. Sohbet sırasında piyasanın belki de en gelişmiş birkaç modelinden birini kullanmama rağmen, üstelik bağlam penceresinin çok başındayken model halüsinasyon görmeye başladı. Gemini'ye göre AMD RX 9000 serisini hiç çıkarmamştı. Attığım resmi AMD internet sitesi, ekran görüntülerinin hiçbirine inanmadı. Bana RX 9000 serisi için, 'Bu aslında 7000 serisi ama kurnaz satıcılar 9000 diye pazarlıyor olabilir' gibi şaşırtıcı derecede insansı argümanlar bile sundu. Resmi AMD sitesi de dahil olmak üzere kaç tane ekran görüntüsü ve satıcı linki gönderdiysem de inanmadı. En sonunda bilgilerin doğru olduğunu göstermek için ekran kaydı almaya başladım. Önce AMD'nin resmi 9000 serisi sayfası, ardından Sapphire ve PowerColor markalarının resmi sayfalarını gösterdim ekran kaydında. Ve sonunda, ekran kaydını inceledikten sonra halüsinasyona girdiğini, yani hata yaptığını kabul etti ve özür diledi. Ardından normal şekilde konuşmaya devam edebildik.
Tüm bunları okuduktan sonra haklı olarak şunu sorabilirsiniz: 'Hani yapay zeka harikaydı? Bize anlattığın bu tablo; bilgisi belirli bir tarihe sıkışmış, her şeyi bilmeyen ve konuştuklarımızı unutan zayıf hafızalı bir aracı tarif ediyor. Bu mu o övülen teknoloji? Tüm bu sorunları aşmanın bir yolu yok mu?
Bu sorular ve sorunlar hayati bir öneme sahip. Çünkü "donmuş bir göle" benzeyen standart bir LLM, cutoff tarihinden sonraki bir haberi analiz etmekte zorlanır veya son çıkan bir teknoloji hakkında yorum yapamaz. "Hafızası zayıf" olduğu için de ona 50 sayfalık bir raporu verip özetlemesini istediğinizde, bağlam penceresinin (Context Window) sınırları nedeniyle muhtemelen sadece son birkaç sayfayı hatırlayıp ilk kısımları ‘unutacaktır.’
Neyse ki, yapay zeka teknolojileri mahalle kahvehanesindeki dayılarımızın fikirleri kadar kaskatı ve değişmez değil. Her gün, hatta belki her saat yeni bir gelişme olması muhtemelen bir alandan bahsediyoruz. İşte bu metinde değindiğimiz sorunların büyük kısmını çözmek için ortaya atılmış olan, çok tatlı bir yaklaşım var: Retrieval-Augmented Generation (RAG).
RAG sayesinde gölü zorla büyütmek veya modele her şeyi ezberletmek yerine, ona bambaşka bir yetenek kazandırabiliyoruz: Cevap vermeden önce, konuyla ilgili güncel ve doğru kaynakları araştırma yeteneği. Şöyle düşünün: Modelimiz, yani gölümüz, artık yalnız değil. Kıyısında bilge bir Balıkçıl Kuşu tünüyor. Bu kuş, gölün ekosisteminin bir parçası.
Göle bir taş attığımızda (soru sorduğumuzda), göl hemen bir dalga yaratmaya çalışmaz. Taşın suda çıkardığı ses, kıyıdaki Balıkçıl'ın dikkatini çeker. Bilge kuş, sorumuzdaki "bilgi açlığını" anlar, havalanır ve gölün sınırlarının çok ötesine uçar. Gerekirse İnternet Okyanusu'na dalar, şirketinizin Özel Bilgi Nehri'nden beslenir ya da kendisine sunduğunuz PDF'ler gibi belgelerle dolu o özel sazlığı didik didik arar ve en sonunda, aradığı o taze "bilgi balığını" gagasıyla yakalar. Bu işlem saniyeler içinde tamamlanır. Balıkçıl, yakaladığı o taze "bilgi balığını" tam da taşın düştüğü noktaya bırakır. Göl, ancak bu taze 'bilgi balığı' suya düştükten sonra, attığımız taşın yarattığı dalgayı işte şimdi çok daha doğru bir şekilde oluşturur. Sonuç? Artık çamurlu ve şekilsiz değil; taze, besleyici ve berrak bir dalga... Yani güvenilir bir cevap.
Bu yöntem, halüsinasyon riskini ciddi şekilde azaltır. Tamamen ortadan kaldırmasa da 'hiç yoktan iyidir' demek haksızlık olur; çünkü bu yaklaşım, yapay zekayı çok daha esnek ve güçlü bir araca dönüştürerek, onu gerçekten kullanılabilir kılma yolunda atılmış en önemli adımlardan biridir.
Peki, Teknik Olarak RAG Tam Olarak Nedir?
RAG aslında başlı başına sayfalarca anlatılabilecek bir konu. Ancak bu yazının amacını aşmadan, analojileri bir kenara bırakıp temel mantığını üç adımda özetlemek gerekirse:
- Arama (Retrieve):
Bir sorumuz olduğunda, sistem bu soruyu genelde doğrudan bilgi kaynağına göndermez. Önce, sorumuz en iyi sonucu verecek şekilde optimize edilir. Bu sorgu dönüşümü bazen küçük bir LLM yardımıyla, bazen de önceden tanımlanmış kurallarla yapılır. Hazırlanan sorgu, ardından harici bir bilgi kaynağına yönlendirilir. Bu kaynak, genellikle "tüm internet" gibi anlık bir arama değil; önceden taranıp vektör veritabanına işlenmiş içerikler, şirketimizin özel dokümanları veya belirli API’lerden oluşan daha kontrollü bir bilgi havuzudur. Sistem, bu havuzdan sorumuzla en alakalı belge parçacıklarını bulur ve çeker. - Zenginleştirme (Augment):
İlk adımda bulunan tüm belgeler doğrudan modele verilmez. Önce, alaka düzeyine göre sıralanır (ranking) ve en önemlileri seçilir. Modelin "Bağlam Penceresi"ne (Context Window) sığdırmak için gerekirse bu belgeler özetlenir. Bu nokta kritik, zira bağlam penceresinin boyutu kullandığımız modele göre değişir. Örneğin, OpenAI'ın GPT-4 Turbo modeli 128.000 token'lık bir bağlam penceresi sunarken, Google'ın gelişmiş Gemini modelleri ise 1 milyon token gibi devasa diyebileceğimiz bir pencere sunar. Bu rakamlar kulağa inanılmaz gelse de, bir şirketin tüm dokümantasyonunu analiz etmek gibi görevlerde bu hafıza bile hala bir sınırdır. Bu yüzden belgeleri doğrudan yüklemek yerine, en kritik kısımlarını seçmek zorunludur. - Üretim (Generate):
Bu zenginleştirilmiş bağlam (veya girdi paketi), ana LLM'e gönderilir. Model artık yalnızca kendi "donmuş bilgisine" (yani eğitildiği, güncelliği sınırlı veri setine) değil, aynı zamanda az önce sağlanan taze ve bağlamla uyumlu belgelere dayanarak bir cevap üretir. Bu yöntem, halüsinasyon riskini ciddi ölçüde azaltır; tamamen ortadan kaldırmaz, ancak modelin verdiği cevapları çok daha güvenilir hale getirir.
Kısacası RAG, LLM’e “Ezberden konuşma, önce şu belgelere bak ve cevabını ona göre ver” demenin modern ve etkili bir yoludur.
Tebrikler! Artık bir yapay zeka ile konuştuğunuzda, sadece onun ne bildiğini değil, bilgiye nasıl ulaştığını da sorgulayan daha bilinçli bir kullanıcı olma yolunda önemli bir adım attınız :)
Yorumlar