Retrieval Augmented Generation (RAG)
RAG, harici bir bilgi tabanından ilgili pasajları getirip LLM'nin istemine ekler; böylece yanıtlar güncel, özel ve kaynak gösterilebilir bilgilere dayanır.
Bilgi getirmeyle desteklenmiş üretim (RAG), büyük dil modelinin (LLM) bir soruyu, sorgu anında harici bir bilgi kaynağından getirilen ve sorunun yanındaki istemine eklenen metin parçalarını kullanarak yanıtladığı bir tekniktir. Bir LLM'nin eğitim verileri belirli bir tarihte sona erer ve bir şirketin iç belgelerini hiçbir zaman içermez. Bu nedenle model, bilgi getirme olmadan ya olguları bilmez ya da makul görünen bilgiler uydurur; bu hata halüsinasyon olarak bilinir. Terim, Facebook AI Research'ten Patrick Lewis ve çalışma arkadaşlarının 2020 tarihli Bilgi Yoğun NLP Görevleri için Bilgi Getirmeyle Desteklenmiş Üretim makalesinden gelir. Bu çalışma, önceden eğitilmiş bir BART üreticisini Wikipedia'nın yoğun vektör dizininde çalışan bir sinir ağı getiricisiyle eşleştirdi ve açık alanlı üç soru yanıtlama görevinde son teknoloji sonuçlara ulaştı. Günümüzde bu ad, önce bilgi getiren, ardından metin üreten tüm sistemleri kapsar.
RAG İş Akışı Nasıl Çalışır#
RAG iki aşamada çalışır. Dizinleme önceden yapılır: belgeler, örneğin anlamsal parçalara bölme yoluyla metin parçalarına ayrılır, her parça bir gömme vektörüne dönüştürülür ve vektörler bir vektör veritabanında saklanır. Sorgu sırasında soru aynı modelle gömme vektörüne dönüştürülür, vektör araması en yakın metin parçalarını getirir ve sistem; talimatlardan, bu parçalardan ve sorudan bir istem oluşturur. Ardından LLM, sağlanan metne dayalı bir yanıt yazar ve her iddianın dayandığı metin parçasına atıfta bulunabilir.
Üretim sistemleri bu temel sürecin etrafına ek adımlar koyar. Hibrit arama, parça numaraları gibi kesin terimlerin gözden kaçmaması için vektör benzerliğini anahtar sözcük eşleştirmeyle birleştirir; bir yeniden sıralayıcı, en iyi adayları daha hassas bir modelle yeniden sıralar; bağlamsal getirme ise dizine eklemeden önce bir LLM'nin her parçanın başına, parçayı belgesi içinde konumlandıran kısa bir not eklemesini sağlar. LangChain ve LlamaIndex gibi çerçeveler bu bileşenleri bir araya getirir.
Getirme ve zenginleştirme adımları, Sentence Transformers kütüphanesi kullanılarak birkaç satır Python koduyla gerçekleştirilebilir:
from sentence_transformers import SentenceTransformer
model = SentenceTransformer("sentence-transformers/all-MiniLM-L6-v2")
# Knowledge base: passages the LLM never saw during training
passages = [
"Badge access to Building C requires a safety briefing completed within the last 12 months.",
"The cafeteria in Building A serves breakfast from 7:00 to 9:30 on weekdays.",
"Forklift operators must renew their certification every three years.",
]
passage_embeddings = model.encode(passages)
# Retrieve: embed the question and keep the most similar passage
question = "How often do I need to redo forklift training?"
scores = model.similarity(model.encode(question), passage_embeddings)[0]
context = passages[int(scores.argmax())]
# Augment: put the retrieved passage in the prompt the LLM will answer from
prompt = f"Answer using only this context.\nContext: {context}\nQuestion: {question}"
print(prompt)Kod, sorunun anlam bakımından eşleştiği forklift sertifikasyonu metnini içeren bir istem yazdırır: soru eğitimin yenilenmesini sorarken metin sertifikanın yenilenmesinden söz eder. Herhangi bir LLM bu istemi kullanarak yanıt verebilir ve model yeniden eğitilmeden metin parçaları her gün değiştirilebilir.
RAG, İnce Ayar ve Uzun Bağlam Karşılaştırması#
- İnce ayar: Yeni örneklerle modelin ağırlıklarını günceller. Davranışı, üslubu ve çıktı biçimini etkili biçimde değiştirir; ancak sık değişen olguları eklemek için yavaş bir yöntemdir ve alıntı yapılabilecek bir kaynak bırakmaz. Bu nedenle birçok sistem biçim için ince ayar yapar, bilgi için RAG kullanır.
- Uzun bağlam pencereleri: Bir milyon belirteci kabul eden modeller büyük bir belge kümesini doğrudan okuyabilir, ancak her sorguda tüm belirteçlerin maliyeti ödenir ve girdiler uzadıkça doğruluk düşer. Bu etki bağlam bozulması olarak bilinir. RAG yalnızca önemli metin parçalarını gönderir.
Temel örüntüyü birkaç farklı yaklaşım genişletir: GraphRAG bir bilgi grafiğinden bilgi getirir, ajan tabanlı RAG ajanın ne zaman ve nerede arama yapacağına karar vermesini sağlar, çok modlu RAG ise metnin yanı sıra görüntüleri, videoları ve sesleri de getirir.
RAG Nerelerde Kullanılır?#
- Kurumsal sohbet botları: Kurum içi asistanlar politikalardan, wikilerden ve geçmiş destek taleplerinden yanıt verir; her yanıtın geldiği paragrafı bağlantıyla gösterir.
- Müşteri desteği: Asistanlar yanıt vermeden önce müşterinin ürün modeline ait kılavuzu ve sipariş geçmişini getirir.
- Sağlık hizmetleri: Klinik asistanlar güncel kılavuzları ve ilaç kaynaklarını getirerek yanıtların modelin belleği yerine denetlenebilir bir kaynağa dayanmasını sağlar.
RAG videolar hakkındaki soruları da yanıtlayabilir. Bir LLM her soru için saatlerce görüntüyü izleyemediğinden, RAG'yi bilgisayarlı görüyle birleştirmek önce görüntüleri aranabilir kayıtlara dönüştürür. Ultralytics YOLO26, izleme modunda her karede her nesnenin sınıfını, kutusunu ve kalıcı iz kimliğini bildirir. Bir işlem hattı bunları satırlar hâlinde sakladığında, "Bu sabah 3 numaralı yükleme alanına kaç kamyon girdi?" gibi bir soru video yerine bu satırlardan yanıtlanır.
RAG Yanıtları Neden Hatalı Olur?#
RAG iki noktada başarısız olur. Getirme başarısızlığında yanıtı içeren metin parçası isteme hiç ulaşmaz; bunun nedeni parçalama işleminin metni bölmesi, gömme modeli eş anlamlı bir sözcüğü kaçırması ya da metnin ilk k adayın hemen altında sıralanması olabilir. Bu durum, bir test sorusu kümesinde k değerine göre duyarlılık ölçülerek değerlendirilir. Üretim başarısızlığında ise doğru metin parçası ulaşır, ancak model onu görmezden gelir, yanlış okur veya onunla çelişir. Ragas gibi değerlendirme kütüphaneleri her iki tarafı da puanlar: getirici için bağlam duyarlılığını, üretici içinse yanıttaki iddiaların getirilen bağlam tarafından desteklenen oranı olarak tanımlanan sadakati.










