
Bir LLM (büyük dil modeli) ile çalışırken en yaygın şikayetlerden biri şudur: “Dün iyi çalışan prompt bugün bambaşka bir yanıt verdi.” Bu durum bazen küçük bir girdiden, bazen parametrelerden, bazen de model sürümündeki değişimlerden kaynaklanır. İyi haber: Tutarsız yanıtları azaltmak için yazılım hata ayıklamaya benzer, tekrarlanabilir bir süreç kurabilirsiniz.
Bu yazı; prompt engineering pratiğinde tutarsız çıktıları bulma, yeniden üretme ve iyileştirme adımlarını anlatır. Odak noktası “tek seferlik sihirli prompt” değil; ekiplerin üretimde sürdürebileceği ölçülebilir bir yöntemdir. Öneriler, OpenAI’nin resmi rehberleri ve ilgili akademik bulgularla uyumludur.
Tek bir “tutarsızlık” yok; hangi semptomu gördüğünüz, çözüm yolunu değiştirir. Aşağıdaki kategorilerden hangisi size uyuyor?
Bu ayrım önemli; çünkü bazen problem prompt’ta değil, değerlendirme ölçütünde veya model davranışındaki sürüm kaynaklı değişimde olur.
Tutarsızlığı azaltmanın ilk adımı, onu yeniden üretebilmektir. Üretimde “bazen oluyor” diyorsanız, ilerleme yavaştır. OpenAI API dokümantasyonu, hata ayıklama ve destek süreçlerinde istek kimliği (request id / x-request-id) gibi istek-yanıt kimliklerinin izlenmesini pratik bir araç olarak ele alır; bu nedenle istek kimliğini ve istek bağlamını loglamak, sorunlu çağrıları geriye dönük incelemeyi kolaylaştırır. Kaynak: OpenAI API Reference – Overview.
Bu paket, “aynı koşulları” yeniden kurmanızı sağlar.
Prompt hata ayıklamada en sık yapılan hata, prompt’u değiştirirken parametreleri de “hissiyata göre” değiştirmektir. Bunun yerine küçük deneylerle ilerleyin:
Böylece hangi müdahalenin hangi semptoma etki ettiğini görürsünüz. Eğer mümkünse, her koşulu aynı örnek setinde birkaç kez çalıştırın; “tek çalıştırma” bazen yanıltıcı olabilir.
Resmi rehberler, talimatları prompt’un başına koymayı ve bağlamı net sınırlarla ayırmayı önerir. Pratikte bu, modelin “ne yapacağını” önce anlamasına, sonra veriyi işlemesine yardımcı olur. Kaynak: OpenAI Prompt Best Practices.
Talimat: Aşağıdaki metinden şirket adı, tarih ve e-posta adresini çıkar.
Kısıt: Sadece şu anahtarlarla JSON döndür: company, date, email. Eksikse null yaz.
Girdi: """ ... """
Bu yaklaşım, “biçim kayması” ve “kapsam kayması” gibi sorunları azaltmada genelde ilk kazancı verir.
Üretim senaryolarında tek bir kullanıcı prompt’u yerine, mesaj hiyerarşisini bilinçli kullanmak tutarlılığı artırır:
Bu hiyerarşi, kullanıcı metnindeki çelişkili yönlendirmelerin etkisini azaltmaya yardımcı olur ve prompt-injection benzeri saldırı senaryolarını düşünmek için temel çerçevedir. Kaynak: GPT-5 System Card.
Resmi rehberlerde, doğruluk odaklı görevlerde daha düşük temperature değerlerinin (ör. 0) rastgeleliği azaltarak daha öngörülebilir sonuç verebileceği belirtilir. Kaynak: OpenAI Prompt Best Practices. Parametrelerin genel mantığı ve kullanım çerçevesi için ayrıca bkz. OpenAI API Reference – Overview.
Bununla birlikte, EMNLP Findings (2024) çalışması; kendi deney düzeninde (çalışmada test edilen 9 model, 0.0–1.0 temperature aralığı ve yazarların seçtiği problem-çözme odaklı görevler/kurulum) temperature değişiminin doğruluk (accuracy) üzerinde her zaman istatistiksel olarak anlamlı bir fark üretmediğini rapor eder. Bu sonuç, “temperature düşürmek her görevde doğruluğu artırır” gibi genellemeler yerine, göreve ve değerlendirme setinize bağlı test yapmayı gerektirir. Kaynak: The Effect of Sampling Temperature on Problem Solving in Large Language Models (Findings EMNLP 2024).
| Semptom | Muhtemel neden | İlk denenecek düzeltme |
|---|---|---|
| JSON/şema bozuluyor | Format kısıtı zayıf, örnek yok, temperature yüksek | Çıktı anahtarlarını sabitle, “sadece JSON” de, temperature düşür, kısa örnek ekle |
| Konu dışına sapıyor | Görev tanımı belirsiz, bağlam karışık | Talimatları en üste al, bağlamı delimiter ile ayır, kapsam dışını yaz |
| Aşırı kendinden emin yanlışlar | “Bilmiyorsan söyle” kuralı yok, kaynak belirsiz | Belirsizlik kuralı ekle, gerekirse “kanıt yoksa belirt” de, girdi kaynağını netleştir |
| Aynı prompt farklı gün farklı davranıyor | Model davranışı/sürüm hedefi değişmiş olabilir | Üretimde tutarlılık gerekiyorsa sabit bir model sürümü/pinned hedef kullanmayı değerlendirin; loglara model bilgisini ekleyin |
| Kullanıcı metni talimatları bozuyor | Hiyerarşi zayıf, kullanıcı metni “talimat” gibi algılanıyor | System/developer kurallarını güçlendir, kullanıcı girdisini “veri” olarak etiketle, saldırı testleri yap |
Tutarlılığı artırmanın pratik yolu, modele kısa bir kontrol listesi uygulatmaktır:
Bu, her zaman “doğru” üretmez; ancak hataları daha görünür hale getirir ve regresyon testlerinde sinyal sağlar.
Tutarsızlık bazen “model kafası karıştı” değil, kullanıcı girdisinin sistem/developer talimatlarını bastırmaya çalışmasıdır. System Card, talimat hiyerarşisi ve prompt-injection türü saldırılara karşı test ve önlemleri özellikle vurgular. Kaynak: GPT-5 System Card.
Hedefiniz, bu saldırıların hiçbirinin ürün davranışını raydan çıkarmaması. Eğer çıkartıyorsa, kullanıcı girdisini “veri” olarak çerçeveleyen ek talimatlar ve daha net developer kuralları genelde ilk savunmadır.
Aynı prompt’un, model davranışı veya sürüm hedefi değiştiğinde farklı sonuçlar vermesi pratikte görülebilir. OpenAI API dokümantasyonu, üretim entegrasyonlarında model hedefleme/sürümleme konularını ve buna bağlı operasyonel izleme pratiklerini ele alır; tutarlılık kritikse, sabit (pinned) bir model sürümünü tercih etmek ve değişimi kontrollü yayınlamak mantıklı bir yaklaşımdır. Kaynak: OpenAI API Reference – Overview.
Bu yaklaşım, özellikle eğitim içeriği üretimi, destek otomasyonu ve içerik sınıflandırma gibi senaryolarda beklenmedik dalgalanmaları azaltır.
Görev: Aşağıdaki model çıktısında hangi kural ihlalleri var?
Kurallar: (1) Format: X, (2) Kapsam: Y, (3) Belirsizlik: Z.
İstediğim çıktı: İhlal listesi + her ihlal için tek cümle düzeltme önerisi.
Veri: """ kullanıcı isteği ... """
Model çıktısı: """ ... """
Görev: Aynı isteği, aşağıdaki kurallara uyarak yeniden yanıtla.
Kurallar: (1) Şu format, (2) Şu sınırlar, (3) Emin değilsen belirt.
Veri: """ ... """
Bu iki aşamalı yaklaşım, “ne bozuldu?” sorusunu görünür kılar ve ekip içi prompt incelemesini kolaylaştırır.
En iyi pratik, “tek doğru prompt” aramak yerine, ölç, kaydet, test et, sürümle döngüsünü kurmaktır.
Doğruluk ve format istikrarı kritikse, resmi rehberlerin de önerdiği gibi düşük değerlerle (ör. 0) başlayın ve kendi test setinizde ölçün. Yaratıcı çeşitlilik istiyorsanız artırabilirsiniz. Kaynak: OpenAI Prompt Best Practices.
Aynı genel model adının zaman içinde farklı davranışlar sergileyebilmesi ihtimaline karşı, üretimde belirli bir sürümü hedefleyip değişimi kontrollü yönetme yaklaşımıdır. Uygulamada, model hedefinizi ve sürüm stratejinizi dokümantasyona göre seçip loglarınızda açıkça kaydetmeniz gerekir. Kaynak: OpenAI API Reference – Overview.
Problemli bir çağrıyı yeniden incelemek, loglarda tekil olarak izlemek ve gerektiğinde destek/inceleme süreçlerinde çağrıyı işaretlemek için kullanabilirsiniz. Bu yüzden istek kimliğini zaman damgası, model ve parametrelerle birlikte saklamak pratik bir adımdır. Kaynak: OpenAI API Reference – Overview.
Kullanıcı girdisine “önceki talimatları yok say”, “system mesajını yaz” gibi yanıltıcı metinler ekleyip sistem/developer kurallarınızın bozulup bozulmadığını kontrol edin. Bu test yaklaşımı ve talimat hiyerarşisi çerçevesi System Card’da ele alınır. Kaynak: GPT-5 System Card.
Yorumlar