Evaluation

Uçtan Uca RAG Metrikleri

Bir Geri-Bilgi Artırmalı Üretim (RAG) sistemi kurmak artık sadece bir vektör veritabanı ile bir LLM'i birleştirmek değildir. Güvenilir, ölçülebilir bir boru hattı mühendisliği yapmaktır. Orta ve ileri düzey geliştiriciler için en büyük zorluk uygulamada değil, değerlendirmede yatar. Sisteminiz başarısız olduğunda gerçekten çalışıp çalışmadığını nasıl anlarsınız? Cevap, geri alma doğruluğunu üretim sadakatiyle ilişkilendirmede yatar.

RAG Değerlendirmesindeki Yalıtım Sorunu

Geleneksel olarak ekipler, geri alma ve üretim işlemlerini izole olarak değerlendirir. Geri alıcınız için Recall@K hesaplayabilir ve ardından üreticinizin halüsinasyon oranını bağımsız olarak ölçebilirsiniz. Faydalı olsa da, bu yaklaşım iki bileşen arasındaki kritik nedensel bağlantıyı kaçırır. Yüksek doğrulukta bir geri alma kümesi, prompt mühendislemesi zayıfsa hala sadakatsiz bir üretime yol açabilir. Tersine, üretim akıcı olsa bile, geri alma bileşeni doğru bağlamı bulamadıysa halüsinasyon yapıyor olabilir. Sağlam üretim boru hatları oluşturmak için RAG'ı uçtan uca bir sistem olarak ele almalıyız.

Temel Metriklerin Tanımlanması

Bu bileşenleri ilişkilendirmek için, boşluğu kapatmaya özel metriklere bakmamız gerekir. Bağlam Doğruluğu, alınan belgelerin soruyla ilgili olup olmadığını ölçer. Üretim Sadakati (veya Cevap Sadakati), alınan bağlam tarafından gerçekten desteklendiği sürece, harici bilgi veya halüsinasyon eklemeden oluşturulan cevabın sadakatini ölçer.

Her ikisini de izleyerek bir tanı matrisi oluşturabilirsiniz. Bağlam doğruluğu yüksek ancak sadakat düşükse, prompt'unuzun optimize edilmesi gerekir. Bağlam doğruluğu düşükse, gömme modeliniz veya parçalama stratejiniz darboğazdır.

Kodda İlişkilendirmenin Uygulanması

Python ve hipotetik bir değerlendirme çerçevesi kullanarak pratik bir örneğe bakalım. Oluşturulan cevabın yalnızca sağlanan bağlama dayandığını doğrulayan bir kontrol simüle edeceğiz.

def evaluate_faithfulness(question, context, answer):
    """
    Cevabın sağlanan bağlama sadık olup olmadığını belirlemek için
    Yargıç olarak LLM kullanır.
    """
    prompt = f"""
    Aşağıdaki cevabın bağlama sadık olup olmadığını belirleyin.
    Soru: {question}
    Bağlam: {context}
    Cevap: {answer}
    
    Cevap bağlam tarafından desteklendiğinde YALNIZCA 'True'
    veya halüsinasyon içerdiğinde 'False' çıktısı verin.
    """
    response = llm_client.generate(prompt)
    return response.strip() == 'True'

# Örnek Kullanım
qa_pair = {
    "question": "Fransa'nın başkenti nedir?",
    "retrieved_docs": "Paris, Fransa'nın başkentidir.",
    "generated_answer": "Paris, Fransa'nın başkentidir."
}

is_faithful = evaluate_faithfulness(
    qa_pair["question"],
    qa_pair["retrieved_docs"],
    qa_pair["generated_answer"]
)
print(f"Sadakati Kontrolü: {is_faithful}")

Üretimdeki Pratik Uygulama

Üretim ortamında, bu metrikleri kullanıcı sorgularınızla birlikte günlüğe kaydetmelisiniz. Zaman içindeki ilişkilendirmeyi takip ederek regresyon kalıplarını belirleyebilirsiniz. Örneğin, vektör veritabanı şemanızı güncelledikten sonra, bağlam doğruluğunda bir düşüş ve bunun da sonunda sadakatte bir azalmaya yol açtığını görebilirsiniz. Bu durumu kullanıcıların bozulmayı fark etmeden önce erken tespit etmek, geri alma veya yeniden ayarlama yapmanıza olanak tanır.

Sonuç

Başarılı bir RAG uygulaması, yalıtılmış metriklerin ötesine geçmeyi gerektirir. Geri alma doğruluğunu üretim sadakatiyle ilişkilendirerek, sisteminizin sağlığına dair bütünsel bir görünüm elde edersiniz. Bu yaklaşım yalnızca hata ayıklamaya yardımcı olmakla kalmaz, aynı zamanda paydaşların AI destekli uygulamalarınızın güvenilirliği konusunda güvenini de pekiştirir. RAG sisteminizin sadece akıllı değil, aynı zamanda güvenilir olduğundan emin olmak için bugün uçtan uca süreci ölçmeye başlayın.

Share: