AI Serisi Mülakat Soruları 11: RAG Nasıl Optimize Edilir?
RAG optimizasyonu tek bir aşamanın ayarlanması değil, tüm bir işlem hattının optimize edilmesi sürecidir. Aşağıda veri indeksleme, alma, oluşturma ve değerlendirme olmak üzere dört boyutta sistematik optimizasyon stratejileri sunuyorum ve mülakatta bahsedebileceğiniz pratik deneyimler ekliyorum.
1. Veri İndeksleme Tarafı Optimizasyonu ("Bilgi Tabanı" Kalitesini Artırma)
Bu, en çok göz ardı edilen ancak en hızlı sonuç veren yerdir.
| Optimizasyon Noktası | Sorun Belirtisi | Spesifik Yöntem | Etki Metriği |
|---|---|---|---|
| Belge Ayrıştırma | PDF'deki tablolar, akış diyagramları göz ardı edilir veya metin bozuk, sıra karışık olur. | Daha iyi ayrıştırma kütüphaneleri kullanın (unstructured, pypdf'nin düzen koruma modu gibi); tabloları pandas ile çıkarıp Markdown'a dönüştürün. |
Geri çağırma +%5~15 |
| Metin Parça Boyutu | Chunk çok küçükse bağlam kaybolur (ör. "Bu yıl geliri arttı" cümlesindeki "bu" referansı kaybolur); chunk çok büyükse alma gürültüsü artar. | Farklı chunk boyutlarını dene (256/512/768 token), bindirme %10~20; uzun belgelerde semantik sınırlara (paragraf/başlık) göre böl, sabit uzunlukta değil. | İsabet oranı / Doğruluk |
| Metaveri Ekleme | İlgili paragraf bulunur ancak kaynağa veya zamana ulaşılamaz veya alan bazında filtreleme gerekir. | Her chunka metaveri ekle: source (dosya adı/URL), timestamp, page_num, doc_type. Alırken filtre kullan (ör. doc_type == 'legal'). |
Filtreleme hassasiyeti |
| Gömme Modeli Seçimi | Genel embedding dikey alanlarda (tıp, kod, hukuk) kötü performans gösterir. | Alan bazında ince ayarlanmış modeller kullan (BGE-large-zh, GTE-Qwen2-7B-instruct); veya kendi embedding modelinizi ince ayarlayın (triplet loss ile). | Alma MRR@10 +%10~20 |
2. Alma Tarafı Optimizasyonu ("Kitap Karıştırmayı" Daha Doğru Hale Getirme)
Alma, LLM'e beslenen "referans malzemenin" kalitesini belirler.
| Optimizasyon Noktası | Sorun Belirtisi | Spesifik Yöntem | Etki |
|---|---|---|---|
| Karma Alma | Vektör alma kesin terimleri eşleştiremez (ör. ürün modeli ABC-123), anahtar kelime alma eş anlamlıları anlayamaz. |
Hem vektör almayı (semantik) hem de BM25'i (anahtar kelime) kullan, ağırlıklandır (ör. 0.7vektör + 0.3BM25) veya rerank ile birleştir. | Geri çağırma +%10~25 |
| Yeniden Sıralama (Rerank) | Vektör almanın ilk sonuçları en ilgili olmayabilir, 10. sonuç en iyisidir. | Cross-encoder modeli (ör. BGE-reranker-v2, Cohere Rerank) ile aday setini (ilk 20) yeniden puanla, top-K al. |
İsabet oranı belirgin artar (özellikle top-1) |
| Sorgu Yeniden Yazma | Kullanıcı sorusu belirsiz veya çok turlu diyalogda referans net değil ("Onun fiyatı nedir?"). | LLM ile orijinal soruyu almaya daha uygun bir forma dönüştür (ör. "iPhone 15'in fiyatı nedir?"); veya diyalog geçmişini kullanarak tamamla. | Geri çağırma +%5~15 |
| HyDE | Kullanıcı sorusu çok kısa veya soyut (ör. "Fotosentezden bahset"), doğrudan alma zayıf. | Önce LLM'den varsayımsal bir cevap üretmesini iste, sonra bu cevabı kullanarak belge ara. | Açık uçlu alanlar için uygun, ancak olgusal kesin sorular için uygun değil |
| Alma Sayısı Top‑K Ayarı | K çok küçükse kritik bilgi kaçabilir; K çok büyükse token tüketimi ve gürültü artar. | K=3/5/10 dene, geri çağırma ve cevap doğruluğu dengesini gözlemle. | Verimlilik ve etki arasında denge |
3. Oluşturma Tarafı Optimizasyonu (LLM'in Referans Malzemeyi İyi Kullanmasını Sağlama)
Alma ne kadar iyi olursa olsun, istem iyi değilse veya model kötüyse faydası yok.
| Optimizasyon Noktası | Sorun Belirtisi | Spesifik Yöntem | Etki |
|---|---|---|---|
| İstem Mühendisliği | LLM alınan içeriği görmezden gelir veya uydurma yapar. | Net talimat: "Yalnızca aşağıda verilen referans malzemeye dayanarak soruyu cevapla. Malzeme yetersiz veya ilgisizse 'Yeterli bilgi yok' cevabını ver." Kaynak göstermeyi gösteren few-shot örnekler ekle. | Doğruluk +%20~40 |
| Bağlam Sıkıştırma | Alınan içerik çok uzun (modelin bağlam penceresini aşar) veya çoğu gürültüdür. | LLMLingua veya Seçici Bağlam kullanarak en ilgili cümleleri koru, ardından LLM'e gönder. |
Bilgi kaybı riskini azalt |
| LLM Model Yükseltmesi | Küçük model (7B) karmaşık akıl yürütme yapamaz veya uzun bağlamı hatırlayamaz. | Daha güçlü bir model kullan (GPT-4o, Claude 3.5 Sonnet, Qwen2.5-72B). | Akıl yürütme doğruluğu büyük ölçüde artar |
| Akış ve Alıntı | Kullanıcı cevabın güvenilirliğini doğrulayamaz. | Oluşturma sırasında LLM'den [citation:1] çıktısı vermesini iste, bu alınan belgenin numarasına karşılık gelir. Arkada orijinal bağlantıyı ekle. |
Kullanıcı güveni + hata ayıklama |
| Cevap Reddetme Kalibrasyonu | Model cevap vermemesi gerektiğinde uydurur veya cevap vermesi gerekirken bilmiyorum der. | Bir benzerlik eşiği belirle: alınan top-1 chunk'ın soruyla kosinüs benzerliği 0.7'nin altındaysa, LLM'e "malzeme ilgisiz" uyarısı ver. | Halüsinasyon oranını düşür |
4. Değerlendirme ve Yineleme Tarafı (Nereye Ayarlayacağını Bilmek)
Ölçüm olmadan optimizasyon yapılamaz.
| Optimizasyon Noktası | Yöntem | Metrik |
|---|---|---|
| Değerlendirme Seti Oluşturma | 100~300 gerçek kullanıcı sorusu + standart cevap + doğru alınan belge ID'leri hazırla. | Farklı zorluk ve niyetleri kapsa. |
| Otomatik Değerlendirme | RAGAS (Doğruluk, Cevap İlgisi, Bağlam Geri Çağırma) veya TruLens kullan. | Üç temel metrik: Doğruluk, Cevap İlgisi, Bağlam Geri Çağırma. |
| İnsan Değerlendirmesi | Haftada 20 kötü durumu test et, hata türlerini analiz et (alma başarısızlığı / oluşturma hatası / bilgi tabanı eksikliği). | İyileştirme önceliği sıralaması. |
| A/B Testi | Üretim ortamında farklı alma stratejilerini (ör. BM25 vs karma alma) bölerek test et. | Çevrimiçi metrikler: Kullanıcı memnuniyeti, cevapsız oranı. |
5. Mülakatta Söylenebilecek "Pratik Deneyimler" (Artı Puan)
"Sorumlu olduğum RAG projesinde, başlangıçta temel isabet oranı %67 idi. Üç şey yaptım:
1. Parçalamayı sabit 1024'ten dinamik semantik bölmeye (başlık+paragraf) değiştirdim, isabet oranı %74'e çıktı;
2. Karma alma (vektör + BM25) ve küçük bir rerank modeli ekledim, isabet oranı %83'e yükseldi;
3. İstemi optimize ettim ve '[İlgili bilgi bulunamadı]' çıktısını zorunlu kıldım, halüsinasyon oranı %22'den %5'in altına düştü.Ayrıca, sürekli bir değerlendirme boru hattı kurduk, her değişiklikten önce 200 soruluk RAGAS puanı alarak gerileme olmadığından emin olduk."
Son Özet: Tam Bir RAG Optimizasyon Yol Haritası
Veri katmanı → Belge temizleme, parçalama optimizasyonu, metaveri zenginleştirme, alan embedding
Alma katmanı → Karma alma, rerank, sorgu yeniden yazma, HyDE, Top-K ayarı
Oluşturma katmanı → İstem güçlendirme, talimat gereksinimleri, sıkıştırma, alıntı, reddetme eşiği
Değerlendirme katmanı → Değerlendirme seti, RAGAS, insan analizi, A/B deneyleri
评论
暂无已展示的评论。
发表评论(匿名)