Evaluation

Döngüyü Durdurmak: Geliştiriciler İçin Güçlü Halüsinasyon Tespiti Rehberi

Büyük Dil Modelleri (LLM'ler) girişim uygulamalarında yeni bir merak nesnesinden temel altyapıya geçerken, "siyah kutu" sorunu kritik bir güven meselesine dönüşüyor. Bu opaklığın en belirgin belirtisi halüsinasyondur; modelin gerçeğe aykırı veya uydurma bilgileri kendinden emin bir şekilde üretmesidir. Geriye Dönük Üretim (RAG) boru hatları veya ajan tabanlı iş akışları geliştiren geliştiriciler için bu hataları tespit etmek sadece bir özellik değil; bir güvenlik gerekliliğidir. Bu yazı, basit regex kontrollerinin ötesine geçerek halüsinasyonları tespit etme, ölçme ve azaltma teknik stratejilerini incelemektedir.

Halüsinasyon Türlerini Anlamak

Tespit mekanizmalarını uygulamadan önce, arıza modlarını kategorize etmeliyiz. Stanford İnsan Odaklı Yapay Zeka Enstitüsü'nün araştırmalarına göre halüsinasyonlar genellikle iki kategoriye ayrılır:

  • Gerçekçi Halüsinasyonlar: Model, yerleşik gerçeklerle veya sağlanan bağlamla çelişen bilgiler üretir.
  • Atıf Halüsinasyonları: Model, var olmayan kaynaklara atıfta bulunur veya bilgileri yanlış belgelere atfeder.

Tespit stratejileri, hangi türü hedef aldığınıza göre önemli ölçüde farklılık gösterir. Gerçekçi tespit, doğru veriye (ground truth) veya semantik benzerlik skorlarına ihtiyaç duyar; atıf tespiti ise sıkı kaynak takibini gerektirir.

Strateji 1: Gömme (Embedding) ile Semantik Benzerlik

RAG sistemlerinde gerçekçi halüsinasyonları tespit etmek için en erişilebilir yöntem, modelin çıktısı ile alınan bağlam arasındaki semantik benzerliği ölçmektir. Model $X$ iddia ediyorsa ancak bağlam $Y$'yi destekliyorsa, iddia ile ilgili bağlam parçası arasındaki gömme mesafesi büyük olacaktır.

Burada langchain ve sentence-transformers kullanılarak uygulanabilir bir örnek bulunmaktadır:


from langchain.embeddings import SentenceTransformerEmbeddings
from langchain.text_splitter import RecursiveCharacterTextSplitter
from sklearn.metrics.pairwise import cosine_similarity

def check_hallucination(context_chunk, generated_answer, model_name="all-MiniLM-L6-v2"):
    # Gömmeleri başlat
    embeddings = SentenceTransformerEmbeddings(model_name=model_name)
    
    # Gömme oluştur
    context_embedding = embeddings.embed_documents([context_chunk])[0]
    answer_embedding = embeddings.embed_documents([generated_answer])[0]
    
    # Kosinüs benzerliğini hesapla
    similarity = cosine_similarity([context_embedding], [answer_embedding])[0][0]
    
    # Eşik mantığı
    return similarity > 0.85  # Olasıysa True, büyük olasılıkla halüsinasyonsa False döndürür

Bu yaklaşım hesaplama açısından ucuzdur ve kısa yanıtlar için etkilidir. Ancak, yanıtın birden fazla bağlam parçasından türetildiği nüanslı akıl yürütme durumlarında zorlanır.

Strateji 2: LLM-Hakem (LLM-as-a-Judge)

Karmaşık akıl yürütme görevlerinde, gömme benzerliği genellikle yetersiz kalır. Daha sağlam bir yaklaşım, birincil modelin yanıtının bağlama sadakatini değerlendirmek için ikincil, daha güçlü bir LLM kullanmaktır. "LLM-Hakem" olarak bilinen bu teknik, yeni modellerin akıl yürütme yeteneklerinden yararlanarak ince ayrıntılı tutarsızlıkları tespit eder.


def verify_with_llm(context, claim, judge_model):
    prompt = f"""
    Aşağıdaki iddiayı yalnızca sağlanan bağlama dayanarak analiz edin.
    Bağlam: {context}
    İddia: {claim}
    
    İddianın bağlam tarafından tamamen desteklendiğini belirleyin.
    Yalnızca 'SUPPORTED' (DESTEKLENİYOR) veya 'NOT_SUPPORTED' (DESTEKLENMİYOR) döndürün.
    """
    response = judge_model.invoke(prompt)
    return response.content == 'SUPPORTED'

Bu yöntem, ince taneli değerlendirmeye olanak tanır; kısmi halüsinasyonlar ile tamamen uydurma bilgiler arasındaki farkı ayırt eder. Gömme kontrollerine göre daha pahalı ve yavaştır; bu nedenle yüksek riskli değerlendirmeler veya işleme sonrası kalite kontrolleri için idealdir.

Strateji 3: Öz-Tutarlılık ve Oylama

Başka bir güçlü teknik öz-tutarlılıktır. Modeli aynı soruya yanıt üretmesi için birden fazla kez tetikleyerek, çıktılardaki varyansı analiz edebilirsiniz. Model, farklı başlangıç değerlerinde (seeds) oldukça farklı yanıtlar üretirse, bu düşük güveni ve halüsinasyon olasılığının daha yüksek olduğunu gösterir.

Sonuç

Halüsinasyon tespiti için tek bir mucizevi çözüm yoktur. En etkili sistemler çok katmanlı bir yaklaşım benimser: hızlı, gerçek zamanlı filtreleme için gömme benzerliği ve titiz, çevrimdışı değerlendirme için LLM-Hakem kullanımı. Bu tespit katmanlarını entegre ederek geliştiriciler, sadece zeki değil, aynı zamanda güvenilir ve sağlam AI uygulamaları inşa edebilirler.

Share: