Uçtan Uca Gelişmiş RAG Mimarisi

Uğur Özker
13 min readMar 21, 2024

--

RAG Nedir?

Kısaltması RAG olan ‘Retrieval Augmented Generation’ yani Türkçe karşılığı ile ‘Arama ile Arttırılmış Üretim Yöntemi’ olarak kabul edilen kavram ilk kez 2020 yılında Meta tarafından yayınlanan bir akademik çalışma ile hayatımıza girdi.[1] Kavram kısa bir geçmişe sahip olmasına rağmen büyük dil modeli teknolojisi ile birleşerek ciddi bir potansiyeli ortaya koydu ve bugünlerde üretken yapay zekanın merkezine yerleşerek bu alanda faydalanılabilecek en büyük ticari kullanım örneği olarak fırsatları bize sunuyor.

RAG, büyük dil modellerinin yetkinliğini temel modelin dışındaki veri yığınları ile artırarak, model yanıtlarının daha gerçek, daha bireysel ve daha güvenilir çıktılar oluşturmasını sağlar. Bu sebeple RAG için; büyük dil modellerinin performansını iyileştirmeye yönelik fonksiyonellik sağlayan bir çerçeve diyebiliriz. RAG sağladığı bu esnek ve güçlü çerçeve sayesinde sadece 3 yıl gibi kısa bir sürede büyük dil modellerinin kurumsal alandaki uygulamalarında önemli bir büyüme kaydetti. 2023 yılında yayınlanan Retool Report’a göre[2], kurumsal büyük dil modeli kullanım senaryolarının etkileyici bir şekilde %36,2'si artık RAG çerçevesini kullanıyor. RAG, büyük dil modellerinin gücünü yapılandırılmış veya yapılandırılmamış verilerle birleştirerek kurumsal bilgi erişimini her zamankinden daha etkili ve hızlı hale getiriyor. Bu sayede geleneksel sanal asistanların ihtiyaç duyduğu veri ön hazırlığı gibi veri bilimi süreçlerine ihtiyaç duymadan minimum iş gücü harcayarak eskisinden çok daha yetkin ve başarılı yapay zeka servisleri üretilebiliyor.

RAG Nasıl Çalışır?

Aşağıda resmedildiği gibi tipik bir RAG süreci, merkeze konumlandırdığı bir büyük dil modeline, modeli beslemek için kullanılmak üzere kurumsal döküman koleksiyonuna ve yanıt oluşturmayı geliştirmek amacıyla istem mühendisliği (prompt engineering) altyapısına sahiptir. RAG iş akışı; sorulan soruya benzer kavram ve dökümanları bulabilmek için vektör veritabanından, ilişkili verileri modelin beklediği format haline getirebilmek için ise istem mühendisliği tekniklerinden faydalanır. RAG’ın sahip olduğu bu çalışma yöntemi, gelişmiş karar verme ve bilgi erişimi yöntemlerini kullanmak üzere mevcut veri havuzlarından yararlanmak isteyen şirketler için onu güçlü bir araç haline getirir. Uygulama adımlarına sırasıyla bakmak gerekirse;

1-Sorgulama: Metin formatındaki soru herhangi bir sanal asistan yada arayüz aracılığıyla RAG akışına gönderilir.

2-(Retrieval) Doküman Arama: Model, ilgili bilgileri dış kaynaklardan toplamak için bir arama adımı gerçekleştirir. Bu kaynaklar bir veritabanını, bir dizi belgeyi ve hatta arama motoru sonuçlarını içerebilir. Arama işlemi, verilen girdi veya istemle ilgili bilgileri içeren metin parçalarını veya dökümanları bulmayı amaçlar.

3-(Augmentation) Büyütme: Arama aşamasında elde edilen bilgiler daha sonra orijinal girdi veya bilgi istemiyle birleştirilir ve çıktıyı oluşturmak için modelin kullanabileceği istem mühendisliği (Prompt Engineering) taslağı haline getirilerek zenginleştirilir. Model, istem mühendisliği sayesinde oluşturulan bu taslağa dış bilgileri de dahil ederek büyük dil modeli tarafından beklenen formata getirilir.

4-(Generation) Oluşturma: Son olarak model, alınan bilgileri ve orijinal girdiyi dikkate alarak yanıtı üretir. Burada sisteme yöneltilen sorunun ilk formu, vektör veritabanından elde edilen belge ve diğer argümanlar birlikte değerlendirilerek büyük dil modelinin en doğru çıktı metnini üretmesi sağlanır.

5-Cevaplama: Büyük dil modeli tarafından oluşturulan yeni içerik kullanıcıya aktarılır.

RAG, soru cevaplama, diyalog oluşturma, özetleme ve daha fazlası gibi çeşitli doğal dil işleme görevlerinde faydalı olabilir. RAG modelleri, harici bilgiyi dahil ederek, yalnızca eğitildikleri verilere dayanan geleneksel modellere kıyasla daha doğru ve bilgilendirici yanıtlar sağlama potansiyelini ortaya koyar.

RAG, çok çeşitli endüstriler ve kullanım durumları için uygun bir çözümdür. Finans, hukuk ve sağlık sektörlerinde geniş veritabanlarından veya doküman havuzlarından bilgilerin referans alınmasına yardımcı olarak bilinçli karar alma süreçlerini kolaylaştırır. Ayrıca sektör bağımsız olarak müşteri hizmetleri alanında RAG; sanal asistanlara güç vermek ve kullanıcı sorgularına doğru ve bağlamsal olarak uygun yanıtlar sağlamak için kullanılır. Bunun dışında kullanıcı tercihlerini ve geçmiş verileri anlayarak kişiselleştirilmiş içerik oluşturma ve öneri sistemlerinde de önemli bir yere sahiptir.

RAG ve Geleneksel Yöntemlerle Arasındaki Farklılıklar

Sınıflandırmaya Dayalı Geleneksel Modeller

Geleneksel doğal dil modelleri, giriş sorgusuna dayalı olarak önceden tanımlanmış bir dizi yanıt arasından uygun bir yanıtı seçmek için tasarlanmıştır. Bu modeller, giriş metnini (bir soru veya sorgu) önceden tanımlanmış yanıtlardan oluşan bir sınıflandırma kümesi ile karşılaştırır. Sistem, denetimli öğrenme (supervised learning) algoritmaları veya diğer anlamsal eşleştirme yöntemleri gibi teknikleri kullanarak girdi ve etiketlenen yanıtlar arasındaki benzerliği ölçerek en uygun yanıtı belirler. Sınıflandırma tabanlı bu modeller, yanıtların çoğunlukla statik yanıt tiplerine dayalı olduğu ve yapılandırılmış bir formda kolayca bulunabildiği soru yanıtlama gibi görevler için etkilidir.

RAG Tabanlı Oluşturmaya Dayalı Yeni Nesil Modeller

Üretken yapay zeka modelleri geleneksel yöntemlerin aksine mevcut olan içerikleri eşleştirmek yerine sıfırdan cevaplar yada içerikler yaratır. Bu modeller, insan benzeri metin veya yanıtlar oluşturmak için genellikle sinir ağlarına dayalı daha karmaşık algoritmalar kullanır. Alıştığımız yöntemin aksine yeni içerikler oluşturduğu için mevcut herhangi bir sınıf ile ilişkilendirme ihtiyacı duymazlar. Bu sebeple denetimsiz (unsupervised learning) öğrenmenin getirdiği tüm avantajları ve güçlü yanları beraberinde getirir. Denetimsiz öğrenme temeline dayanan bu modeller ile sorgunun sağladığı içeriğe dayalı olarak bir sonraki kelimeyi veya kelime dizisini tahmin ederek yanıtlar üretmeyi öğrenirler. Bu yeni, bağlamsal olarak uygun yanıtlar üretme yeteneği, üretken yapay zeka temelli modelleri son derece çok yönlü hale getirir ve yanıtların içerik olarak zengin olması gereken yaratıcı yazma, çeviri ve diyalog gibi görevler için uygun hale getirir.

Kuruluşunuz için bir RAG uygulaması geliştirirken göz önünde bulundurulması gereken ilk şeylerden biri, RAG çerçevesini oluşturduğunuz iş akışında ve verilerde ortaya çıkan soru türlerini ve bunlarla hangi süreçlere çözüm üreteceğini doğru tespit etmektir.

RAG Kullanımının Avantajları

RAG, özellikle dış bilgilere ve güncel verilere erişimin faydalı olduğu senaryolarda çeşitli avantajlar sunar. Temel avantajlardan bazıları şunlardır:

1. Bağlamsal Uygunluk: RAG modelleri bağlamsal olarak daha alakalı ve bilgilendirici dinamik yanıtlar üretebilir. Dış kaynaklardan alınan bilgilerin bir araya getirilmesiyle oluşturulan metin, gerçek dünyadaki güncel bilgilere daha iyi dayandırılır ve böylece daha doğru ve bağlama duyarlı yanıtlar elde edilir.

2. Gerçeklik Kontrolü ve Doğrulama: RAG modelleri, bilgileri güvenilir dış kaynaklardan aldığından, üretim süreci sırasında doğruluk kontrolü ve doğrulama gerçekleştirebilir. Bu, yanlış veya yanıltıcı bilgi oluşumunun azaltılmasına yardımcı olur ve oluşturulan içeriğin doğruluğunu garanti eder.

3. Geliştirilmiş Bilgi Birleştirmesi: RAG modelleri, yanıtlarını geliştirmek için harici bilgi tabanlarını veya belgeleri etkili bir şekilde kullanabilir. Bu, özellikle modelin, iyi bilgilendirilmiş ve doğru yanıtlar sağlamak için geniş bir kaynak yelpazesinden ilgili bilgilere erişebildiği soru yanıtlama görevlerinde kullanışlıdır.

4. Esneklik ve Uyarlanabilirlik: Çeşitli kaynaklardan bilgi alma yeteneği, RAG modellerini daha esnek ve uyarlanabilir hale getirir. Arama mekanizması ilgili bilgiye erişecek şekilde tasarlandığı sürece, her bir özel senaryo için açık bir ince ayar (fine tune) gerektirmeden çok çeşitli konuları ve görevleri ele alabilirler.

5. Dağıtım Dışı Girdilerin Ele Alınması: Geleneksel metin oluşturma modelleri, eğitim verilerinde bulunmayan dağıtım dışı veya olağandışı girdilerle karşılaşıldığında zorluk yaşayabilir. Öte yandan RAG modelleri, görülmeyen veya daha az yaygın girdiler için bile ilgili bilgileri bulmak amacıyla vektör veritabanları aracılığıyla doküman yığınlarından yararlanabilir.

6. Kontrollü İçerik Üretimi: RAG modelleri kontrollü içerik üretimi için de kullanılabilir. Geliştiriciler, doküman arama sürecine rehberlik ederek ve kaynakları belirterek, modelin yanıt oluşturmak için kullandığı bilgilerin türünü ve kalitesini kontrol edebilir.

7. Azaltılmış Önyargı: Döküman arama mekanizması, oluşturulan içerikteki önyargının azaltılmasına yardımcı olabilir. Model, çeşitli bilgi kaynaklarını kullanarak, eğitim verilerinde mevcut önyargılardan etkilenebilecek geleneksel modellere kıyasla daha dengeli ve tarafsız bir yanıt sağlayabilir.

RAG önemli avantajlar sağlasa da, farklı kaynaklardan gelen karmaşık bilgileri ele almak ve doküman arama sonuçlarının doğruluğu ile verimliliği arasındaki dengeyi sağlamak gibi potansiyel zorlukların ve hususların farkında olmak önemlidir.

RAG Hangi Noktalarda Diğer Üretken Yapay Zeka Başlıklarından Ayrışıyor?

Temel fark, şirket verilerinin nerede ve nasıl saklandığı ve kullanıldığıdır. Bir modele ince ayar yaptığınızda, şirket verilerinizi kullanarak önceden var olan bir büyük dil modelini yeniden eğitirsiniz ve kullanım senaryonuzun ihtiyaçlarını karşılamak için model yapılandırmasını değiştirirsiniz. Öte yandan RAG, harici olarak depolanan şirket belgelerinden verileri alır ve yanıt oluşturmaya rehberlik etmek için bunları büyük dil modeline sağlar. İnce ayar uzun ve maliyetli bir süreçtir ve sık sık değişen şirket belgeleri ile çalışmak için iyi bir çözüm değildir.

RAG Uygulama Zorlukları

RAG çok güçlü bir araç olmasına rağmen uygulama ve yönetişim başlıklarında bazı zorlukları da beraberinde getirir;

Çok Kanallı/Kaynaklı Entegrasyon: Farklı formatlarda birden fazla harici veri kaynağı olduğunda karmaşıklık artar. Bu sorunun üstesinden gelmek için, veri setleri arası mükerrerliği önlemek amacıyla bu verilerin önceden işlenmesi veya kontrol edilmesi önemlidir.

Veri Kalitesi: Veriler tutarlı ve iyi temsil edici olmalıdır. Uygulamanın eriştiği kaynak içeriğin kalitesi kötü ise üretilen cevaplar pek doğru olmayacaktır. Bu nedenle veri kaynaklarını entegre etmeden önce veri kalitesini artırmak gerekir.

Ölçeklenebilirlik: Veri miktarı arttıkça RAG sisteminin performansını yönetmek zorlaşır. Bu sorunu daha kolay yönetmek için vektör veritabanları gibi çözümler kullanılmalıdır.

Arama Optimizasyonu: Modellerin doğru ve istenilen çıktıları üretebilmesi için, ilk adım olan vektör veritabanından benzerlik araması adımının yüksek performanslı çalışması gerekir. Burada vektörel arama sonucunda eksik veya yanlış içeriklerin seçilmesi sonraki adımda gerektiği gibi bir istem mühendisliği taslağının (prompt) oluşturulamamasına yol açar. Taslak, büyük dil modeli sorgusuna girdi olarak kullanılır ve verimsiz bir girdi aynı oranda verimsiz bir çıktı elde etmemize neden olur.

Karmaşık ve Gelişmiş RAG Sistemleri

Doküman Parçalama (Chunking)

Doğal dil işleme bağlamında “parçalama”, metnin küçük, özlü, anlamlı parçalara bölünmesi anlamına gelir. Bir RAG sistemi, ilgili bağlamı büyük belgelere kıyasla daha küçük metin parçalarında daha hızlı ve doğru bir şekilde bulabilir. Doğru parçayı seçtiğinizden nasıl emin olabilirsiniz? Parçalama stratejinizin etkinliği büyük ölçüde bu parçaların kalitesine ve yapısına bağlıdır. Optimum parça boyutunu belirlemek, hızdan ödün vermeden tüm önemli bilgilerin yakalanması anlamına gelen bir denge kurmakla ilgilidir. Daha büyük parçalar daha fazla bağlam yakalayabilirken, daha fazla gürültüye neden olurlar ve işlenmesi daha fazla zaman ve hesaplama maliyeti gerektirir. Daha küçük parçalar daha az gürültüye sahiptir ancak gerekli bağlamı tam olarak yakalayamayabilir. Üst üste binen parçalar bu kısıtlamaların her ikisini de dengelemenin bir yoludur. Bir sorgu, parçaları üst üste bindirerek, uygun şekilde ilişkilendirilmiş bir yanıt oluşturmak için büyük olasılıkla birden fazla vektör kümesi üzerinden yeterli miktarda ilgili veri alacaktır. Sınırlamalardan biri, bu stratejinin almanız gereken tüm bilgilerin tek bir belgede bulunabileceğini varsaymasıdır. Gerekli bağlam birden fazla farklı belgeye bölünmüşse belge hiyerarşileri ve bilgi grafikleri gibi çözümlerden yararlanmak düşünülebilir. Burada çoklu belge içerisinden parça parça anlam çıkarımı mantığını ilişkisel veritabanları içerisinde farklı alanlardan bilgileri bir araya getirerek daha değerli ve anlamlı hale getirmekle aynı mantıkta düşünebiliriz.

Doğrulanabilir RAG — (CRAG)

‘Doğrulanabilir RAG’, bir RAG iş akışında yer alan ilk adım olan arama sonuçlarının doğrulanması veya iyileştirilmesi olarak düşünebiliriz[1]. Tüm RAG süreçlerinde genel sıkıntı arama aşamasında doküman yığını içerisinden istenen sonuçların elde edilememesidir. İhtiyaç duyulan en doğru belgelerin elde edilememesi son adım olan büyük dil modeline istem sorgulaması aşamasında talebin eksik ifade edilmesi ve dil modelinin yanlış yönlendirilmesine yol açar. En başta yaşanan bir arama problemi, ilerleyen adımlarda çok daha belirgin ve sapma oranı etkin sonuçlar ortaya çıkarır. Bu durumda arama sonuçlarının gerçekten doğru dokümanlar elde edip etmediğini kontrol edebilmek kritik öneme sahiptir. Bu soruna bir çözüm olarak geliştirilen CRAG[2] anlayışı yeni sayılabilecek bir kullanım yöntemidir. Arama sonuçlarının tamamı için bir üst ve alt eşik değeri tanımlayarak sonuçları ‘doğru’, ‘yanlış’ veya ‘belirsiz’ sonuçlar olarak sınıflandırmak üzere kurulur. En az bir belgenin sorguya yakınlık oranı, eşik değerinin üzerinde ise arama işleminin doğru olduğu kabul edilir. Bulunan tüm dokümanların puanı alt eşik değerinin altında olursa arama işleminin yanlış sonuçlandığı varsayılır. Belirsiz durumu ise üst eşik değeri ile alt eşik değerinin arasında kalan diğer durumları kapsar. Arama sonucunun doğru varsayıldığı dokumanlar için bir parçalama daha uygulanarak gürültü içeren metinlerin temizlenmesi ve içeriğin zenginleştirilmesi ile doküman güçlendirilir. Yanlış olduğu durumlarda ise içerik ve sorgudan faydalanarak bir web araması yapılır ve çevrimiçi ortamlardan daha detaylı bilgi elde edilerek yanlış sınıflandırılan dokümanlar için düzeltme çalışması yürütülür. Belirsizlik durumlarında ise hem doğru hem de yanlış için uygulanan süreçler bir arada yürütülerek tekrarlanır.

Burada arama sonucunda elde edilen dokümanlar için benzerlik oranı tespiti; ‘Oluşturma’ adımına kıyasla daha küçük dil modelleri ile sağlanır[3] (Literatür çalışmalarında 770 milyon parametreli Google tarafından sağlanan t5-large modeli kullanılıyor). Bu modele ‘arama değerlendiricisi’ ismi verilmiştir. Arama değerlendiricisinin içerikleri doğru değerlendirebilmesi için öncesinde ilişkili verilerle ince ayar sürecine dahil edilmesi ve olgun bir model haline getirilmesi CRAG sürecinin verimi için önemli bir husustur. Diğer yandan, olumsuz sonuçlar için yapılan web aramalarının getirdiği potansiyel önyargı da endişe vericidir. İnternet kaynaklarının kalitesi önemli ölçüde farklılık gösterebilir ve bu tür verilerin yeterince dikkate alınmadan dahil edilmesi, üretilen çıktılarda gürültüye veya yanıltıcı bilgilere neden olabilir. Ayrıca, CRAG iyi optimize edilmediğinde ek iş yükü ve hantallık sağlayabilir. Bir arama sonucu için çok sayıda dokümanın seçileceği ve her biri için ayrı ayrı bu küçük model ile sorgulama yapacağını varsayarsak kaynak tüketimi ve gecikme açısından ekstra riskler doğurabilir. Şirket içi sistemler kullanan kurumlar için ise, yanlış değerlendirilen sonuçların iyileştirilmesi amacıyla internete çıkma zorunluluğu başka bir zorluğu da beraberinde getirebilir.

Tüm çekince ve zorluklara rağmen CRAG’ın avantajları ve kullanımı çok güçlü faydalar sunar ve farklı alanlarda uygulanabilir; CRAG, alınan belgelerin kalitesini değerlendirerek yalnızca ilgili ve güvenilir bilgilerin kullanılmasını sağlar ve hata veya yanıltıcı sonuçlarla karşı karşıya kalma riskini en aza indirir, böylece daha doğru ve güvenilir yanıtlar elde edilir. CRAG, otomatik içerik oluşturma, soru cevaplama sistemleri, çeviri hizmetleri ve eğitim araçlarında uygulamalar bularak insanlar ve makineler arasında iletişimi kolaylaştırır ve daha anlaşılır güçlendirilmiş iletişim olanağı sağlar.

RAG Fusion

Geleneksel arama sistemlerinde kullanıcılar genellikle bilgiyi bulmak için tek bir sorgu girerler. Bu yaklaşım basit olmasına rağmen sınırlamaları vardır. Tek bir sorgu, kullanıcının ilgilendiği konunun tüm kapsamını kapsamayabilir veya kapsamlı sonuçlar elde edemeyecek kadar dar olabilir. Farklı bakış açılarından birden fazla sorgu oluşturmanın devreye girdiği yer burasıdır. RAG Fusion[4], birden fazla kullanıcı sorgusu oluşturarak ve sonuçları yeniden sıralayarak RAG’ın doğasında bulunan kısıtlamaların üstesinden gelir. Arama öncesi süreçte sorguların farklı bakış açılarına göre çoğaltılması yöntemi kullanılırken, arama sonrası süreçlerde ise sonuçları bir araya getirip yeniden sıralayarak RAG’ın doğasında bulunan kısıtlamaların üstesinden gelir. RAG-Fusion, kullanıcıların açıkça sordukları ile sormak istedikleri arasındaki boşluğu doldurmayı amaçlıyor ve genellikle gizli kalan dönüştürücü bilgiyi ortaya çıkarmaya daha da yaklaşıyor. Bu sayede çok sayıda soru ile çeşitlendirerek sorunun en iyi şekilde anlaşılmasını sağlar. Daha yalın ifade etmek gerekirse RAG Fusion’ı, karar vermeden önce herkesin fikrini almakta ısrar eden kişi olarak düşünün. Ancak bu durumda can sıkıcı değil, faydalıdır. Ne kadar çoksa o kadar neşelidir veya bu durumda o kadar doğru kararlar alınır.

RAG Fusion bu güçlü desteği sağlamak için karşılıklı sıralama füzyonu teknolojisinden faydalanır. Karşılıklı Sıralama Füzyonu (RRF), tek bir birleşik sıralama oluşturmak için birden fazla arama sonucu listesinin sıralamalarını birleştirmeye yönelik bir tekniktir. Waterloo Üniversitesi ve Google işbirliğiyle geliştirilen RRF[5], yazarlarının ifadesiyle “herhangi bir bireysel sistemden daha iyi sonuçlar ve standart yeniden sıralama yöntemlerinden daha iyi sonuçlar veriyor”. RAG Fusion’ı kullandığınızda, aramanızın derinliği yalnızca gelişmiş olmakla kalmaz, aynı zamanda güçlenir. İlgili belgelerin yeniden sıralanmış listesi, yalnızca yüzeysel bilgi almakla kalmayıp aynı zamanda bir bakış açısı okyanusuna daldığınız anlamına gelir. Yapılandırılmış çıktının okunması daha kolaydır ve sezgisel olarak güvenilir hissettirir; bu, yapay zeka tarafından oluşturulan içeriğe şüpheyle yaklaşan bir dünyada çok önemlidir. Ayrıca, Sistem kullanıcı sorgularını yalnızca yorumlamakla kalmıyor, aynı zamanda hassaslaştırıyor. RAG Fusion, birden çok sorgu varyasyonunun oluşturulması yoluyla örtülü yazım ve dil bilgisi denetimleri gerçekleştirerek arama sonucu doğruluğunu artırır.

Özetle; karşılaşana kadar ihtiyacınız olduğunu bilmediğiniz bilgileri düşünün. RAG Fusion bu tesadüfi keşfe olanak tanıyor. Sistem, daha geniş bir sorgu yelpazesi kullanarak, açıkça aranmasa da kullanıcı için çok önemli bir an haline gelen bilgilerin ortaya çıkarılması olasılığını doğurur. Bu, RAG Fusion’ı diğer geleneksel arama modellerinden ayırır.

Dikkat edilmesi gereken hassas nokta ise; RAG-Fusion’ın derinliği bazen bilgi seline yol açabilir. Çıktılar bunaltıcı olacak kadar ayrıntılı olabilir. RAG-Fusion’ı, bazı şeyleri gereğinden fazla açıklayan, bilgilendirici bir arkadaş olarak düşünün, kullanıcının orijinal amacının potansiyel olarak odağından uzaklaşmasına neden olabilir. Bunu hafifletmek için modele, istem mühendisliğinde orijinal sorguya daha fazla ağırlık vermesi talimatı verilerek kontrol altında tutulabilir.

HyDE

Bazen, belirli bir bağlamdan bir yanıt elde etmek için detayı olmayan veya kolayca tanımlanabilir unsurlardan yoksun bir soruyla karşı karşıya kaldığınızda, oldukça zorlayıcı olabilir. Örneğin, çok sayıda markayı bünyesinde barındıran bir iletişim merkezinden telefon almak istiyorsunuz; çok kısa, özneden yoksun sade bir soru ile ‘iyi fotoğraf çekebilenin fiyatı’ diye sorguladığınızda telefon kelimesi kullanılmasa da sistem değinilen ürünün iyi fotoğraf çeken bir telefon olduğunu anlayabilmelidir. Buradaki zorluk, satın alınmak istenen ana unsurun kelime ile net olarak ifade edilmek yerine, dolaylı yoldan ima edilmesidir. Bu nedenle doküman aramak sorunlu hale gelir. Bu sorunu çözmek için farklı dil modellerinin yardımını kullanarak geçici ve sanal bir yanıt yada doküman oluşturulur ve bu yardımcı doküman daha sonra doğru sonuçlar elde edebilmek için ifadenin netleştirilmesi amacıyla kullanılır. Bu sanal içerikler daha sonra semantik benzerliğe dayalı olarak bir vektör kaynağında incelenerek ilgili bilgilerin aranmasına yardımcı olur. HyDE[6], en basit hali ile bize sorgudan — cevaba klasik yönteminin yerine cevaptan — cevaba diye tanımlanan yeni ve esnek bir yöntem sağlar.

Ancak bu yaklaşımın bir dezavantajı vardır; çünkü sürekli olarak iyi sonuçlar vermeyebilir. Örneğin, tartışılan konu dil modeline tamamen yabancıysa, bu yöntem etkili değildir ve yanlış bilgi üretme vakalarının artmasına neden olabilir. Bu yüzden oluşturulan sanal içeriklerin tutarlı ve orijinal sorgu ile tutarlı, destekleyici olması gerekir.

Hiyerarşik İndeksleme

Belge hiyerarşisi[7], bilgi erişimini geliştirmek için verilerinizi düzenlemenin güçlü bir yoludur. Belge hiyerarşisini RAG sisteminizin içindekiler tablosu olarak düşünebilirsiniz[8]. Parçaları, RAG sistemlerinin ilgili verileri verimli bir şekilde almasına ve işlemesine olanak tanıyan yapılandırılmış bir şekilde düzenler. Belge hiyerarşileri, büyük dil modellerinden hangi parçaların çıkarılacak en ilgili verileri içerdiğine karar vermesine yardımcı olarak RAG’ın etkinliğinde çok önemli bir rol oynar.

Hiyerarşik indeksleme, parçaları (chunk) düğümlerle ilişkilendirir ve düğümleri üst-alt (parent — child) olarak ilişkilendirir. Her düğüm, içinde yer alan bilgilerin bir özetini içerir; bu, RAG sisteminin veriler arasında hızlı bir şekilde geçiş yapmasını ve hangi parçaların çıkarılacağını anlamasını kolaylaştırır.

Buraya kadar hiyerarşik indeksleme yöntemi anlaşılınca akıllara şöyle bir soru gelebilir; Büyük dil modellerinin bir belgedeki içeriği anlayabileceği varsayılıyorsa neden bir belge hiyerarşisine ihtiyaç duyarız? Belge hiyerarşisini içindekiler tablosu veya dosya dizini olarak düşünün. Büyük dil modeli, bir vektör veritabanından ilgili metin parçalarını çıkarabilse de, en alakalı metin parçalarını bulmak için bir ön işleme adımı olarak belge hiyerarşisini kullanarak arama işleminin hızını ve güvenilirliğini artırabilirsiniz. Bu strateji, arama güvenilirliğini ve hızını arttırarak parça çıkarma sorunlarından kaynaklanan halüsinasyonların azaltılmasına yardımcı olabilir.

Uluslararası bir kurum örneği ile konuyu ele alalım. Bir şirketin Dünya’nın farklı yerlerinde çok sayıda ofisi olduğunu ve her ofisin kendi bölgesine özel regülasyon ve yönetim süreçleri olduğunu ancak bu politikaları belgelemek için aynı standart şablonu kullandığını varsayalım. Sonuç olarak, her ofisin belgeleri kabaca aynı formattadır, ancak her bölüm kurallar, yönetim şekli, regülasyonlar için ülkeye özgü politikaları detaylandıracaktır. Bir vektör veritabanında, her yönetim veya kurum kültürüne bağlı paragraf öbeği birbirine çok benzer görünecektir. Bu durumda, bir vektör sorgusu aynı, faydasız verilerin çoğunu alabilir ve bu da halüsinasyonlara yol açabilir. Bir RAG sistemi, bir belge hiyerarşisi kullanarak, önce ABD ofisi ile ilgili belgeleri arayarak, ABD ofisi için regülasyonlar ile ilgili bir soruyu daha güvenilir bir şekilde yanıtlayabilir.

[1] Arxiv.org, Retrieval Augmented Generation for Knowledge Intensive NLP Tasks, https://arxiv.org/pdf/2005.11401v4.pdf,

[2] Retool.com, State of AI Report 2023, https://retool.com/reports/state-of-ai-2023

[3] CRAG, github.com — CRAG, https://github.com/HuskyInSalt/CRAG?tab=readme-ov-file

[4] CRAG, https://arxiv.org/pdf/2401.15884.pdf, 16.02.2024

[5] HuggingFace — Google t5-large Model Card, https://huggingface.co/google-t5/t5-large

[6] RAG Fusion, Github.com — RAG Fusion, https://github.com/Raudaschl/rag-fusion

[7] RRF, Waterloo University, https://plg.uwaterloo.ca/~gvcormac/cormacksigir09-rrf.pdf

[8] HyDE, http://boston.lti.cs.cmu.edu/luyug/HyDE/HyDE.pdf

[9] Hierarchical Indexing for Retrieval-Augmented Opinion Summarization, https://openreview.net/pdf?id=ESq3U7z6FD

[10] Hierarchical Indexing for Retrieval-Augmented Opinion Summarization, https://arxiv.org/pdf/2403.00435.pdf

--

--

Uğur Özker
Uğur Özker

Written by Uğur Özker

Computer Engineer, MSc, MBA, PMP®, Senior Solution Architect IBM