"rag nedir" sorusunun kısa cevabı: Bir soruyla ilgili bilgileri dış kaynaklardan bulup dil modelinin kullanacağı girdiye ekleyen, ardından bu bilgilerle yanıt hazırlayan yöntemdir. İngilizce açılımı "Retrieval-Augmented Generation"; Türkçede "bilgi getirme destekli üretim" diye anlatabiliriz. Buradaki dış kaynak, modelin eğitiminde öğrendiklerinden ayrı bir belge koleksiyonu olabilir.
Bu düzen, örneğin bir buluşmanın güncel katılım koşullarını kendi duyurularından yanıtlamak için kullanılabilir. Fakat sistemin doğru belgeyi bulmasıyla, bulduğu bilgiyi doğru anlatması ayrı işlerdir. Bir cevap aksadığında önce nerede koptuğunu ayırmak gerekir.
Soruya hangi bilgiler eklenir?
Microsoft'un Türkçe RAG açıklamasındaki akışta uygulama önce soruyla ilgili içeriği arar. Bulduğu bölümleri soruyla birleştirip modele gönderir. Model de önüne gelen bu malzemeden yararlanarak cevabı yazar. Aranacak koleksiyon ve seçilecek bölümler, uygulamanın nasıl kurulduğuna bağlıdır.
Bir klasörde yüzlerce duyuru bulunması, modelin her cevapta hepsini okuyacağı anlamına gelmez. Arama aşaması belirli parçaları seçebilir. Dolayısıyla iki ayrı kontrol vardır: Soruyu cevaplayan bölüm modele ulaştı mı? Son cümle o bölümdeki bilgiyi koruyor mu?
Uygulama alınan bölümleri göstermiyorsa, yalnızca cevaba bakarak aramanın tam olarak nerede aksadığını bilemeyiz. Kaynak listesini veya erişebildiğiniz asıl belgeleri karşılaştırabilirsiniz; görünmeyen bir işlemi kesin teşhis etmiş gibi konuşmayın. Aşağıdaki örnekte akışı bilerek açık tutuyoruz ki farklı hataları görebilelim.
RAG her seferinde bütün internette arama yapmak da değildir. Bir kurum yalnızca kendi yardım belgelerini kaynak olarak kullanabilir. Kaynakların hangi tarihe kadar güncellendiğini bilmeden, yöntemin adından güncellik sonucu çıkaramayız. Üretken yapay zekâ yazısında anlatılan içerik oluşturma işi burada, dışarıdan bulunan bilgilerle beslenir.
Hayalî bir tamir buluşmasında bilgi nerede kaybolur?
Bir mahalle tamir buluşmasının belge arşivini düşünelim. Aşağıdaki tarihler, koşullar ve cevaplar tamamen hayalîdir; gerçek bir uygulamada yapılmış denemenin sonuçları değildir. Arşivde haziran duyurusu ile ekimde yayımlanmış yeni katılım koşulları bulunsun. Sorumuz şu olsun: "Bu ay bisikletimi getirmek için önceden kayıt yaptırmam gerekiyor mu?"
İlk durumda arama yalnızca genel tanıtım metnini getirsin. Tanıtımda kayıt konusuna değinilmiyor. Sistem buradan "Kayıt gerekmiyor" sonucuna atlarsa, ilgili bilgiye ulaşamamasını kesin bir koşul gibi sunmuş olur. Oysa yeni katılım belgesi henüz cevabın dayanakları arasında değildir. "Getirilen bölümlerde kayıt koşulu bulunamadı" demek, "Arşivde böyle bir koşul yok" demekten daha dar bir iddiadır.
İkinci durumda sistem haziran duyurusunu bulsun. Bu eski belgede "Kayıtsız gelebilirsiniz" yazarken ekim belgesinde "Bisiklet için önceden kayıt gerekir" yazsın. Yanıt haziran metnini doğru aktarsa bile bu ay için yanlış yönlendirebilir. Burada önce belgenin hangi buluşmaya ait olduğunu kontrol ederiz. Yeni belgeyi arşive koymuş olmak, aramanın onu gerçekten seçtiğini göstermez.
Son durumda doğru ekim belgesi gelsin ama cevap "Getirdiğiniz her eşya için kayıt gerekir" desin. Kaynaktaki koşul yalnızca bisiklet içindi; yanıt kapsamı genişletti. Bu kez sorun eski belge değildir. Doğru bölüm bulunmuş, fakat kural aktarılırken değişmiştir. Kaynağı açıp cümlenin öznesine ve hangi eşyayı kapsadığına bakmak bu farkı gösterir.
Bu örneklerde yalnızca "Cevap yanlış" notu düşmek düzeltmeyi zorlaştırır. İlgili belgenin gelmediğini, eski sürümün kullanıldığını veya koşulun genişletildiğini ayrı kaydedin. Kendi belgenizin hangi bölümünün dayanak olduğunu görebiliyorsanız, karşılaştırmaya oradan başlayın.
Yeni belge eklemek modeli eğitmek değildir
AWS'nin Türkçe RAG rehberi, bu yaklaşımın modeli yeniden eğitmeden dış bilgi kullanmayı sağladığını açıklıyor. Arşivdeki yeni koşulu bulup sorunun yanına koymak, modelin eğitimini güncellemekle aynı işlem değildir.
Hayalî buluşmamızda ekim koşulunu değiştirdiğimizde önce kaynak belgeyi düzeltir, sonra arama sisteminin güncel bölümü getirdiğini kontrol ederiz. Eski metni hâlâ getiriyorsa yanıt talimatını uzatmak belge sorununu tek başına çözmez. Talimatları farklı örneklerde sınamak için prompt mühendisliği rehberine bakabilirsiniz; burada kontrol edeceğimiz şey, o talimatın önüne hangi bilginin geldiğidir.
Kaynak bağlantısından neyi anlayabilirsiniz?
Yanıtın altında bağlantı görmek, kullandığınız uygulamanın teknik olarak RAG ile kurulduğunu tek başına kanıtlamaz. Böyle bir mimari iddiası için ürünün teknik açıklaması gerekir. Kullanıcı olarak bağlantıyı açıp cevaptaki koşulu gerçekten destekleyip desteklemediğini yine de inceleyebilirsiniz.
Yapay Zeka'da her yanıtın altında kaynaklar bulunur; açıp kontrol edersiniz. Tamir buluşması örneğindeki gibi önce belgenin ilgili aya ait olduğuna, sonra cevabın kapsadığı eşyalara bakın. Kaynak eksikse ilgili koşulu bulamadığınızı açık bırakın. RAG yanlış yanıt olasılığını ortadan kaldırmaz; belgedeki sınırları koruma işi cevabın son cümlesine kadar sürer.
