Yapay zekâ halüsinasyonu, kesin görünen ve yanlış olan bir cevaptır: uydurma bir bilgi, var olmayan bir makaleye yapılmış bir atıf, bir kütüphanenin hiç sahip olmadığı bir fonksiyon. ChatGPT, Claude ve Gemini dahil her sohbet modeli bunu yapar. Bu, bir yamayla giderilecek bir hata değildir; dil modellerinin metin üretme biçiminden kaynaklanır. Promptlar halüsinasyonları daha nadir yapabilir ve geriye kalanları ancak kontrol etmek yakalayabilir.
Dil modelleri neden halüsinasyon görür
Bir dil modeli her seferinde bir token yazar ve her birini o ana kadarki metni izleme olasılığı yüksek olduğu için seçer. Olasılık, modelin eğitimde gördüğü her şeye göredir. Bu süreçte hiçbir şey bir bilgiye bakmaz. Cevap eğitim verisinde yaygınsa olası devam genellikle doğru olandır. Nadirse, yeniyse ya da hiç yoksa model yine en makul devamı üretir ve sahip olmadığı bir bilgi hakkındaki makul metin bir halüsinasyondur.
Bazı soru türleri diğerlerinden daha açıktır:
- Belirli ayrıntılar: kesin sayılar, tarihler, isimler, sürüm numaraları, sayfa referansları. Cevabın şeklini tahmin etmek kolaydır; ayrıntıyı değil.
- Kaynaklar ve bağlantılar. Bir referansın tahmin edilebilir bir biçimi vardır (yazarlar, yıl, başlık, dergi), bu yüzden bir model hiç yazılmamış bir makale için düzgün biçimli bir referans üretebilir.
- Nadir ya da yeni konular: küçük bir kütüphane, yerel bir yönetmelik, modelin eğitim verisinin bittiği tarihten sonraki her şey.
- Yanlış bir öncüle dayanan sorular. Bir fonksiyonun ne yaptığını sorarsan model fonksiyon varmış gibi cevap vermeye eğilimlidir.
Akıcılık doğruluğun işareti değildir. Halüsinasyonlu bir cevap doğru bir cevapla aynı kendinden emin tona, aynı biçimlendirmeye ve aynı ayrıntı düzeyine sahiptir; gözden kaçırılmasının kolay olmasının nedeni budur.
Yanlış öncül tuzağı
Aşağıdaki sekmeler pandas'taki DataFrame.smart_merge() hakkında soru soruyor. Bu metot yok. İlk soru varmış gibi varsayıyor; ikincisi modelin bunu söylemesine izin veriyor.
DataFrame.smart_merge() iki DataFrame'i birleştirir ve sütun adlarını ve veri tiplerini karşılaştırarak birleştirme anahtarlarını senin için bulur. DataFrame'lerin biraz farklı adlara sahip anahtar sütunları paylaştığında, örneğin user_id ve userId, onları otomatik eşleştirebildiği için bunu kullan.
Anahtarlar ve birleştirme türü üzerinde tam kontrol için merge() hâlâ daha iyi bir seçimdir.
İlk yanıt gerçek parçalardan kurulmuş bir halüsinasyon: pandas DataFrame'leri gerçekten birleştirir ve anahtar eşleştirme istenmesi makul bir şeydir. Soru öncülü sağladı, model de ona uyan makul bir fonksiyon sağladı. Güncel modeller yanlış öncülleri eskilerden daha sık yakalıyor, ama bir varsayım olarak ifade edilmiş bir soru cevabı hâlâ onaylamaya doğru iter.
İkinci prompt iki şey yaptı. Metodun ne yaptığını sormadan önce var olup olmadığını sordu ve emin olmamak için açık izin verdi. Yanıt ayrıca doğrulamanın bir yolunu da verdi; korunacak alışkanlık bu: hasattr gerçek kütüphaneyi tek satırda kontrol eder.
Kaynaktan, alıntılarla cevap ver
Halüsinasyonu azaltmanın en güçlü yolu bilgileri prompta koymaktır. Cevap modelin görebildiği bir metindeyse hiçbir şeyi hatırlaması gerekmez ve sen de her iddiayı o metne karşı kontrol edebilirsin. Her iddia için destekleyen bir alıntı istemek kontrolü hızlandırır; belge sessiz kaldığında ne söyleyeceğini modele söylemek de boşluğu bir tahminle doldurma ihtimalini azaltır.
Production yedekleri ne kadar süre saklanıyor: 30 gün. Belge genel olarak yedekler için 30 gün, sadece staging için 7 gün veriyor. "Yedeklemeler her gece UTC 02:00'de çalışır ve 30 gün saklanır."
Birini kendim geri yükleyebilir miyim: Belgede yok. Belge sadece geri yüklemelerin nasıl talep edildiğini söylüyor: "Geri yükleme talepleri #ops kanalında yapılır ve genellikle dört saat içinde tamamlanır." Bu, onları başka bir ekibin yaptığını düşündürüyor, ama belge kendi kendine geri yükleme olup olmadığını söylemiyor.
Yanıtın ikinci soruyu nasıl ele aldığına bak. Genel bilgiden cevap veren bir model bir geri yükleme komutu anlatabilirdi. Belgeyle sınırlandırılınca metnin söylediğini sadece düşündürdüğünden ayırdı. Kısıtlar parçasını kapat ve yanıtın bunları hâlâ ayrı tutup tutmadığını görmek için tekrar sor.
<document> etiketleri kaynak malzemeyi talimatlarından ayrı tutar; bunun neden önemli olduğunu ayırıcılar ve XML etiketleri açıklıyor, modellere doğru belgeleri ölçekli şekilde vermeyi de bağlam mühendisliği anlatıyor. Web araması ya da dosya yüklemesi olan sohbet uygulamalarını da aynı fikir çalıştırır: cevap ancak sohbetteki kaynaklar kadar sağlam temellidir, bu yüzden sadece özetini değil, belirtilen kaynağın kendisini oku.
İşe yarayan diğer prompt alışkanlıkları
- Varsayma, sor. "X nasıl yapılır?" demeden önce "X'i yapmanın bir yolu var mı?" diye sor. Yanlış bir öncül, tetiklenmesi en kolay halüsinasyondur.
- Belirsizliği sor. "Emin olmadığın her iddiayı işaretle" sana önce kontrol edeceğin yerlerin bir listesini verir. Bu etiketler kalibre edilmiş olasılıklar değildir, ama çoğu zaman zayıf noktaları gösterir.
- Açabileceğin kaynaklar iste. Sonra onları aç. Açmadığın bir kaynak kontrol edilmemiştir ve bir bağlantı var olup desteklediği iddiadan farklı bir şey söylüyor olabilir.
- Sohbet uzadığında yeniden başla. Uzun bir sohbetin başındaki ayrıntılar konuşma büyüdükçe karışabilir ya da atılabilir. Önemli bilgiler için ilgili malzemeyi yapıştırarak yeni bir sohbet aç; nedenini token ve bağlam penceresi açıklıyor.
- İkinci kez, sıfırdan sor. Aynı bilgi sorusuna verilen iki bağımsız cevap uyuşmuyorsa en az biri yanlıştır. Uyuşma daha zayıf bir kanıttır, çünkü bir model aynı hatayı tekrarlayabilir.
Önemli olanı doğrula
Hiçbir prompt halüsinasyonu ortadan kaldırmaz, bu yüzden neyin kontrol edilmesi gerektiğine yanılmanın maliyetine göre karar ver. Bir beyin fırtınası ya da ilk taslak birkaç hata taşıyabilir. Bir rapordaki bir sayı, hukuki ya da tıbbi bir iddia, bir kişiye atfedilen bir alıntı ya da çalışmandaki bir kaynak birincil bir kaynak gerektirir.
Kod doğrulaması en kolay çıktıdır, çünkü onu çalıştırmak onu test eder. Uydurma bir metot, onu çağıran satır çalışır çalışmaz bir AttributeError ya da dengi bir hatayla başarısız olur, bu yüzden testinin o satıra ulaştığından emin ol. Riskli durum uydurma bir paket adıdır. Bir model sana hiç duymadığın bir paketi kurmanı söylerse, kurmadan önce var olduğunu, düşündüğün proje olduğunu ve yaygın şekilde kullanıldığını kontrol et. Güvenlik araştırmacıları modellerin aynı sahte paket adlarını tekrar tekrar uydurduğunu gösterdi; bu adlardan biriyle paket yayımlayan bir saldırgan, öneriye uyan herkesin makinesine kendi kodunu kurdurur. Yapay zekânın yazdığı kod için kontroller kod yazma promptları sayfasında anlatılıyor.
Sıkça Sorulan Sorular
Yapay zekâ halüsinasyonu nedir?
Yapay zekâ halüsinasyonu, bir dil modelinin kendinden emin ve akıcı görünen ama yanlış ya da dayanaksız cevabıdır: uydurma bir bilgi, var olmayan bir makaleye yapılmış bir atıf, bir kütüphanenin hiç sahip olmadığı bir fonksiyon. Model bilerek yalan söylemiyor. En olası görünen metni üretti ve olası olan, doğru olanla aynı şey değildir.
ChatGPT neden bir şeyler uyduruyor?
Sohbet modelleri eğitimde öğrenilen kalıplara dayanarak sıradaki tokeni art arda tahmin ederek metin üretir. Sohbette web araması ya da bir belge gibi bir araç yoksa hiçbir şey cevaba bakmaz. Doğru cevap eğitim verisinde nadirse ya da hiç yoksa model yine en makul devamı üretir ve makul bir yanlış cevap doğru bir cevapla tıpatıp aynı okunur.
Yapay zekânın halüsinasyon görmesi tamamen durdurulabilir mi?
Hayır. Güncel modeller öncekilerden daha az halüsinasyon görüyor ve senin verdiğin belgelerden ya da arama sonuçlarından cevap vermek bunu daha da azaltıyor, ama hiçbir prompt onu ortadan kaldırmaz. Önemli olan her bilgiyi, sayıyı, alıntıyı, kaynağı ya da API'yi birincil bir kaynağa karşı kontrol edilecek bir iddia olarak gör.
Hangi promptlar yapay zekâ halüsinasyonlarını azaltır?
En çok üçü yardım eder. "Bilmiyorum" demek için açık izin ver. Kaynak malzemeyi ver ve modelden sadece ondan cevap vermesini iste. Her iddia için onu destekleyen doğrudan bir alıntı iste, böylece iddiayı metinle karşılaştırabilirsin. Bir şeyin doğru olduğunu varsayan sorulardan kaçın, çünkü model varsayıma uymaya eğilimlidir.
Kodlamada yapay zekâ halüsinasyonlarına örnekler nelerdir?
Bir kütüphanede olmayan bir metodu çağırmak, var olmayan bir seçeneği geçirmek, kimsenin yayımlamadığı bir paketi import etmek ve bir kütüphanenin eski bir sürümündeki davranışı güncelmiş gibi anlatmak. Kod bunların çoğunu yakalamayı kolaylaştırır, çünkü uydurma bir metot onu çağıran satır çalışır çalışmaz hata verir. Tehlikeli olan uydurma paket adlarıdır: bir paketi kurmadan önce gerçek ve bilinen bir paket olduğunu kontrol et.