Sistem Promptunuz Bir Talimat Değil, Veridir

İçindekiler
Büyük dil modelleriyle (LLM) çalışan birçok yazılımcı, sistem promptunu modelin uyması gereken bir "kurallar ve talimatlar listesi" olarak kurgular. Ancak 31B parametreli yerel bir modeli ayarlarken elde edilen deneyimler kritik bir gerçeğe işaret ediyor: Model, sistem promptunuzu bir dizi emir olarak değil; üreteceği çıktının yakınında bulunma olasılığı yüksek bir metin verisi (data) olarak okur.
Örneğin, bir sistem promptuna iyi bir Slack mesajı demosu olarak "Morning all, quick one:" ifadesi eklendiğinde; model gerçek Slack taslaklarını birebir bu ifadeyle başlatmış, ardından "hey" yazıldığında bile saat bilgisini bilmediği halde "Morning" yanıtını vermiştir. Prompt içerisine "kendi örneklerini kopyalama" kuralı eklemek üç derleme boyunca hiçbir şeyi değiştirmemiş; ancak bu ifade prompt'tan tamamen silindiğinde sorun ilk derlemede çözülmüştür.
Prompt Yazımında Dört Temel Kural
- Çıktıda yer almaması gereken ifade prompt'ta bulunmamalıdır: Bir ifadeyi yasaklamak işe yaramaz, çözüm onu prompt metninden tamamen silmektir.
- Kötü bir örneğin adını anmak onu çağırır: "Banka bakiyesi örneğini verme" demek, tam da o örneğin üretilmesini tetikler.
- Konum, kelime seçiminden üstündür: Metnin ortasına gömülen kurallar görmezden gelinir; aynı kural ilgili bölümün en başına yazıldığında kalıcı olur.
- Somut kurallar, soyut prensipleri alt eder: "rename işleminden önce fsync() çağır" direktifi hemen sonuç verirken, felsefi ve soyut ilkeler modeli yönlendiremez.
- En az üç seed ile doğrulama yapın: Bir değişikliğin çalıştığına inanmadan önce çıktıyı mutlaka en az üç farklı sabit seed üzerinde test edin.
Kurulum ve Metodoloji
Flash Onyx (31B), yaklaşık 680 satırlık bir sistem promptu ile Ollama üzerinde çalışan yerel bir ajan modelidir. Bu süreçte hislere dayalı prompt düzenleme terk edilerek deterministik bir döngü kurulmuştur: Promptu düzenle, etiketi derle, pinlenmiş seed'lerle sabit test istemlerini çalıştır ve çıktının gerçekten değişip değişmediğini kontrol et.
1. Örnekleriniz Örnek Değil, Birer Numunedir (Samples)
Deadlock kavramını açıklamak için iki fonksiyonlu bir kod örneği verildiğinde model, uydurulan fonksiyon isimleri dahil bu örneği kelimesi kelimesine kopyalamış; hatta bu kalıp "race condition" açıklamalarında dahi belirmeye başlamıştır. Biçimsel bir demo, doğruluk açığına dönüşmüştür. Çözüm; örnekleri modelin doğrudan kopyalamasını anlamsız ya da imkansız kılacak parçalar halinde sunmaktır.
2. Hiç Var Olmamış Bir Hata İçin Altı Yeniden Derleme
Modelin race condition sorularına ders kitabı formatında yanıt vermesini engellemek için altı revizyon denenmiş, ancak çıktı değişmemiştir. Aynı prompt üç farklı seed ile test edildiğinde, sorunun genel bir hata olmadığı, yalnızca 7 numaralı seed'e ait istisnai bir aykırı değer (outlier) olduğu anlaşılmıştır.
Yazılım Geliştirme ve Öğrenme Çıkarımları
Prompt mühendisliği, deterministik bir kod çalıştırma süreci değil, olasılıksal bir bağlam yönetimidir. Negatif kısıtlamalar eklemek yerine istenmeyen veriyi prompt'tan kaldırmak ve değişiklikleri regresyon testleri gibi sabit seed'lerle doğrulamak, güvenilir yapay zeka sistemleri geliştirmenin temel koşuludur.
Orijinal kaynağa buradan ulaşabilirsiniz.
Bu konuyu derinlemesine öğrenmek isterseniz: Temel Prompt Teknikleri modülüne göz atın.
Bu konuyu daha derinlemesine öğrenmek ister misin?
Edumints'teki ücretsiz kursları incele ve bugün başla.
Kurslara Göz At →