Retrieval-Augmented Generation (RAG), bir dil modelinin bir soruyu yanıtlamadan önce harici belgelere danışmasını sağlayan, yapay zeka sistemleri kurmaya yönelik bir tekniktir. Yalnızca eğitim sırasında öğrenilenlere güvenmek yerine, bir RAG hattı önce kullanıcı sorgusuyla ilgili paragrafları bir bilgi tabanında arar, ardından bu paragrafları modele bağlam olarak besler. Sonuç, modelin dahili ağırlıklarına değil, belirli ve alıntılanabilir kaynaklara dayandırılmış üretilmiş bir yanıttır.
Retrieval-Augmented Generation nasıl çalışır
Tipik bir RAG sisteminin iki ana bileşeni vardır: bir getirici ve bir üretici. Getirici genellikle bir belge kümesinden oluşturulan bir vektör arama dizinidir. Her belge dizine eklendiğinde, bir gömme modeli onun parçalarını sayısal vektörlere dönüştürür; aynı model gelen kullanıcı sorgusunu da gömer ve bir benzerlik araması (yaygın olarak kosinüs veya nokta çarpımı mesafesi kullanan en yakın komşu araması) vektörleri sorguya en yakın olan parçaları döndürür. En üst sıradaki parçalar daha sonra büyük dil modeline gönderilen isteme, çoğu zaman "yalnızca sağlanan bağlamı kullanarak yanıtla" gibi yönergelerle birlikte eklenir.
Örneğin, bir kullanıcı şirket içi bir asistana "Ebeveyn izin politikamız nedir?" diye sorarsa, getirici çalışan el kitabının ilgili bölümünü bulur ve dil modeli bu paragrafları kullanarak politikayı doğrudan alıntılayan kesin bir yanıt oluşturur. Facebook AI Research'ten Lewis ve diğerlerinin 2020 makalesinde tanıtılan bu örüntü, kaynak materyal değiştikçe iyi ölçeklendiği için bilgiyi (dizin içinde saklanır) akıl yürütmeden (model tarafından gerçekleştirilir) ayırır.
Neden önemlidir
RAG, tek başına çalışan dil modellerinde süregelen üç sorunu ele alır. Birincisi, halüsinasyonları azaltır çünkü model doğaçlama yapmak yerine getirilen metne sabitlenir. İkincisi, dizini güncelleyerek sistemin modelin eğitim kesim tarihinden sonra var olmayan veya değişmiş bilgileri yansıtmasını sağlar. Üçüncüsü, modelin yanıtlarını daha doğrulanabilir hale getirir: geliştiriciler ve kullanıcılar getirilen parçaları inceleyebilir, alıntı yapabilir ve herhangi bir iddiayı kaynak bir belgeye kadar izleyebilir.
Bu özellikler RAG'yi kurumsal soru yanıtlama, müşteri destek yardımcı pilotları, hukuk ve uyumluluk araması ve temel modeli yeniden eğitmeden özel ya da tescilli veriler üzerinde çalışması gereken yapay zeka asistanları için varsayılan örüntü haline getirir.
Temel türler ve örüntüler
- Naif (ya da "Getir ve Oku") RAG: tek bir getirme adımı, en üst k parçayı doğrudan üreticinin istemine besler.
- Gelişmiş RAG: hassasiyeti artırmak için üretimden önce sorgu yeniden yazımı, yeniden sıralama ve parça düzeyinde filtreleme ekler.
- Modüler RAG: hattı web araması, SQL sorgusu veya API çağrıları gibi değiştirilebilir bileşenlerden oluşturur ve getirme ile üretim arasında döngü kurabilir.
- Graf RAG: derlemden bir bilgi grafiği oluşturur ve birbiriyle bağlantılı varlıkların alt grafiklerini getirir; bu, bağlantılı verilerde daha bağlamsal yanıtlar üretebilir.
- Etmen Tabanlı RAG: dil modelinin son bir yanıt üretmeden önce neyi, ne zaman getireceğine, çoğu zaman birden fazla araçla birlikte, karar vermesine olanak tanır.
Bilginin depolanmasını akıl yürütme motorundan ayırarak RAG, doğru, güncel ve denetlenebilir olması gereken üretim yapay zeka uygulamaları için temel bir yapı taşı haline gelmiştir. Orijinal araştırma Lewis ve diğerleri, "Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks" (2020) makalesinde açıklanmıştır ve güncel en iyi uygulamalar LlamaIndex ve LangChain gibi çerçevelerde belgelenmiştir.