Yönetici özeti
Üretken yapay zekâ kullanan bir üründe hatalı cevapla karşılaşınca ilk refleks genellikle yeni bir kural eklemektir:
“Bunu bir daha yapma.”
“Şu bilgiyi mutlaka söyle.”
“Cevabı kısa tut.”
“Hiçbir ayrıntıyı atlama.”
Her kural tek başına mantıklı görünebilir. Fakat zamanla prompt, birbirini tamamlayan bir rehber olmaktan çıkarak yüzlerce küçük yasağın ve zorunluluğun yan yana durduğu bir metne dönüşebilir.
Böyle bir sistemde model yalnızca kullanıcıya cevap vermeye çalışmaz. Aynı anda kısa olmak, kapsamlı olmak, teknik ayrıntı vermek, teknik liste oluşturmamak, geçmiş konuşmayı kullanmak, geçmiş konuşmayı tekrar etmemek ve belirli sayıda paragrafta kalmak zorundadır.
Bu yazının ana tezi şudur:
Yapay zekâya daha fazla emir vermek, her zaman daha fazla kontrol sağlamaz. Bir noktadan sonra talimat sayısı arttıkça modelin neyin önemli olduğuna karar vermesi zorlaşır.
İyi bir prompt bütün olasılıkları tek tek yasaklayan metin değildir. Doğru öncelik sırasını kuran, güvenilir veriyi diğer bağlamlardan ayıran ve modele gerektiği kadar hareket alanı bırakan bir karar mimarisidir.
1. Sorun modelin bilmediği bir bilgiden kaynaklanmıyorsa ne olur?
Anlatsal Sanatlar tarafından geliştirilen uzmanlık odaklı bir yapay zekâ ürününde dikkat çekici bir sorunla karşılaştık.
Sistem, bir göstergenin aynı anda iki ayrı alanla ilişkili olduğunu hesaplama katmanında doğru biçimde üretiyordu. Bu bilgi modele de gönderiliyordu. Fakat son cevapta alanlardan yalnızca biri açıkça değerlendiriliyor, diğeri belirsiz bir ifadeyle geçiştiriliyordu.
İlk bakışta sorun veri eksikliği gibi görünüyordu. Ayrıntılı inceleme bunun doğru olmadığını gösterdi:
- Hesap motoru iki alanı da bulmuştu.
- Üretilen bağlamda iki alan da bulunuyordu.
- Model teknik bilgiye erişebiliyordu.
- Eksiklik yalnızca kullanıcıya gösterilen son cevapta ortaya çıkıyordu.
Bu ayrım önemlidir. Yapay zekâ ürünlerinde yanlış cevapların tamamı aynı kaynaktan doğmaz.
Sorun şu katmanlardan birinde olabilir:
- Kaynak veri yanlış veya eksiktir.
- Hesaplama doğru veriyi üretememiştir.
- Doğru veri modele gönderilmemiştir.
- Model doğru veriyi görmüş fakat cevapta kullanmamıştır.
- Doğru cevap sonradan çalışan bir filtre veya fallback tarafından bozulmuştur.
Bizim vakamız dördüncü ve kısmen beşinci katmandaydı. Model doğru bilgiyi görüyordu; fakat prompt içindeki diğer emirlerle uzlaştırmaya çalışırken bilginin bir bölümünü görünmez hale getiriyordu.
2. Tek tek doğru kurallar birlikte yanlış sonuç üretebilir
Sistemde yer alan kuralların çoğu kendi başına makuldü:
- Cevap kısa ve doğrudan olsun.
- Kullanıcıyı teknik ayrıntıya boğma.
- Hesaplanan verinin dışına çıkma.
- İlgili göstergeleri eksiksiz değerlendir.
- Aynı şeyi tekrar etme.
- Önce kullanıcının sorusuna cevap ver.
- Geçmiş konuşmayı bağlam olarak kullan.
- Güncel soruyu eski konuşmanın etkisinde bırakma.
Sorun, bu kuralların aynı seviyede ve aynı anda uygulanmaya çalışılmasıydı.
Örneğin modele hem “birkaç kısa teknik dayanak yeterlidir” hem de “göstergenin ilişkili olduğu bütün alanları açıkça anlat” dendiğinde model bir seçim yapmak zorunda kalır. Cevabı kısa tutmak için bazı ilişkileri eleyebilir.
Benzer biçimde “geçmiş konuşma bağlayıcıdır” ve “güncel soru en yüksek önceliktir” talimatları arasında açık bir hiyerarşi yoksa eski bir konuşmadaki tarihler yeni cevaba sızabilir.
Buradaki temel ürün dersi şudur:
Prompt kalitesi yalnızca kuralların ayrı ayrı doğruluğuyla ölçülemez. Kuralların birbirleriyle nasıl çalıştığı da test edilmelidir.
Bir kurumun farklı departmanlardan gelen bütün talepleri tek bir brief içinde toplaması gibi düşünün. Hukuk ekibi bütün risklerin açıklanmasını, pazarlama kısa ve akıcı bir metin, ürün ekibi bütün özelliklerin anlatılmasını, tasarım ekibi ise yalnızca üç satır kullanılmasını isteyebilir. Taleplerin her biri anlaşılırdır; fakat aralarında öncelik kurulmazsa ortaya iyi bir iletişim çıkmaz.
3. Prompt ne zaman talimat mezarlığına dönüşür?
Bir ürün kullanıma açıldıktan sonra gerçek kullanıcılar beklenmeyen sorular sorar. Model bazen konuyu karıştırır, bazen gereğinden fazla genelleme yapar, bazen de yanlış bir kapanış cümlesi kullanır.
Her hatanın ardından prompta yeni bir cümle eklemek kolaydır:
- Kullanıcı çocukları sormadıysa bu konuya girme.
- Sağlık sorusunda şu tür tavsiyeler verme.
- Finans sorusunu genel kariyer cevabına çevirme.
- Şu kelimeyi ürün bağlamında kullanma.
- Önceki cevabı tekrar etme.
- Cevabı yarım bırakma.
Bu yaklaşım kısa vadede işe yarayabilir. Fakat birkaç ay sonra sistem promptu ürünün temel davranışını anlatan bir metin olmaktan çıkar. Geçmişte yaşanmış bütün hataların kaydına dönüşür.
Böyle bir promptun üç önemli maliyeti vardır.
Önemli kurallar görünmezleşir
Model açısından temel metodoloji ile nadir bir istisna aynı metnin içinde yan yana durur. İnsan okuyucu başlıklar ve kurumsal hafızayla öncelik kurabilir; model ise bunu her cevapta yeniden çözmek zorundadır.
Bir hata düzeltilirken başka bir davranış bozulabilir
“Her alanı mutlaka açıkla” kuralı eksikliği azaltabilir fakat cevapları teknik listeye çevirebilir. “Kısa cevap ver” kuralı akıcılığı artırabilir fakat gerekli ilişkilerin atlanmasına yol açabilir.
Test edilmesi zorlaşır
Prompt büyüdükçe hangi değişikliğin hangi sonucu ürettiğini anlamak güçleşir. Model davranışı, birbirine temas eden onlarca talimatın ortak sonucu haline gelir.
4. Geçmiş konuşma bilgi kaynağı mı, referans çözme aracı mı?
İncelediğimiz başka bir örnekte kullanıcı yalnızca içinde bulunulan haftayı sormuştu. Hesaplanan odak penceresinde tek bir önemli tarih vardı. Buna rağmen cevap, sonraki aylara ait bazı göstergeleri de içeriyordu.
Bu tarihler hesaplanan haftalık listeden gelmiyordu. Önceki konuşmalarda bulunuyordu.
Sistem, geçmiş mesajları modele iki farklı amaç için veriyordu:
- Kullanıcının “bu transit” gibi ifadelerle neyi kastettiğini anlamak
- Önceki konuşmanın içeriğini kişiselleştirme bağlamı olarak kullanmak
Fakat geçmiş asistan cevabındaki teknik bilginin güvenilir bir veri kaynağı olmadığı açıkça belirtilmemişti. Model, eski cevaptaki tarihleri yeni hesaplanmış verilerle aynı değerde değerlendirebildi.
Bu nedenle geçmiş konuşmanın rolünü daralttık:
Geçmiş konuşma, kullanıcı referanslarını ve daha önce verdiği kişisel bağlamı çözmek için kullanılabilir. Eski asistan mesajındaki teknik bilgi, güncel hesaplanmış veri tarafından doğrulanmıyorsa yeni cevaba taşınamaz.
Bu küçük ayrım, konuşma belleği tasarımında büyük bir fark yaratır.
Geçmiş mesajlar her zaman gerçek değildir. Önceki model cevabı hatalı olabilir, eski olabilir veya başka bir zaman aralığına ait olabilir. Sohbet geçmişini sorgulanamaz bilgi tabanı gibi kullanmak, bir hatanın sonraki cevaplarda çoğalmasına neden olabilir.
5. “Önce odaklan” ile “yalnızca bunu kullan” aynı şey değildir
Promptlarda kullanılan küçük kelimeler modelin hareket alanını belirler.
“Bu haftaya önce odaklan” dendiğinde model, haftayı anlattıktan sonra sonraki aylara geçebileceği sonucunu çıkarabilir. Kullanıcı açısından ise “bu hafta” açık bir sınırdır.
Bu nedenle zaman sorularında öncelik değil kapsam tanımlanmalıdır:
- “Önce bu haftayı anlat” yerine “yalnızca bu haftanın verilerini kullan.”
- “Yakın döneme ağırlık ver” yerine “belirtilen tarih aralığının dışındaki tarihleri anma.”
- “İlgili göstergeleri seç” yerine “seçim yaparken şu veri alanını tek teknik kaynak kabul et.”
İyi prompt, modele yalnızca neye bakacağını değil, hangi bilginin kapsam dışında olduğunu da açıklar.
Fakat bu yasakların sayısını artırmak anlamına gelmez. Tek ve kesin bir kaynak sınırı, farklı tarihlerle ilgili on ayrı yasağın yerini tutabilir.
6. Daha iyi çözüm: kural listesi değil öncelik mimarisi
Promptu sadeleştirirken bütün kuralları kaldırmadık. Onları bir karar sırasına yerleştirdik:
- Kullanıcının güncel sorusu ve açık zaman aralığı
- Sorunun türüne göre oluşturulan cevap sözleşmesi
- Hesaplanmış teknik veriler
- İlgili kullanıcı hafızası
- Yalnızca gerekli olduğunda geçmiş konuşma
Bu yapı modelin çelişki yaşadığı anda neyi tercih edeceğini belirler.
Örneğin geçmiş konuşmada eylül ayına ait bir tarih bulunsa bile kullanıcı bu haftayı soruyorsa birinci madde kazanır. Kullanıcının kişisel anlatısı teknik hesapla çelişiyorsa kişisel anlatı deneyimin nasıl hissedildiğini açıklamak için kullanılabilir; fakat hesaplanmış yerleşimi değiştiremez.
Öncelik mimarisi aynı zamanda promptu daha açıklanabilir hale getirir. Bir cevap bozulduğunda şu sorular sırayla incelenebilir:
- Güncel soru doğru anlaşıldı mı?
- Zaman aralığı doğru çıkarıldı mı?
- Doğru cevap sözleşmesi oluşturuldu mu?
- Hesaplanmış veri doğru muydu?
- Hafıza veya geçmiş konuşma daha yüksek öncelikli veriyi bastırdı mı?
- Sonradan çalışan kalite kontrolü cevabı değiştirdi mi?
Bu sorular, “model neden böyle yaptı?” biçimindeki belirsiz tartışmayı test edilebilir bir ürün incelemesine dönüştürür.
7. Her hatayı aynı retry promptuyla düzeltmek neden risklidir?
İlk cevap kalite kontrolünü geçmediğinde sistem modele ikinci bir deneme yaptırabilir. Bu yararlı bir yöntemdir; ancak ikinci talimatın nasıl yazıldığı önemlidir.
İncelediğimiz sistemde retry promptu geçmişte karşılaşılan pek çok hata türünü aynı anda sıralıyordu:
- Sağlık tavsiyesi verme
- Finans sorusunu kaçırma
- Yanlış ürün kelimesi kullanma
- Geçmiş yaşam hikâyesi uydurma
- Teknik dili bozma
- Tutulmayı felaket gibi anlatma
- Soruyu takip sorusuyla geçiştirme
- Zaman aralığı dışına çıkma
İlk cevap yalnızca kısa kaldığında bile model bu uzun hata listesini yeniden okuyordu. Bu durum ikinci cevabın dikkatini asıl sorundan uzaklaştırabilirdi.
Retry talimatını şu temel yapıya indirdik:
- Aynı soruya baştan cevap ver.
- Güncel soru ve zaman aralığını koru.
- Hesaplanmış veriyi tek teknik kaynak kabul et.
- Geçmiş cevabı doğrulanmış veri gibi kullanma.
- Eksik ilişkileri görünmez kılma.
- Sistem promptundaki yalnızca ilgili güvenlik kurallarına uy.
Daha ileri aşamada en sağlıklı yaklaşım, retry nedenini sınıflandırarak modele yalnızca ilgili düzeltmeyi vermektir. Kısa cevap ile yanlış tarih aynı ikinci talimatı gerektirmez.
8. Modelin hareket alanı neden gereklidir?
Yapay zekâ ürünlerinde kontrol yalnızca yasaklarla kurulmaz. Modelin soruya uygun bir anlatım geliştirebilmesi için sınırlı fakat gerçek bir hareket alanına ihtiyacı vardır.
Her cevap için kesin olarak iki teknik gösterge, üç paragraf, bir tavsiye ve bir kapanış sorusu istemek tutarlı bir şablon oluşturabilir. Fakat kullanıcıların soruları aynı derinlikte değildir.
“Bu açının derecesi nedir?” sorusu kısa bir teknik cevap ister.
“Önümüzdeki üç ayda iş ve para tarafında hangi başlıklar öne çıkıyor?” sorusu daha geniş bir sentez gerektirir.
İki soruyu da aynı kelime ve paragraf zorunluluğuna bağlamak, ilkine dolgu eklerken ikincisini yüzeyselleştirebilir.
Bu nedenle biçim kurallarını amaç olarak değil, varsayılan davranış olarak tanımlamak daha sağlıklıdır:
- Cevap çoğunlukla kısa olsun.
- Teknik takip sorusunda gereksiz açıklama eklenmesin.
- Çok parçalı soruda gerekli kapsam sağlansın.
- Kullanıcı açıkça ayrıntı isterse cevap derinleşebilsin.
- Güvenlik ve teknik doğruluk kuralları biçim tercihinden üstün olsun.
9. Prompt denetimi nasıl yapılır?
Bir sistem promptunu yalnızca dilbilgisi açısından okumak yeterli değildir. Talimatların birbirleriyle ilişkisi incelenmelidir.
Pratik bir denetim şu beş adımla yapılabilir:
Aynı davranışı düzenleyen kuralları gruplayın
Uzunluk, teknik ayrıntı, geçmiş konuşma, güvenlik, kapanış ve zamanlama kurallarını ayrı kümelere ayırın. Aynı konuda kaç farklı talimat bulunduğunu görün.
Zıt fiilleri arayın
“Kullan” ve “kullanma”, “sor” ve “sorma”, “kısa tut” ve “eksiksiz anlat” gibi emirlerin hangi koşullarda geçerli olduğunu kontrol edin.
Önceliği açık olmayan kuralları bulun
İki talimat çatıştığında hangisinin kazanacağı yazılı değilse model bunu her cevapta kendisi çözmeye çalışacaktır.
Verinin rolünü tanımlayın
Her bağlam parçası için şu ayrımı yapın:
- Teknik gerçek kaynağı
- Kullanıcı beyanı
- Geçmiş konuşma
- Ürün politikası
- Anlatım tercihi
- Güvenlik sınırı
Bu kaynakların birbirlerinin yerine geçmesine izin vermeyin.
Gerçek konuşmalarla regresyon testi yapın
Promptu yalnızca tasarlanmış örneklerle sınamayın. Daha önce hata üretmiş konuşmaları yeniden çalıştırın. Yeni düzenleme eski hatayı giderirken başka bir davranışı bozuyor mu kontrol edin.
10. Kurumlar için kısa prompt ilkeleri
Yapay zekâ destekli bir ürün geliştirirken şu ilkeler yararlı bir başlangıç sağlar:
- Promptu hata günlüğüne dönüştürmeyin.
- Yasak listesinden önce öncelik sırası kurun.
- Güncel soru ile geçmiş konuşmanın rolünü ayırın.
- Teknik gerçek için tek güvenilir kaynak tanımlayın.
- Açık tarih aralıklarını kesin kapsam sınırı kabul edin.
- Biçim tercihini teknik doğruluğun önüne koymayın.
- Her ilişkinin görünür olmasını isteyin; hepsine eşit uzunluk zorunluluğu getirmeyin.
- Retry mesajını mümkünse gerçek hata türüne göre oluşturun.
- Nadir istisnaları yalnızca ilgili soru türünde prompta ekleyin.
- Prompt değişikliklerini gerçek kullanıcı konuşmalarıyla test edin.
Sonuç: İyi prompt daha uzun olan değil, karar verebilen prompttur
Üretken yapay zekâ ürünlerinde güvenilirlik, modele her ihtimali tek tek anlatmakla kurulmaz. Modelin karşısına daha fazla emir koymak ilk başta kontrol hissi verir; fakat emirler arasında hiyerarşi yoksa sonuç tam tersine dönebilir.
İyi bir prompt:
- Kullanıcının güncel niyetini merkeze alır.
- Güvenilir veriyi eski konuşmadan ayırır.
- Çelişki halinde hangi kuralın kazanacağını söyler.
- Yalnızca ilgili istisnaları devreye sokar.
- Teknik doğruluğu korurken anlatım için yeterli esneklik bırakır.
- Hata çıktığında nerede bozulduğunun izlenebilmesini sağlar.
Yapay zekâyı iyi yönetmek, ona sürekli daha fazla şey söylemek değildir. Ne zaman hangi bilgiyi dinlemesi gerektiğini açıkça tasarlamaktır.
Kaynakça
- Anlatsal Sanatlar iç yazışmaları
- Anlatsal Sanatlar toplantı notları
- Anlatsal Sanatlar yapay zekâ kalite kontrol süreci
- Ürün kullanımı sırasında alınan geri bildirimler