RAG, bir yapay zekâ modelinin yanıt üretmeden önce dış bir bilgi kaynağından ilgili içerikleri bulup bunları istemine eklemesidir. Böylece model yalnızca eğitim sırasında öğrendiklerine dayanmaz; şirket belgeleri, güncel kayıtlar veya seçtiğiniz veri tabanından alınan bağlamla daha ilgili yanıt üretir. RAG kurarken temel akış; veriyi hazırlamak, aranabilir hâle getirmek, soruya uygun parçaları bulmak ve bulunan parçaları modele bağlam olarak vermektir. Sonuç, modelin belirli bir bilgi koleksiyonuna dayalı yanıt vermesidir; ancak bu, yanıtın otomatik olarak doğru veya kaynağın eksiksiz olduğu anlamına gelmez.
RAG, İngilizce Retrieval-Augmented Generation ifadesinin kısaltmasıdır. Türkçeye kabaca “getirimle desteklenmiş üretim” diye çevrilebilir. Buradaki “getirim”, soruyla ilişkili bilgilerin bir arama sistemiyle bulunmasını; “üretim” ise dil modelinin bu bilgilerden yararlanarak yanıt oluşturmasını ifade eder.
Tipik bir RAG akışı şu sırayı izler:
Varsayımsal olarak bir şirketin destek botuna şu belgelerin yüklendiğini düşünün: “İade Politikası”, “Kargo Süreleri” ve “Garanti Koşulları”. Kullanıcı, “Hasarlı gelen ürünü kaç gün içinde bildirmeliyim?” diye soruyor.
RAG sistemi önce bu soruyla en ilgili parçayı, örneğin “Hasarlı ürünler teslimattan sonra 14 gün içinde bildirilmelidir” cümlesinin bulunduğu bölümü getirir. Model de bu parçayı bağlam olarak kullanarak “Hasarlı ürünleri teslimattan sonra 14 gün içinde bildirmeniz gerekir” şeklinde yanıt oluşturur. Uygulama kaynak belgesinin adını veya bölümünü de gösteriyorsa kullanıcı yanıtın hangi şirket kuralına dayandığını inceleyebilir.
Burada RAG’ın yaptığı şey yeni bir şirket politikası icat etmek değildir. Var olan politikayı bulup soruya uyarlamaktır. Belgelerde bu bilgi yoksa sistemin “Belgelerde bu soruyu yanıtlayacak bilgi bulunamadı” demesi, tahminî bir süre vermesinden daha güvenlidir.
RAG; sık güncellenen, kuruma özel veya modelin eğitim verisinde bulunmayan bilgilerle çalışırken kullanışlıdır. İç prosedürler, ürün katalogları, teknik dokümantasyon, destek kayıtları ve erişim yetkisine göre değişen belge koleksiyonları buna örnek verilebilir.
RAG ile modelin yeniden eğitilmesi aynı şey değildir. RAG’de bilgi genellikle dış depoda tutulur ve sorgu sırasında getirilir. Bu nedenle belge güncellendiğinde modeli baştan eğitmeden arama dizini güncellenebilir. Buna karşılık RAG, modelin genel muhakeme yeteneğini veya yanlış talimatları otomatik olarak düzeltmez.
RAG yanıt kalitesini üç temel unsur belirler: arama sisteminin doğru parçayı bulması, parçaların yeterli ve güncel olması, modelin verilen bağlamı doğru yorumlaması. Arama yanlış belgeyi getirirse güçlü bir model bile yanlış bağlamla yanıt verebilir. Belge eskiyse yanıt teknik olarak kaynağa dayanır ama güncel olmayabilir. Çok sayıda ilgisiz parça gönderilirse modelin önemli bilgiyi ayırt etmesi zorlaşabilir.
Bu yüzden bir RAG sistemini yalnızca akıcı yanıtlarla değerlendirmeyin. Bilinen sorular için doğru belge parçasının getirilip getirilmediğini, yanıtın kaynak metinden desteklenip desteklenmediğini ve bilgi bulunmadığında sistemin bunu açıkça söyleyip söylemediğini ayrı ayrı kontrol edin. Hassas belgelerde erişim yetkileri de arama katmanında uygulanmalıdır; modele gönderilen bağlam, kullanıcıya gösterilmemesi gereken bir belgeyi içermemelidir.
Kısaca RAG, “modeli yeni bilgilerle eğitmekten” çok, soruya uygun bilgiyi doğru zamanda bulup modele vermektir. Başarılı bir uygulama için yalnızca dil modelini değil; belge hazırlama, parçalama, arama, erişim kontrolü ve yanıt denetimi aşamalarının tamamını birlikte tasarlamak gerekir.
RAG nasıl çalışır?
RAG, İngilizce Retrieval-Augmented Generation ifadesinin kısaltmasıdır. Türkçeye kabaca “getirimle desteklenmiş üretim” diye çevrilebilir. Buradaki “getirim”, soruyla ilişkili bilgilerin bir arama sistemiyle bulunmasını; “üretim” ise dil modelinin bu bilgilerden yararlanarak yanıt oluşturmasını ifade eder.
Tipik bir RAG akışı şu sırayı izler:
- Belgeleri hazırlayın. PDF, HTML, Word belgesi, yardım makalesi veya veri tabanı kaydı gibi içerikleri metne dönüştürün; başlık, bölüm ve belge kimliği gibi bilgileri koruyun.
- Metni parçalara ayırın. Uzun belgeleri, her biri anlamlı bir bölümü taşıyan daha küçük parçalara bölün. Parçalar çok küçük olursa bağlam eksilir, çok büyük olursa arama sonucu gereksiz bilgilerle dolar.
- Parçaları aranabilir hâle getirin. Her metin parçasını anahtar kelime araması, anlamsal arama veya ikisinin birlikte kullanıldığı karma arama için bir dizine kaydedin. Anlamsal aramada metinler sayısal gösterimlere, yani gömme vektörlerine dönüştürülür.
- Kullanıcı sorusunu aratın. Kullanıcının sorusu aynı arama yöntemiyle işlenir ve soruyla en ilgili belge parçaları seçilir.
- Bulunan parçaları modele gönderin. Seçilen içerikler, kullanıcının sorusuyla birlikte modele bağlam olarak verilir. Modelden yalnızca bu bağlama dayanarak yanıt vermesi ve yeterli bilgi yoksa bunu açıkça belirtmesi istenebilir.
- Yanıtı denetleyin. Yanıtın soruyla ilgisini, kaynak parçalarıyla uyumunu ve hassas bilgilerin gereksiz biçimde açığa çıkıp çıkmadığını kontrol edin.
Somut bir RAG örneği
Varsayımsal olarak bir şirketin destek botuna şu belgelerin yüklendiğini düşünün: “İade Politikası”, “Kargo Süreleri” ve “Garanti Koşulları”. Kullanıcı, “Hasarlı gelen ürünü kaç gün içinde bildirmeliyim?” diye soruyor.
RAG sistemi önce bu soruyla en ilgili parçayı, örneğin “Hasarlı ürünler teslimattan sonra 14 gün içinde bildirilmelidir” cümlesinin bulunduğu bölümü getirir. Model de bu parçayı bağlam olarak kullanarak “Hasarlı ürünleri teslimattan sonra 14 gün içinde bildirmeniz gerekir” şeklinde yanıt oluşturur. Uygulama kaynak belgesinin adını veya bölümünü de gösteriyorsa kullanıcı yanıtın hangi şirket kuralına dayandığını inceleyebilir.
Burada RAG’ın yaptığı şey yeni bir şirket politikası icat etmek değildir. Var olan politikayı bulup soruya uyarlamaktır. Belgelerde bu bilgi yoksa sistemin “Belgelerde bu soruyu yanıtlayacak bilgi bulunamadı” demesi, tahminî bir süre vermesinden daha güvenlidir.
RAG ne zaman tercih edilir?
RAG; sık güncellenen, kuruma özel veya modelin eğitim verisinde bulunmayan bilgilerle çalışırken kullanışlıdır. İç prosedürler, ürün katalogları, teknik dokümantasyon, destek kayıtları ve erişim yetkisine göre değişen belge koleksiyonları buna örnek verilebilir.
RAG ile modelin yeniden eğitilmesi aynı şey değildir. RAG’de bilgi genellikle dış depoda tutulur ve sorgu sırasında getirilir. Bu nedenle belge güncellendiğinde modeli baştan eğitmeden arama dizini güncellenebilir. Buna karşılık RAG, modelin genel muhakeme yeteneğini veya yanlış talimatları otomatik olarak düzeltmez.
RAG’ın sınırları ve doğru değerlendirme
RAG yanıt kalitesini üç temel unsur belirler: arama sisteminin doğru parçayı bulması, parçaların yeterli ve güncel olması, modelin verilen bağlamı doğru yorumlaması. Arama yanlış belgeyi getirirse güçlü bir model bile yanlış bağlamla yanıt verebilir. Belge eskiyse yanıt teknik olarak kaynağa dayanır ama güncel olmayabilir. Çok sayıda ilgisiz parça gönderilirse modelin önemli bilgiyi ayırt etmesi zorlaşabilir.
Bu yüzden bir RAG sistemini yalnızca akıcı yanıtlarla değerlendirmeyin. Bilinen sorular için doğru belge parçasının getirilip getirilmediğini, yanıtın kaynak metinden desteklenip desteklenmediğini ve bilgi bulunmadığında sistemin bunu açıkça söyleyip söylemediğini ayrı ayrı kontrol edin. Hassas belgelerde erişim yetkileri de arama katmanında uygulanmalıdır; modele gönderilen bağlam, kullanıcıya gösterilmemesi gereken bir belgeyi içermemelidir.
Kısaca RAG, “modeli yeni bilgilerle eğitmekten” çok, soruya uygun bilgiyi doğru zamanda bulup modele vermektir. Başarılı bir uygulama için yalnızca dil modelini değil; belge hazırlama, parçalama, arama, erişim kontrolü ve yanıt denetimi aşamalarının tamamını birlikte tasarlamak gerekir.