Evaluation

RAG Değerlendirmesinde Ustalaşmak: Sezgisellikten Otomatik Metriklere

Geri Getirme Destekli Üretim (RAG) sistemleri, yanıtları belirli, geri getirilen verilerle ilişkilendirerek büyük dil modelleriyle etkileşim kurma biçimimizi devrim niteliğinde değiştirdi. Ancak bir RAG hattı oluşturmak sadece savaşın yarısıdır; güvenilir çalışmasını sağlamak asıl zorluktur. Standart LLM görevlerinden farklı olarak, RAG değerlendirmesi iki ayrı bileşeni ölçmeyi gerektirir: geri getirme kalitesi ve üretim kalitesi. Bu yazıda, anekdotik testlerin ötesine geçerek titiz, otomatik değerlendirme çerçevelerini nasıl uygulayacağımızı keşfedeceğiz.

RAG Değerlendirmesinin Anatomisi

BLEU veya ROUGE gibi geleneksel NLP metrikleri, geri getirme sürecini veya LLM'e sağlanan belirli bağlamı dikkate almadığı için RAG için yetersizdir. Bunun yerine, modern RAG değerlendirmesi üç temel boyuta odaklanır:

  1. Sadakat (Faithfulness): Üretilen yanıt, geri getirilen bağlama sıkı sıkıya bağlı mı? (yani, halüsinasyondan arı mı?)
  2. Yanıt İlgililiği (Answer Relevance): Yanıt, kullanıcının sorusunu doğrudan ele alıyor mu?
  3. Bağlam Hassasiyeti/Haslığı (Context Precision/Recall): Geri getirici, doğru ve ilgili parçaları doğru sırayla çekti mi?

RAGAS'ı Tanıtıyoruz: LLM-as-a-Judge İçin Bir Çerçeve

Manuel değerlendirme kenar durumları için değerli olsa da ölçeklenemez. İşte RAGAS (Retrieval Augmented Generation Assessment) gibi çerçevelerin parladığı yer. RAGAS, çıktıları altın standartlara karşı puanlamak veya referans gerektirmeyen metrikler kullanmak için bir LLM'i hakem olarak kullanır. RAG hattınızın performansını nicelleştirmek için standartlaştırılmış bir yol sağlar.

RAGAS ile Pratik Uygulama

Python kullanarak temel RAGAS değerlendirmesinin nasıl uygulanacağını inceleyelim. Öncelikle, gerekli paketlerin yüklendiğinden emin olun:


pip install ragas langchain-ollama langchain-chroma

Aşağıda, değerlendirme verilerinizi nasıl yapılandıracağınız ve metrikleri nasıl hesaplayacağınızın basitleştirilmiş bir örneği verilmiştir. `question` (soru), `ground_truth` (ideal yanıt), `retrieved_contexts` (vektör veritabanınızın çektiği parçalar) ve `answer` (LLM'in çıktısı) içeren bir veri setine ihtiyacınız olduğunu unutmayın.


from ragas import evaluate
from ragas.metrics import faithfulness, answer_relevancy, context_precision
from datasets import Dataset
import json

# Örnek: Değerlendirme setinizi tanımlayın
# Gerçek bir senaryoda, bu bir test setinden veya üretim günlüklerinden gelecektir
eval_data = {
    "question": ["What is the capital of France?"],
    "ground_truth": ["Paris is the capital of France."],
    "retrieved_contexts": [["Paris is a city in France. It is the capital."]],
    "answer": ["The capital of France is Paris."]
}

# Hugging Face Dataset nesnesine dönüştürün
dataset = Dataset.from_dict(eval_data)

# Ölçmek istediğiniz metrikleri tanımlayın
metrics = {
    "faithfulness": faithfulness,
    "answer_relevancy": answer_relevancy,
    "context_precision": context_precision
}

# Değerlendirmeyi çalıştırın
# Not: Bu, hakem rolü için yapılandırılmış bir LLM gerektirir
score = evaluate(
    dataset,
    metrics=metrics
)

# Sonuçları yazdırın
print(score)

Puanların Yorumlanması

  • Yüksek Sadakat (0.8+): LLM'iniz uydurma yapmıyor. Bu düşükse, istem mühendisliğiniz kusurlu olabilir veya model bağlamı görmezden geliyor olabilir.
  • Yüksek Bağlam Hassasiyeti: Vektör aramanız doğru belgeleri buluyor. Bu düşükse, gömme modelinizi, parçalama stratejinizi veya yeniden sıralayıcınızı ayarlamanız gerekebilir.
  • Yüksek Yanıt İlgililiği: Yanıt öz ve belirli sorguyu ele alıyor. Buradaki düşük puanlar genellikle LLM'in gereksiz dolgu maddeleri veya ilgisiz ayrıntılar sağladığını gösterir.

Metriklerin Ötesinde: Bir Geri Bildirim Döngüsü Oluşturma

Otomatik metrikler harikadır, ancak hikayenin tamamı değildir. En sağlam RAG sistemleri bir insan-döngüde (human-in-the-loop) stratejisini entegre eder. RAGAS'ı düşük performans gösteren sorguları belirlemek için kullanın, ardından insan etiketleyicilerin bu belirli durumları incelemesini sağlayın. Manuel olarak aramanız gereken yaygın başarısızlık modları şunlardır:

  • Parçalama Sorunları: İlgili bilgi iki parça arasında bölünmüştür, bu nedenle geri getirici bunu kaçırır.
  • Gömme Kayması (Embedding Drift): Gömme modeli, alanına özgü jargonu anlamaz.
  • İstem Belirsizliği: Kullanıcı sorgusu çok belirsizdir ve LLM, açıklama istemek yerine tahminde bulunur.

Sonuç

RAG sistemlerini değerlendirmek iteratif bir süreçtir. Bir taban çizgisi elde etmek için RAGAS gibi otomatik metriklerle başlayın, ardından belirli başarısızlık kalıplarını bulmak için verilere derinlemesine inin. Nicel puanları nitel insan incelemesiyle birleştirerek, geri getirme ve üretim hatlarınızı sürekli olarak iyileştirebilir ve RAG sisteminizin sadece etkileyici değil, aynı zamanda güvenilir olmasını sağlayabilirsiniz.

Share: