RAG Nedir? Retrieval-Augmented Generation Basitçe Anlatıldı
RAG (retrieval-augmented generation), bir yapay zeka modeline sorulara kendi bilgilerinizi kullanarak yanıt verdirmenin bir yoludur. Biri bir soru sorduğunda uygulamanız önce belgelerinizde en ilgili pasajları arar, ardından bu pasajları soruyla birlikte modele verir. Model yanıtını eğitim sırasında tesadüfen öğrendiklerine yalnızca dayanarak değil, bu metinden yola çıkarak yazar.
Yapay zekayla inşa ederken RAG neden önemlidir
Büyük bir dil modeli dünya hakkında genel olarak çok şey bilir, ama işletmeniz hakkında hiçbir şey bilmez: fiyatlarınızı, politikalarınızı, ürün kılavuzunuzu, geçen haftaki destek taleplerinizi. Ayrıca bir eğitim kesim tarihi vardır, bu yüzden yakın tarihli hiçbir şeyi bilmez. Yine de ona sorarsanız, kendinden emin, makul görünen ama yanlış bir yanıt verebilir.
Bunu çözmek için üç geniş yaklaşım vardır:
| Yaklaşım | Ne yapar | Nerede iyidir |
|---|---|---|
| Her şeyi prompta yapıştırmak | Her soruyla tüm belgelerinizi gönderir | Az miktarda metin — birkaç sayfa |
| RAG | Belgelerinizi arar, yalnızca ilgili kısımları gönderir | Daha büyük ya da değişen koleksiyonlar: yardım merkezleri, kılavuzlar, notlar |
| Fine-tuning | Modeli örneklerle daha fazla eğitir | Ton, biçim ve tekrar eden görevler — değişen bilgiler değil |
Modern modeller uzun promptları kabul eder, bu yüzden kısa bir SSS için ilk yaklaşım çoğu zaman yeterlidir. RAG ise her seferinde göndermek istemediğiniz kadar metniniz olduğunda değerini kazanır; çünkü gönderdiğiniz her kelime para ve zaman demektir (bkz. LLM API’leri nasıl ücretlendirir).
“Dokümanlarımızla sohbet” özelliği, destek asistanı ya da dahili bilgi aracı inşa ediyorsanız, neredeyse kesinlikle bir tür RAG inşa ediyorsunuz demektir.
Günlük hayattan bir benzetme
Açık kitap bir sınav düşünün. Cevabı ezberinden vermek zorunda olan bir öğrenci yanlış hatırlayabilir ya da üstünkörü cevap verebilir. Önce doğru sayfalara bakıp okumasına ve sonra cevaplamasına izin verilen öğrenci çok daha güvenilirdir — tabii doğru sayfaları bulabildiği sürece.
- Öğrenci dil modelidir.
- Ders kitabı belgelerinizdir.
- Doğru sayfalara bakmak geri getirme (retrieval) adımıdır.
- Cevabı o sayfalardan yazmak üretme (generation) adımıdır.
RAG, açık kitap versiyonudur. Ve sınavdaki gibi, cevabın kalitesi büyük ölçüde doğru sayfaların bulunup bulunmadığına bağlıdır.
RAG adım adım nasıl çalışır
Tipik bir RAG kurulumu iki aşamadan oluşur.
Belgelerinizi hazırlamak (önceden yapılır):
- Toplayın — kaynak materyali: yardım makaleleri, PDF’ler, politikalar, ürün verileri.
- Parçalara ayırın (chunk): Uzun belgeleri daha küçük parçalara bölün, çoğu zaman birkaç paragraflık, böylece arama yalnızca ilgili kısmı döndürebilsin.
- Her parçayı embed edin: Her parçayı bir embedding modeline gönderin; metni, anlamını yakalayan uzun bir sayı listesi olan bir embedding’e dönüştürsün. Benzer konulardaki metinler benzer sayılara sahip olur.
- Saklayın: Parçaları ve embedding’lerini benzerliğe göre arama yapabilen bir veritabanında tutun (genellikle vektör veritabanı ya da vektör indeksi denir).
Bir soruyu yanıtlamak (her seferinde yapılır):
- Soruyu aynı embedding modeliyle embed edin.
- Geri getirin: Embedding’i soruya en yakın olan parçaları bulun — diyelim ilk beş.
- Prompt’u oluşturun: Talimatlar, geri getirilen parçalar ve soru.
- Üretin: Dil modeli, bu parçalara dayanarak bir yanıt yazar; ideal olarak hangilerini kullandığını da belirtir.
Bunu işe yarar kılan, aramanın anlam üzerinden yapılmasıdır: “paramı geri almak” sorusu, hiçbir kelimesi ortak olmasa bile “İade politikası” başlıklı bir parçayı bulabilir.
Uygulamalı örnek: bir spor salonunun yardım asistanı
Bir spor salonunun 40 yardım makalesi olduğunu ve web sitesinde bir sohbet asistanı istediğini düşünün. Bir üye şunu sorar: “Seyahatteyken üyeliğimi dondurabilir miyim?”
Uygulama soruyu embed eder ve en yakın üç parçayı getirir. Bunlardan biri şöyle okunur:
Üyelik dondurma: Aylık planlardaki üyeler üyeliklerini yılda en
fazla 2 ay dondurabilir. Dondurma başlamadan en az 7 gün önce
resepsiyondan ya da uygulamadan talepte bulunmaları gerekir.
Modele gönderilen prompt da şuna benzer:
Sen Northside Gym’in yardım asistanısın.
Yalnızca aşağıdaki kaynaklara dayanarak yanıt ver. Yanıt bunlarda
yoksa bilmediğini söyle ve resepsiyonla iletişime geçmeyi öner.
Hangi kaynağı kullandığını belirt.
[Kaynak 1: Üyelik dondurma] Aylık planlardaki üyeler dondurabilir...
[Kaynak 2: Üyeliği iptal etme] ...
[Kaynak 3: Misafir kartları] ...
Soru: Seyahatteyken üyeliğimi dondurabilir miyim?
Ve model şöyle yanıtlar: “Evet — aylık planda üyeliğinizi yılda en fazla iki ay dondurabilirsiniz. Başlamadan en az 7 gün önce resepsiyondan ya da uygulamadan talepte bulunun (kaynak: Üyelik dondurma).”
Spor salonu hiçbir şeyi yeniden eğitmedi. Dondurma politikasını değiştirdiğinde makaleyi günceller, uygulama o parçayı yeniden embed eder ve bir sonraki yanıt bunu yansıtır.
Temel terimler
| Terim | Anlamı |
|---|---|
| LLM | Büyük dil modeli — yanıtı yazan yapay zeka. Bkz. LLM nedir. |
| Embedding | Bir metin parçasının anlamını temsil eden sayı listesi. |
| Embedding modeli | Embedding üreten model. Genellikle sohbet modelinden ayrıdır ve çok daha ucuzdur. |
| Parça (chunk) | Bir belgenin, tek başına geri getirilebilecek boyutta bir parçası. |
| Vektör veritabanı / vektör araması | Benzer embedding’lere sahip öğeleri bulan depolama. Bazı normal veritabanları da bunu sunar — örneğin Postgres, pgvector eklentisi üzerinden. |
| Top-k | Soru başına kaç parçanın geri getirildiği. |
| Hibrit arama | Anlam bazlı aramayı normal anahtar kelime aramasıyla birleştirmek; ürün kodu gibi kesin terimlerde yardımcı olur. |
| Bağlam penceresi | Bir modelin tek istekte alabileceği en fazla metin miktarı. |
| Dayanak / alıntılar | Yanıtı belirli geri getirilmiş kaynaklara bağlamak ve bunları göstermek. |
Yaygın yanlış anlamalar
- “RAG modeli verilerimle eğitir.” Eğitmez. Modelin hiçbir şeyi değişmez; yalnızca soru anında ek metin okur.
- “RAG halüsinasyon olmayacağı anlamına gelir.” Daha az olacağı anlamına gelir. Geri getirme doğru parçayı kaçırırsa ya da yanıt belgelerinizde yoksa, model yine tahmin yürütebilir. “Bilmiyorum” demesini talimat olarak verin ve cevabını bildiğiniz sorularla test edin.
- “Özel bir vektör veritabanına ihtiyacım var.” Çoğu zaman yoktur. Mütevazı miktarda veri için zaten kullandığınız veritabanındaki bir vektör eklentisi ya da düz anahtar kelime araması bile yeterli olabilir.
- “Büyük parçalar daha iyidir.” Çok büyükse alakasız metin gönderirsiniz (daha fazla maliyet, daha fazla karmaşa); çok küçükse bir parça, onu anlamlı kılan bağlamı kaybeder. Ayarlamaya hazır olun.
- “Her şeyi yükleyin yeter.” Güncel olmayan, tekrarlanan ya da çelişen belgeler çelişkili yanıtlar üretir. Kaynak materyali temizlemek çoğu zaman yapabileceğiniz en büyük iyileştirmedir.
- “Herkes her belgeyi görebilir.” Yalnızca öyle inşa ederseniz. Bazı belgeler belirli kullanıcılara özelse, aramanın kendisi soruyu soranın kim olduğuna göre filtrelemelidir; aksi halde asistan bir müşterinin verisini başka bir müşteriye aktarabilir.
Maliyeti
Bir RAG özelliğinin genellikle üç sürekli maliyeti vardır: belgelerinizin embedding’i (küçük ve çoğunlukla tek seferlik), her sorunun embedding’i (çok küçük) ve dil modeli çağrısı (asıl maliyet; gönderdiğiniz parça sayısıyla büyür). Buna bir de veritabanınızdaki depolama eklenir. Yapay zeka sağlayıcınız bunları kendi hesabınıza fatura eder, bu yüzden orada bir harcama limiti belirleyin.
Yapay zeka inşa edicinizden ne istemelisiniz
- “RAG kurmadan önce kontrol et: içeriğimiz promptun içine dahil edilecek kadar küçük mü?”
- “Yardım makalelerini birkaç paragraflık parçalara böl, her parçanın başlığını ve kaynak bağlantısını koru, embedding’leri veritabanımızda sakla.”
- “Hibrit arama kullan — anlam bazlı ve anahtar kelime — böylece ürün kodları yine eşleşsin.”
- “Modele yalnızca geri getirilen kaynaklara dayanarak yanıt vermesini, bilmediğinde bunu söylemesini ve her yanıtın altında kaynakları göstermesini söyle.”
- “Yalnızca giriş yapmış kullanıcının görmeye yetkili olduğu belgelerde ara.”
- “Bir belge düzenlendiğinde otomatik olarak yeniden embed et.”
- “Yapay zeka sağlayıcı anahtarını tarayıcıda değil, sunucuda bir gizli değer olarak tut.”
- “Her soruyu, geri getirilen parçaları ve yanıtı kaydet ki kötü yanıtları inceleyebileyim.”
Mythex’te RAG
Mythex hazır bir bilgi tabanı ya da RAG ürünü içermez. Yaptığı şey, uygulamanızın içinde bunun kodunu yazmaktır: belgelerinizi ve kendi yapay zeka sağlayıcı anahtarınızı getirirsiniz; anahtar bir proje gizli değeri olarak saklanır ve agent, geri getirme ve sohbet bölümlerini kurar; depolama için projenin Postgres veritabanını kullanır. Sağlayıcı kullanımı Mythex kredilerine değil, sağlayıcı hesabınıza fatura edilir. Dokümantasyon, tek bir basit yapay zeka özelliğiyle başlayıp o çalıştıktan sonra RAG eklemeyi önerir — bkz. yapay zeka uygulaması inşa etmek ve yapay zeka chatbot uygulaması inşa etme ile uygulamanıza yapay zeka özellikleri ekleme rehberlerimiz.
Sorular
RAG basitçe ne demek?
RAG (retrieval-augmented generation), bir yapay zeka modelinin kendi bilgilerinizden yanıt vermesini sağlamanın bir yoludur. Model yanıt vermeden önce uygulamanız belgelerinizde soruyla en ilgili pasajları arar ve bunları prompta ekler. Böylece yanıt, modelin yalnızca eğitimde öğrendiklerine değil, bu metne dayanır.
RAG yapay zekayı verilerimle eğitir mi?
Hayır. RAG modelin kendisini hiç değiştirmez. Bir soru sorulduğu anda ilgili metni arar ve soruyla birlikte modele verir. Bir belgeyi güncellediğinizde bir sonraki yanıt yeni sürümü hemen kullanabilir.
RAG ile fine-tuning aynı şey mi?
Hayır. Fine-tuning, modeli örneklerle daha fazla eğiterek davranışını değiştirir; bu daha yavaştır ve üslup ya da biçim için daha uygundur. RAG ise modele soru anında okuyacağı bilgileri verir; bu da değişen bilgiler ya da doğru biçimde alıntılanması gereken bilgiler için daha iyidir.
RAG yapay zekâ halüsinasyonlarını durdurur mu?
Azaltır ama tamamen ortadan kaldırmaz. Arama yanlış pasajları bulursa ya da yanıt belgelerinizde yoksa model yine tahmin yürütebilir. İyi RAG uygulamaları modele bilmediğinde bunu söylemesini ister ve kullandığı kaynakları gösterir.