RAG (Retrieval Augmented Generation) Nedir?

Berika Varol Malkoçoğlu
3 min readOct 25, 2024

--

Karmaşık ve bilgi yoğunluğu gerektiren yapıları kurgulamak için dış bilgi kaynaklarına erişim sağlayan bir yöntemdir. Meta AI tarafından geliştirilmiş bu yöntem model eğitimi gerçekleştirmeden yeni bilgileri kullanarak cevap üretebilir.

GPT-4o ile üretilmiştir

Daha doğru ve bağlamsal olarak alakalı yanıtlar üretmeyi sağlayan RAG yöntemi Retrieval ve Generative modellerin birleşiminden oluşmaktadır.

  • Retrieval modeller: Belirli metin kaynağı yada veritabanı üzerinden bilgi almak için tasarlanmıştır.
  • Generative modeller: Belirli bir bağlama göre yeni içerik oluşturmak için tasarlanmıştır.

Bu yöntem sayesinde yeniden eğitim adımı atlanarak gösterilen kaynaktan cevap üretmesi sağlanabilir. Bir örnek ile açıklayalım.

Örneğin, SpaceX tarafından gerçekleştirilen bir görev hakkında bilgi soralım. Görüldüğü gibi CREW-8'in dönüş tarihini bilmiyor.

GPT-4o kullanıldı

SpaceX’in kendi sayfasındaki bilgileri kaynak gösterdiğimizde ise güncel bilgilere göre cevap üretimi gerçekleştirebiliyor. Burada modeli eğitmek için bir maliyet yada zaman kaybı yaşamadan en güncel cevabı alabildik. Hatta bir referans bile verebildik.

GPT-4o kullanıldı

Bu arada:

  • Eğer bu makaleyi beğendiyseniz, alkışlarınızı bekliyorum 👏
  • Daha fazla içerik için beni takip edebilirsiniz 👀

Peki bu işlem nasıl gerçekleşti?

Bilinmesi gereken temel kavramlar şunlardır:

  • Chunking: Verinin belirli parçalara ayrılması işlemidir.
  • Embedding: Metinler, görüntüler veya diğer karmaşık veriler gibi yüksek boyutlu verileri, daha düşük boyutlu ve anlamlı sayısal vektörlere dönüştürme işlemidir.
  • Indexing: Büyük veri kümelerindeki vektörlerin hızlı ve etkili bir şekilde aranmasına ve bulunmasına imkan tanıyan önemli bir veri yapılandırma yöntemidir.
  • Searching: Gelen sorgunun Indexlenen veriler üzerinde aramasını gerçekleştirir. Bu işlem Vektör, Keyword, Semantic yada Hibrit search algoritmalarından biriyle gerçekleştirilir.
Berika Varol Malkoçoğlu tarafından çizildi

Öncelikle kaynaktan alınan veriler chunking yöntemi ile parçalara ayrılır. Daha sonra Chunklara ayrışmış veriler embedding algoritmaları kullanılarak vektörlere dönüştürülür. Vektörize edilen veriler bir vektör veri tabanında (DB) saklanır. Ardından kaynak gösterilen verilerde hızlı arama yapıp sorulan sorunun cevabını bulabilmek için indexing işlemi gerçekleştirilir. Burada önemli nokta verilerin saklandığı veri tabanıdır. Bu DB’ler geleneksel olanların aksine vektörler arasındaki mesafeyi hesaplamak için optimize edilmiştir. Bu sayede gelen her bir sorguya göre hızlı arama gerçekleştirilebilir.

Sorguyu işlemek ise şu şekilde gerçekleşir; gelen sorgu aynı embeding algoritması ile vektörize edilir. Bu vektörün, veri uzayında eşleşen konumu çeşitli search algoritmaları ile aranır. Sorguya en yakın konumdaki vektör bizim çıktımız olur ve son kullanıcıya cevap olarak döndürülür.

Burada üretilen cevabı birebir verebilir, yorumlatabilir, farklı diller ile yazdırabilir, çıktı formatı belirleyebilir yada hayal gücünüze göre farklı eklentiler yaptırabilirsiniz. Bu değişiklikleri model için yazacağınız promptlar ve ayarlayacağınız hiperparametreler ile zenginleştirebilirsiniz.

NOT: Her bileşen tek tek anlatılacaktır. Kaçırmamak için takipte kalın :)

--

--

Berika Varol Malkoçoğlu
Berika Varol Malkoçoğlu

Written by Berika Varol Malkoçoğlu

PhD | Data Scientist | Lecturer | AI Researcher

No responses yet