Ana içeriğe geç

Orta9 dk

Halüsinasyon: neden olur, nasıl azaltılır

Önkoşul:Yaygın başarısızlık kalıpları

Kanca

Bir modele hiç var olmayan bir kitabın ismini sorsan, model “böyle bir kitap yok” mu der, yoksa UYDURUR mu? Bu ders, bu soruyu GERÇEK bir modelle, GERÇEK bir deneyle CEVAPLIYOR.

Sezgi

“Halüsinasyon” (hallucination), bir modelin, YANLIŞ ya da UYDURMA bir bilgiyi, DOĞRU bir bilgiyle AYNI güvenle sunmasıdır. Bu, bir “arıza” değil — bir dil modelinin MİMARİSİNİN doğrudan bir SONUCUDUR: NLP kategorisinin 20. dersinde gördüğümüz gibi, softmax HER ZAMAN toplamı 1 olan bir olasılık dağılımı üretir — “bilmiyorum” diye bir SEÇENEK YOKTUR.

Mekanizma

  1. kategorideki (NLP & LLM) AYNI eğitilmiş mini-GPT’yi, EĞİTİM VERİSİNDE hiç görmediği bağlamlarla test edelim:

Eğitim dışı girdide bile %100 güven

# Modeli, EĞİTİM VERİSİNDE HİÇ GÖRMEDİĞİ bir bağlamla (AYNI harfin ÜST ÜSTE tekrarı --
# "ABC" döngüsünde ASLA olmayan bir örüntü) test edelim.
model.eval()
print(f"\n{'Bağlam':<8} {'P(A)':<8} {'P(B)':<8} {'P(C)':<8} {'En olası':<10} {'Güven'}")
for baglam in ["AB", "AAAA", "BBBB", "CCCC"]:
    ids_b = torch.tensor([[stoi[c] for c in baglam]])
    with torch.no_grad():
        p = F.softmax(model(ids_b)[0, -1], dim=-1)
    en_olasi = VOCAB[p.argmax().item()]
    print(f"{baglam:<8} {p[0].item():<8.3f} {p[1].item():<8.3f} {p[2].item():<8.3f} {en_olasi:<10} {p.max().item():.3f}")

print("\n'AB' EĞİTİM verisinde GÖRÜLMÜŞTÜ -- model haklı olarak %100 güvenle 'C' diyor.")
print("Ama 'AAAA', 'BBBB', 'CCCC' -- bunların HİÇBİRİ eğitim verisinde YOKTU ('ABC' döngüsünde")
print("aynı harf ÜST ÜSTE asla gelmez). Yine de model, HER biri için TAM %100 güvenle bir")
print("cevap ÜRETTİ -- 'bilmiyorum' deme SEÇENEĞİ YOK, çünkü softmax HER ZAMAN toplamı 1 olan")
print("bir dağılım üretmek ZORUNDADIR (20. ders). Bu, HALÜSİNASYONUN yapısal kökenidir.")

Bağlam   P(A)     P(B)     P(C)     En olası   Güven
AB       0.000    0.000    1.000    C          1.000
AAAA     0.000    1.000    0.000    B          1.000
BBBB     0.000    0.000    1.000    C          1.000
CCCC     1.000    0.000    0.000    A          1.000

'AB' EĞİTİM verisinde GÖRÜLMÜŞTÜ -- model haklı olarak %100 güvenle 'C' diyor.
Ama 'AAAA', 'BBBB', 'CCCC' -- bunların HİÇBİRİ eğitim verisinde YOKTU ('ABC' döngüsünde
aynı harf ÜST ÜSTE asla gelmez). Yine de model, HER biri için TAM %100 güvenle bir
cevap ÜRETTİ -- 'bilmiyorum' deme SEÇENEĞİ YOK, çünkü softmax HER ZAMAN toplamı 1 olan
bir dağılım üretmek ZORUNDADIR (20. ders). Bu, HALÜSİNASYONUN yapısal kökenidir.

Matematik

Güven, doğruluğun garantisi değildir
i=1VP(xibag˘lam)=1HER ZAMAN, bag˘lam ne olursa olsun\sum_{i=1}^{V} P(x_i \mid \text{bağlam}) = 1 \quad \text{HER ZAMAN, bağlam ne olursa olsun}

Bu matematiksel ZORUNLULUK (softmax’ın TANIMI), modelin GÖRDÜĞÜ bağlamın kendi eğitim dağılımına AİT olup OLMADIĞINA BAKMAKSIZIN geçerlidir. Model, “bu bağlamı hiç görmedim” diye bir SİNYAL üretmez — SADECE elindeki bilgiyle en olası tahmini üretir. Bu dersteki deneyde, “AAAA” gibi TAMAMEN yeni bir bağlamda bile en yüksek olasılık DAİMA 1.0’a YAKINSADI.

Kod

Eğitimde görülen ve görülmeyen bağlamlarda model güvenini gösteren çubuk grafik; tüm çubuklar aynı yükseklikte, yaklaşık 1.0.
Eğitimde görülen 'AB' bağlamı (yeşil) ile hiç görülmeyen 'AAAA', 'BBBB', 'CCCC' bağlamları (turuncu) arasında, model GÜVENİ açısından HİÇBİR fark yok -- hepsi %100.

Bu bulgunun NEDENİNİ ve pratik AZALTMA yollarını özetleyelim:

Neden olur, nasıl azaltılır

print("\nHALÜSİNASYON NEDEN olur:")
print("  1. Mimari ZORUNLULUK: softmax her zaman 1'e toplanan bir dağılım üretir -- 'bilmiyorum'")
print("     diye bir SEÇENEK YOKTUR, model HER ZAMAN 'en olası' bir token seçmek ZORUNDADIR.")
print("  2. Güven (confidence), DOĞRULUĞUN garantisi DEĞİLDİR (bu dersteki örnek) -- eğitim")
print("     dağılımı DIŞINDAKİ bir girdide bile model YÜKSEK olasılıklı cevaplar üretebilir.")
print("  3. 4. dersteki bulgu: 'uzman' bir persona, YANLIŞ bir cevabı daha İKNA EDİCİ gösterebilir --")
print("     halüsinasyonu DAHA TEHLİKELİ kılar (fark edilmesi ZORLAŞIR).")
print("\nHALÜSİNASYON NASIL azaltılır:")
print("  1. GROUNDING (temellendirme): modele, cevabı KENDİ hafızasından UYDURMAK yerine,")
print("     VERİLEN bir kaynaktan ALINTI yapmasını sağlamak -- 11. dersin (RAG) TAM konusu.")
print("  2. Düşük TEMPERATURE (22. ders): factual görevlerde T'yi düşürmek, modelin EN olası")
print("     (genelde en GÜVENİLİR) cevaba YAKINSAMASINI sağlar -- ama RİSKİ SIFIRLAMAZ.")
print("  3. 'Bilmiyorum' SEÇENEĞİNİ açıkça izin vermek: istemde 'emin değilsen belirt' gibi bir")
print("     talimat, modelin YÜKSEK olasılıklı ama TEMELSİZ bir cevap yerine BELİRSİZLİĞİNİ")
print("     İFADE ETMESİNİ (kısmen) teşvik edebilir.")
print("  4. İNSAN doğrulaması: yüksek riskli kararlarda (tıbbi, hukuki, mali), model çıktısı")
print("     HER ZAMAN bir insan tarafından KONTROL edilmelidir.")

HALÜSİNASYON NEDEN olur:
  1. Mimari ZORUNLULUK: softmax her zaman 1'e toplanan bir dağılım üretir -- 'bilmiyorum'
     diye bir SEÇENEK YOKTUR, model HER ZAMAN 'en olası' bir token seçmek ZORUNDADIR.
  2. Güven (confidence), DOĞRULUĞUN garantisi DEĞİLDİR (bu dersteki örnek) -- eğitim
     dağılımı DIŞINDAKİ bir girdide bile model YÜKSEK olasılıklı cevaplar üretebilir.
  3. 4. dersteki bulgu: 'uzman' bir persona, YANLIŞ bir cevabı daha İKNA EDİCİ gösterebilir --
     halüsinasyonu DAHA TEHLİKELİ kılar (fark edilmesi ZORLAŞIR).

HALÜSİNASYON NASIL azaltılır:
  1. GROUNDING (temellendirme): modele, cevabı KENDİ hafızasından UYDURMAK yerine,
     VERİLEN bir kaynaktan ALINTI yapmasını sağlamak -- 11. dersin (RAG) TAM konusu.
  2. Düşük TEMPERATURE (22. ders): factual görevlerde T'yi düşürmek, modelin EN olası
     (genelde en GÜVENİLİR) cevaba YAKINSAMASINI sağlar -- ama RİSKİ SIFIRLAMAZ.
  3. 'Bilmiyorum' SEÇENEĞİNİ açıkça izin vermek: istemde 'emin değilsen belirt' gibi bir
     talimat, modelin YÜKSEK olasılıklı ama TEMELSİZ bir cevap yerine BELİRSİZLİĞİNİ
     İFADE ETMESİNİ (kısmen) teşvik edebilir.
  4. İNSAN doğrulaması: yüksek riskli kararlarda (tıbbi, hukuki, mali), model çıktısı
     HER ZAMAN bir insan tarafından KONTROL edilmelidir.

Nerede işe yarar

Halüsinasyonu TAMAMEN ortadan kaldırmak (bu dersteki matematiksel nedenden ötürü) MÜMKÜN DEĞİLDİR — ama YÖNETİLEBİLİR:

  • En etkili YÖNTEM grounding’dir (temellendirme): modele cevabı KENDİ hafızasından “hatırlamak” yerine, sana VERDİĞİN bir kaynaktan ALINTI yapmasını iste — 11. ders (RAG) bunu SİSTEMATİK hale getirir.
  • Yüksek riskli görevlerde İNSAN doğrulaması ATLANMAMALIDIR — model güveni (bu dersteki gibi) YANILTICI olabilir.
  • 4. dersteki bulguyu HATIRLA: “uzman” bir persona, YANLIŞ bir cevabı DAHA İKNA EDİCİ gösterebilir — bu, halüsinasyonu fark etmeyi ZORLAŞTIRIR.

Bu 2 hatayı yaparsın:

  1. Modelin YÜKSEK bir olasılıkla cevap verdiğini görünce, bunu “kesinlikle doğru” ile EŞ TUTMAK — bu dersteki deney, bunun YANLIŞ olduğunu KANITLIYOR.
  2. Halüsinasyonun “gelecekte, daha büyük modellerle” tamamen ÇÖZÜLECEK bir SORUN olduğunu düşünmek — bu, softmax’ın MATEMATİKSEL TANIMINDAN kaynaklanan YAPISAL bir özelliktir, sadece AZALTILABİLİR.

Kendini test et

1. Notebook'ta model, HİÇ görmediği 'AAAA' bağlamında bile %100 güvenle bir cevap üretiyor. Bu NEYİ kanıtlıyor?
  1. Modelin bu örüntüyü de eğitimde gördüğünü
  2. Model mimarisinin, GÖRDÜĞÜ bağlamın eğitim dağılımına AİT olup olmadığını AYIRT EDEMEDİĞİNİ -- softmax her zaman toplamı 1 olan bir dağılım ürettiği için, 'bilmiyorum' diye bir seçenek YOKTUR (doğru cevap)
  3. Bir hesaplama hatası olduğunu
  4. Modelin rastgele bir sayı ürettiğini

Neden: halusinasyon-kaniti bloğunda 'AB' (eğitimde görülen) ile 'AAAA' (hiç görülmeyen) arasında güven açısından HİÇBİR fark yok -- ikisi de tam 1.000.

2. Softmax'ın 'her zaman 1'e toplanan bir dağılım üretmesi' özelliği, halüsinasyonla NASIL ilişkilidir?
  1. Hiçbir ilişkisi yoktur
  2. Bu matematiksel ZORUNLULUK, modelin 'bu konuda hiçbir fikrim yok' diye bir SİNYAL üretmesini İMKANSIZ kılar -- model HER ZAMAN, elindeki bilgiyle EN OLASI bir tahmin üretmek ZORUNDADIR, bilgisi YETERSİZ olsa bile (doğru cevap)
  3. Softmax sadece eğitim sırasında kullanılır
  4. Bu özellik sadece küçük modellerde görülür

Neden: MathBox'ta bu formül AÇIKÇA gösteriliyor: toplam HER ZAMAN 1'dir, bağlam ne olursa olsun -- bu da halüsinasyonun yapısal/matematiksel KÖKENİDİR.

3. Halüsinasyonu azaltmak için EN ETKİLİ yöntem olarak bu derste hangi teknik öne çıkarılıyor?
  1. Modeli daha büyük yapmak
  2. Grounding (temellendirme) -- modelden cevabı KENDİ hafızasından üretmesini istemek yerine, VERİLEN bir kaynaktan alıntı yapmasını istemek; bu, 11. dersin (RAG) temel konusudur (doğru cevap)
  3. Sadece İngilizce kullanmak
  4. Temperature değerini yükseltmek

Neden: kullanım bölümünde grounding/RAG AÇIKÇA 'en etkili yöntem' olarak öne çıkarılıyor -- düşük temperature ve insan doğrulaması TAMAMLAYICI önlemler olarak listeleniyor, ama RİSKİ sıfırlamıyor.

Özet

Özet

  • Halüsinasyon, bir modelin yanlış bilgiyi doğru bilgiyle AYNI güvenle sunmasıdır.
  • Bu, bir arıza değil -- softmax'ın "her zaman 1'e toplanan bir dağılım üretme" ZORUNLULUĞUNUN yapısal bir sonucudur.
  • Gerçek bir modelle deneyde, eğitim dışı bir bağlamda ('AAAA') bile güven TAM %100 kaldı.
  • En etkili azaltma yöntemi grounding (temellendirme) -- modeli VERİLEN bir kaynağa dayandırmak (11. ders, RAG).
  • Model güveni yüksek olsa bile, yüksek riskli kararlarda İNSAN doğrulaması VAZGEÇİLMEZDİR.
Sonraki adım: RAG'e giriş →