İstemler için Kök Neden Analizi
Başarısızlığın bağlamdan, talimattan, biçimden veya model yeteneğinden kaynaklanıp kaynaklanmadığını belirleyin.
İstemler için Kök Neden Analizi, CoddyKit'te ücretsiz bir AI Prompt Engineering dersidir. Bu, 4 dersinin 2. 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.
Kök Neden Analizi Neden Önemlidir
Bir istem başarısız olduğunda bunun birden çok olası nedeni olabilir. Sözcükleri rastgele değiştirmek zaman kaybettirir ve kök nedeni düzeltmeden yalnızca belirtinin düzeltilmesine yol açabilir; bu da biraz farklı girişlerde aynı başarısızlığın tekrarlanmasına neden olur.
Kök neden analizi (RCA), bir istemin başarısız olmasının belirli nedenini yalıtmak için kullanılan sistematik bir süreçtir; böylece düzeltme asıl sorunu ele alır.
Dört Kök Neden Kategorisi
Her istem başarısızlığı dört kök nedenden birine dayanır:
- Bağlam sorunu: model, doğru yanıt vermek için gereken bilgilerden yoksundur
- Yönerge belirsizliği: yönergenin birden çok geçerli yorumu vardır ve model yanlış olanı seçmiştir
- Biçim çakışması: istemin iki bölümü birbiriyle çelişen biçimlendirme yönergeleri verir
- Model yetenek sınırı: görev, bu modelin güvenilir biçimde yapabileceğinin ötesinde akıl yürütme veya bilgi gerektirir
Kök Neden 1: Bağlam Sorunu
Bağlam sorunu, istem gerekli bilgileri sağlamadığı için model yanlış yanıt verdiğinde ortaya çıkar. Model boşluğu eğitim verileriyle doldurur; bu veriler güncelliğini yitirmiş, yanlış veya halüsinasyon ürünü olabilir.
Sınama: eksik bilgiyi doğrudan isteme sağlayın ve yanıtın iyileşip iyileşmediğine bakın. İyileşiyorsa düzeltme, bağlam eklemektir (örneğin RAG yoluyla bilgi erişimiyle).
# Failing prompt — no context
prompt_v1 = 'What is the current price of our Pro plan?'
# Context problem test: inject the information
prompt_v2 = '''
Our pricing (as of today):
- Free: $0/month
- Pro: $19/month
- Enterprise: $99/month
Question: What is the current price of our Pro plan?
'''
# If v2 succeeds and v1 fails -> root cause is context problemKök Neden 2: Yönerge Belirsizliği
Yönerge belirsizliği, istem makul biçimde birden çok şekilde yorumlanabildiğinde ve model yanlış yorumu seçtiğinde ortaya çıkar.
Örnek: “Kısaca özetleyin” — “kısaca” bir cümle, bir paragraf veya üç madde işareti mi demektir? Model tahminde bulunur. Sınama: belirsiz ifadeyi kesin bir tanımla değiştirin ve başarısızlığın ortadan kalkıp kalkmadığını kontrol edin.
# Ambiguous
prompt_ambiguous = 'Summarize the following article briefly.'
# Precise — ambiguity removed
prompt_precise = (
'Summarize the following article in exactly 2 sentences. '
'Do not exceed 50 words. Output only the summary, nothing else.'
)
# Test: if precise version succeeds, root cause was ambiguity
# Fix: replace vague qualifiers with exact specificationsKök Neden 3: Biçim Çakışması
Biçim çakışması, istemin iki bölümü birbiriyle çelişen yönergeler verdiğinde ortaya çıkar. Model birini seçip diğerini yok saymak zorundadır; genellikle daha yeni veya daha belirgin olan yönergeyi seçer.
Örnek: sistem istemi “düz metin olarak yanıt ver” derken kullanıcı iletisi “Markdown kullan” der. Model bunlardan herhangi birini tutarsız biçimde izleyebilir.
# Format conflict example
system_prompt = 'You are a helpful assistant. Always respond in plain text without any formatting.'
user_message = 'List the top 5 benefits of exercise. Use markdown bullet points.'
# The model faces a conflict: plain text vs markdown.
# Detection: if output format is inconsistent across runs, look for conflicting instructions.
# Fix: ensure all format instructions agree. Move format to system prompt only.
system_prompt_fixed = (
'You are a helpful assistant. '
'Always respond using markdown bullet points for lists.'
)Kök Neden 4: Model Yeteneği Sınırı
Yetenek sınırı kaynaklı hata, görev modelin güvenilir biçimde yapabildiklerini gerçekten aştığında ortaya çıkar. Bu, diğer üç nedenden farklıdır — hiçbir istem değişikliği sorunu tamamen çözmez.
Belirtiler: Açık talimatlar ve eksiksiz bağlamla bile hata oranı yüksektir. Çözümler: Daha güçlü bir model kullanın, görevi daha basit adımlara bölün veya bir doğrulama adımı ekleyin.
# Capability limit test: try the same task on different models
models = ['gpt-4o-mini', 'gpt-4o', 'gpt-4o-2024-11-20']
results = {}
for model in models:
resp = client.chat.completions.create(
model=model,
messages=[{'role': 'user', 'content': complex_reasoning_prompt}]
)
results[model] = evaluate(resp.choices[0].message.content)
# If accuracy improves with more capable models -> capability limit
for model, score in results.items():
print(f'{model}: {score:.0%} accuracy')Yalıtma Yöntemi
Hangi kök nedenin etkin olduğunu belirlemek için sistematik yalıtma uygulayın:
- Başarısız olan istemi çalıştırın ve hata türünü sınıflandırın (yanlış yanıt, biçim vb.)
- Bilgi ekleyin → düzelirse: bağlam sorunu
- Talimatları netleştirin → düzelirse: belirsizlik
- Çelişkileri denetleyin → düzelirse: biçim çakışması
- Modeli yükseltin → düzelirse: yetenek sınırı
Yalnızca tek bir düzeltme yeterli olmalıdır. Birden çok düzeltme gerekiyorsa birden çok kök neden vardır.
def rca_test(base_prompt, test_input, expected_output):
results = {}
# Test 1: base (failing) prompt
results['base'] = run_and_evaluate(base_prompt, test_input, expected_output)
# Test 2: add context
results['with_context'] = run_and_evaluate(
base_prompt + '\nContext: ' + get_context(test_input),
test_input, expected_output
)
# Test 3: clarify instructions
results['clarified'] = run_and_evaluate(
clarify(base_prompt), test_input, expected_output
)
for name, passed in results.items():
print(f'{name}: {"PASS" if passed else "FAIL"}')Eleme ve Doğrulama
RCA iki yaklaşım izler:
- Eleme: sorumlu olmayan (NOT) nedenleri eleyin (her hipotezi sınayın ve hangisinin çıktıyı değiştirmediğini görün)
- Doğrulama: düzeltildiğinde birden çok sınama girdisinde hatayı tutarlı biçimde gideren nedeni belirleyin
Doğrulama için en az 3 sınama girdisi gerekir. Bir girdide işe yarayıp diğerlerinde yaramayan bir düzeltme kök nedeni çözmemiştir — yalnızca bir belirtiyi çözmüş olabilir.
def confirm_root_cause(fix_fn, test_cases, threshold=0.9):
'''fix_fn: a function that takes a prompt and returns a fixed prompt'''
passed = 0
for case in test_cases:
fixed_prompt = fix_fn(case['prompt'])
result = run_and_evaluate(fixed_prompt, case['input'], case['expected'])
if result:
passed += 1
pass_rate = passed / len(test_cases)
print(f'Fix pass rate: {pass_rate:.0%}')
if pass_rate >= threshold:
print('Root cause CONFIRMED — fix is reliable.')
else:
print('Root cause NOT confirmed — failure has multiple causes.')Kök Nedeni Belgeleme
Kök nedeni belirledikten sonra bunu istem değişikliği günlüğüne kaydedin. Şunları ekleyin:
- Gözlemlenen hata türü
- Kök neden kategorisi
- Sınanan hipotez
- Kanıt (düzeltmeden sonra hangi sınamanın geçtiği)
- İstemde yapılan özel değişiklik
Bu, gelecekteki mühendislerin aynı hatayı yeniden araştırmasını önler ve istemler arasındaki örüntülerin tanınmasını sağlar.
rca_record = {
'prompt_id': 'summarize_v3',
'failure_type': 'wrong_format',
'root_cause': 'format_conflict',
'hypothesis': 'System prompt said plain text, user message asked for markdown',
'evidence': 'Removing markdown instruction from user message resolved failure on 8/8 test cases',
'fix_applied': 'Moved all format instructions to system prompt; removed format instructions from user template',
'fix_date': '2024-11-15'
}Yaygın Hata: Yanlış Nedeni Düzeltmek
En yaygın RCA hatası, neden yerine belirtiyi düzeltmektir. Örnek:
- Belirti: model, başında fazladan düzyazı öneki bulunan JSON döndürüyor
- Yanlış düzeltme: çıktının başındaki düzyazıyı kaldırmak için son işlem eklemek
- Asıl kök neden: istemde biçim talimatı bulunmaması + modelin varsayılan olarak konuşma üslubunu kullanması
- Doğru düzeltme: açıkça 'Yalnızca geçerli JSON döndürün. Başka metin olmasın.' talimatını eklemek
Son işlem hileleri teknik borç biriktirir. Kök neden düzeltmeleri kalıcıdır.
Aralıklı Hatalar için RCA
Bazı hatalar aralıklıdır — istem zamanın %80'inde çalışır, ancak %20'sinde başarısız olur. İstemi bir kez çalıştırmak doğru sonuç verdiğinden bunları tanılamak daha zordur.
Yaklaşım: İstemi aynı girdi üzerinde 10–20 kez çalıştırın. Hata oranı sıfır değilse istemin olasılıksal bir kök nedeni vardır — genellikle talimat belirsizliği veya yüksek sıcaklık. Düzeltme: Talimatı daha belirgin hâle getirin veya sıcaklığı azaltın.
def measure_failure_rate(prompt, test_input, expected, runs=20):
failures = 0
for _ in range(runs):
resp = client.chat.completions.create(
model='gpt-4o',
messages=[{'role': 'user', 'content': prompt + '\n' + test_input}],
temperature=0.7
)
if not evaluate(resp.choices[0].message.content, expected):
failures += 1
print(f'Failure rate: {failures}/{runs} = {failures/runs:.0%}')Bilgi Kontrolü
Bir istem JSON yanıtı ister, ancak zaman zaman 'Eminim! İşte JSON:' gibi konuşma üslubunda bir önekle başlayan JSON döndürür. 'Yalnızca geçerli JSON döndürün. Başka metin olmasın.' eklendikten sonra hata durur. Kök neden neydi?
Özet: Kök Neden Analizi
İstem hatalarının dört kök neden kategorisi:
- Bağlam sorunu: model gerekli bilgiden yoksundur — düzeltme: RAG veya doğrudan ekleme yoluyla bağlam ekleyin
- Talimat belirsizliği: birden çok yoruma açık, muğlak talimat — düzeltme: kesinlik ekleyin
- Biçim çakışması: birbiriyle çelişen biçimlendirme talimatları — düzeltme: sistem isteminde birleştirin
- Model yeteneği sınırı: görev modelin becerisini aşar — düzeltme: modeli yükseltin veya görevi parçalara ayırın
Her hipotezi sınamak için sistematik yalıtma uygulayın. Düzeltmeyi birden çok sınama durumunda doğrulayın. Bulguları belgeleyin. Sonraki ders: sistematik ikili aramayla hata ayıklama.
Sıkça Sorulan Sorular
“İstemler için Kök Neden Analizi” dersi ücretsiz mi?
Evet — “İstemler için Kök Neden Analizi” 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.
“İstemler için Kök Neden Analizi” dersinde ne öğreneceğim?
Başarısızlığın bağlamdan, talimattan, biçimden veya model yeteneğinden kaynaklanıp kaynaklanmadığını belirleyin. 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 2. dersidir.
“İstemler için Kök Neden Analizi” 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