Beklenmeyen Çıktıları Tanılama
Başarısızlık türlerini sınıflandırın: yanlış yanıt, yanlış biçim, konu dışı içerik ve halüsinasyon.
Beklenmeyen Çıktıları Tanılama, CoddyKit'te ücretsiz bir AI Prompt Engineering dersidir. Bu, 4 dersinin 1. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, AI Prompt Engineering öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. AI Prompt Engineering kursu toplamda 4 dersten oluşur.
İstemler Başarısız Olduğunda
Özenle hazırlanmış istemler bile yanlış sonuçlar üretebilir. Başarısızlıkları tanılamak bir sınıflandırma sistemi — ne tür bir başarısızlık oluştuğunun sınıflandırılmasını — gerektirir. Sınıflandırma olmadan hata ayıklama tahminden ibarettir. Dört ana başarısızlık kategorisi şunlardır: yanlış yanıt, yanlış biçim, konu dışı yanıt ve halüsinasyon.
Başarısızlık Türü 1: Yanlış Yanıt
Yanlış yanıt, olgusal bir hatadır — model doğru biçimde ve doğru konuda bir yanıt vermiştir, ancak içerik yanlıştır.
Örnekler: tarihler, istatistikler, adlar ve mantık hatası içeren kod. Bu, otomatik olarak saptanması en zor başarısızlıktır; çünkü çıktı yüzeyde doğru görünür.
- Neden: eğitim verilerinin güncellik sınırı, nadir bir olgu veya çok aşamalı akıl yürütme hatası
- Saptama: doğrulanmış gerçeklerle karşılaştırma, insan incelemesi veya doğrulama amaçlı bir LLM çağrısı
# Example: wrong answer failure
prompt = 'What year was Python first released?'
response = 'Python was first released in 1994.' # Wrong — it was 1991
# Ground truth check
GROUND_TRUTH = '1991'
correct = GROUND_TRUTH in response
print(f'Correct: {correct}') # FalseBaşarısızlık Türü 2: Yanlış Biçim
Yanlış biçim başarısızlığı, model doğru soruyu doğru bilgilerle yanıtladığı halde biçimlendirme yönergesini yok saydığında oluşur.
Örnekler: JSON istendiğinde düz metin döndürme, düz metin gerektiğinde Markdown ekleme veya tek bir değer istendiğinde liste döndürme.
- Neden: biçimlendirme yönergesinin uzun bir istemin içine gömülmesi, çelişen yönergeler veya modelin düşük öncelikli yönergeleri göz ardı etmesi
- Saptama: JSON ayrıştırma hatası, düzenli ifade eşleşmemesi veya şema doğrulama başarısızlığı
import json
response_text = 'Sure! Here is the result: {"name": "Alice", "age": 30}'
try:
data = json.loads(response_text)
print('Format OK:', data)
except json.JSONDecodeError as e:
print(f'FORMAT FAILURE: {e}')
# 'Sure! Here is the result:' prefix broke JSON parsingBaşarısızlık Türü 3: Konu Dışı Yanıt
Konu dışı başarısızlık, modelin sorulan sorudan farklı bir soruyu yanıtlaması anlamına gelir. Yanıt olgusal açıdan doğru ve iyi biçimlendirilmiş olabilir, ancak kullanıcının gerçek amacını ele almaz.
Örnekler: Python işlevi istendiğinde JavaScript işlevi alma; tek satırlık yanıt istendiğinde tam bir makale alma; bir hatanın düzeltilmesi istendiğinde düzeltme yerine hatanın açıklamasını alma.
- Neden: belirsiz yönerge, çelişen bağlam veya uzun konuşmalarda görevin kayması
# Off-topic example
prompt = 'Write a Python function that reverses a list.'
response = '''
In JavaScript, you can reverse an array like this:
const reversed = arr.reverse();
'''
# Detection: check that output contains the correct language keyword
def check_language(response, expected_lang='def '):
if expected_lang not in response:
print(f'OFF-TOPIC FAILURE: expected {expected_lang} in response')
return False
return True
check_language(response) # False — no Python defBaşarısızlık Türü 4: Halüsinasyon
Halüsinasyon, en tehlikeli başarısızlıktır: model var olmayan olgular uydurur. Bunlar makul ve kendinden emin göründüğü için fark edilmeleri zordur.
Örnekler: uydurma kaynak gösterimleri (makale başlığı gerçekmiş gibi görünür ancak var değildir), uydurma uygulama programlama arayüzü uç noktaları, sahte istatistikler ve var olmayan kişiler.
- Neden: model, bilgi boşluklarını örüntü eşleştirmesiyle makul görünen metinlerle doldurur
- Saptama: güvenilir kaynaklarla olgusal doğrulama, kaynak gösterimlerini çapraz kontrol etme ve uygulama programlama arayüzü çağrılarını sınama
# Hallucination detection via external verification
import requests
def verify_doi(doi):
url = f'https://doi.org/{doi}'
resp = requests.head(url, allow_redirects=True, timeout=5)
return resp.status_code == 200
# Model claimed this paper exists:
fabricated_doi = '10.1234/fake.paper.2023.99999'
if not verify_doi(fabricated_doi):
print('HALLUCINATION DETECTED: DOI does not exist')Başarısızlık Sınıflandırma Sistemini Uygulama
Bir başarısızlık gözlemlendiğinde düzeltmeye çalışmadan önce onu sınıflandırın. Başarısızlık türü, düzeltme stratejisini belirler:
- Yanlış yanıt: bağlam ekleyin, bilgi erişimi kullanın veya daha yetenekli bir modele geçin
- Yanlış biçim: biçim yönergesini güçlendirin, çıktı örnekleri ekleyin veya yapılandırılmış çıktıları / işlev çağırmayı kullanın
- Konu dışı: yönergeyi daha belirli olacak şekilde yeniden yazın ve istemi basitleştirin
- Halüsinasyon: dayanak sağlayan bağlam ekleyin, “Bilmiyorum” demesini isteyin ve kaynak gösterimlerini etkinleştirin
Yapılandırılmış Başarısızlık Günlüğü Tutma
Her başarısızlığı sınıflandırmasıyla birlikte günlüğe kaydedin. Zamanla örüntüler ortaya çıkar: istemin belirli bir bölümü çoğu yanlış biçim hatasına neden olur veya belirli bir konu sık sık halüsinasyonları tetikler. Yapılandırılmış günlükler veriye dayalı hata ayıklamayı mümkün kılar.
import json
from datetime import datetime
def log_failure(prompt, response, failure_type, details=''):
entry = {
'timestamp': datetime.utcnow().isoformat(),
'failure_type': failure_type, # wrong_answer | wrong_format | off_topic | hallucination
'prompt_hash': hash(prompt),
'response_snippet': response[:200],
'details': details
}
with open('prompt_failures.jsonl', 'a') as f:
f.write(json.dumps(entry) + '\n')
log_failure(
prompt=my_prompt,
response=bad_response,
failure_type='wrong_format',
details='JSON prefix text broke parsing'
)Otomatik Başarısızlık Sınıflandırması
Büyük ölçekli sınama için her yanıtı bir başarısızlık türüyle otomatik olarak etiketlemek üzere bir sınıflandırıcı LLM çağrısı kullanın. Bu, yüzlerce sınama örneği üzerinde toplu değerlendirmeyi mümkün kılar.
def classify_failure(prompt, expected, actual):
classification_prompt = (
f'You are a QA evaluator for LLM outputs.\n'
f'Prompt: {prompt}\n'
f'Expected behavior: {expected}\n'
f'Actual output: {actual}\n\n'
'Classify the failure as one of: CORRECT, WRONG_ANSWER, WRONG_FORMAT, OFF_TOPIC, HALLUCINATION.\n'
'Reply with only the label.'
)
resp = client.chat.completions.create(
model='gpt-4o-mini',
messages=[{'role': 'user', 'content': classification_prompt}]
)
return resp.choices[0].message.content.strip()Önem Derecesi Matrisi
Tüm başarısızlıkların etkisi aynı değildir. Bir önem derecesi matrisi, düzeltmelere öncelik vermeye yardımcı olur:
- Tıbbi/hukuki bağlamda halüsinasyon: kritik — hemen düzeltin
- Dahili bir araçta yanlış biçim: yüksek — sonraki ayrıştırmayı bozar
- Nadir bir uç durumda yanlış yanıt: orta — sıklığı izleyin
- Belirsiz girişte konu dışı yanıt: düşük — seyrekse kabul edilebilir
Her tür için haftalık başarısızlık oranlarını izleyin. Herhangi bir kategorideki artış, ilgilenilmesi gereken bir gerilemeye işaret eder.
Başarısızlık Panosu Oluşturma
Basit bir başarısızlık panosu, başarısızlık günlüğünü okur ve türe ve istem bölümüne göre sayıları raporlar:
import json
from collections import Counter
def failure_report(log_path='prompt_failures.jsonl'):
entries = []
with open(log_path) as f:
for line in f:
entries.append(json.loads(line))
counts = Counter(e['failure_type'] for e in entries)
total = len(entries)
print(f'Total failures: {total}')
for ftype, count in counts.most_common():
pct = 100 * count / total
print(f' {ftype}: {count} ({pct:.1f}%)')
failure_report()Başarısızlıkları Önceden Önleme
Her başarısızlık türünü ortaya çıkmadan önce azaltmaya yönelik önleyici stratejiler:
- Yanlış yanıt: istemde başvuru metni sağlayın (RAG); modelden kaynağını belirtmesini isteyin
- Yanlış biçim: JSON kipini veya işlev çağırmayı kullanın; istemde bir biçim örneği sağlayın
- Konu dışı: görevi ilk cümleye yerleştirin; amacı seyrelten uzun ön sözlerden kaçının
- Halüsinasyon: “Yalnızca aşağıda verilen bilgileri kullanın” yönergesini ekleyin; “Emin değilseniz Bilmiyorum deyin” ifadesini ekleyin
Bilgi Kontrolü
Modelin uydurma bir kaynak gösterimi veya var olmayan bir uygulama programlama arayüzü uç noktası gibi var olmayan olgular uydurması hangi başarısızlık türünde görülür?
Özet: Beklenmeyen Çıktıları Tanılama
Dört LLM başarısızlığı türü ve temel özellikleri:
- Yanlış yanıt: doğru biçim, doğru konu, yanlış içerik — doğrulanmış gerçekle olgusal doğrulama yapın
- Yanlış biçim: doğru içerik, biçim yönergesi yok sayılmış — şema doğrulaması bunu yakalar
- Konu dışı: doğru biçim, farklı bir soru yanıtlanmış — dil/görev eşleşmesini kontrol edin
- Halüsinasyon: uydurma olgular — dış kaynaklarla doğrulayın
Her başarısızlığı günlüğe kaydedin ve sınıflandırın. Türlere göre oranları zaman içinde izleyin. Sonraki ders: başarısızlığa istemin hangi bölümünün neden olduğunu bulmak için kök neden analizi.
Sıkça Sorulan Sorular
“Beklenmeyen Çıktıları Tanılama” dersi ücretsiz mi?
Evet — “Beklenmeyen Çıktıları Tanılama” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve AI Prompt Engineering kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. AI Prompt Engineering kursu toplamda 4 dersten oluşur.
“Beklenmeyen Çıktıları Tanılama” dersinde ne öğreneceğim?
Başarısızlık türlerini sınıflandırın: yanlış yanıt, yanlış biçim, konu dışı içerik ve halüsinasyon. AI Prompt Engineering ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.
AI Prompt Engineering öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te AI Prompt Engineering, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 1. dersidir.
“Beklenmeyen Çıktıları Tanılama” dersi ne kadar sürer?
Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.
Bu AI Prompt Engineering dersinde kod yazıp çalıştırabilir miyim?
Evet. Her AI Prompt Engineering dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.
Bu kursun tüm dersleri
- Beklenmeyen Çıktıları Tanılama
- İstemler için Kök Neden Analizi
- Sistematik Hata Ayıklama Yaklaşımı
- Günlük Kaydı ve Belgeleme Stratejileri