promptData = [
{variant: "label positive/negative", acc: 90.00, lo: 84.2, hi: 93.8, kind: "etiket yüzey biçimi"},
{variant: "label A/B", acc: 88.67, lo: 82.6, hi: 92.8, kind: "etiketin anlamı silinmiş"},
{variant: "bulleted", acc: 87.33, lo: 81.1, hi: 91.7, kind: "biçimlendirme"},
{variant: "numbered", acc: 87.33, lo: 81.1, hi: 91.7, kind: "biçimlendirme"},
{variant: "label 1/0", acc: 86.67, lo: 80.3, hi: 91.2, kind: "etiketin anlamı silinmiş"},
{variant: "triple quotes", acc: 82.00, lo: 75.1, hi: 87.3, kind: "ayraç"},
{variant: "baseline", acc: 79.33, lo: 72.2, hi: 85.0, kind: "baseline"},
{variant: "label olumlu/olumsuz", acc: 78.00, lo: 70.7, hi: 83.9, kind: "etiketin dili"},
{variant: "xml delimiters", acc: 77.33, lo: 70.0, hi: 83.3, kind: "ayraç"},
{variant: "polite", acc: 76.67, lo: 69.3, hi: 82.7, kind: "nezaket"},
{variant: "role prefix", acc: 76.00, lo: 68.6, hi: 82.1, kind: "persona"},
{variant: "review first", acc: 75.33, lo: 67.9, hi: 81.5, kind: "sıralama"}
]17 Prompting ve Bağlam İçi Öğrenme
Öğrenme hedefleri. Bu bölümün sonunda:
- bağlam içi öğrenmenin ne olduğunu ve prompt’a örnek koymanın tek bir ağırlığı değiştirmeden davranışı neden değiştirdiğini açıklayabilirsiniz;
- örüntü kütüphanesini — rol, yapı, gösterim, görevi bölme (task decomposition: görevi alt adımlara ayırma), çıktı sözleşmesi — uygulayabilir ve her birinin gerçekte ne işe yaradığını söyleyebilirsiniz;
- bir prompt’u istek olarak değil, çıktı sözleşmesi olan bir şartname olarak yazabilirsiniz;
- puanınızın ne kadarının modelden değil prompt’tan geldiğini ölçebilir ve prompt değişikliklerini incelenebilir kılan değerlendirmeyi kurabilirsiniz.
17.1 Prompting neden işe yarıyor
Ön eğitilmiş bir model bir sonraki token’ı tahmin eder. Bu eğitim hedefinde, modelin bir talimatı izlemesi gerektiğini söyleyen hiçbir şey yoktur; ilk büyük modellerin çoğu da izlemiyordu. Onları, doğal devamı tam da istediğiniz cevap olan bir ön ek yazarak kandırmanız gerekiyordu.
Reynolds ve McDonell (2021) o dönemin tarihsel belgesidir. Onu bugün okumak, “prompt mühendisliği”nin ne kadarının modelde eksik olan bir yeteneğin açığını kapatma çabası olduğunu iyi hatırlatır.
İki şey değişti. Ölçek, modelleri bağlamdaki örneklerden görevi çıkarabilir hâle getirdi (Brown vd. 2020); talimat ayarı (instruction tuning) ve ardından gelen tercih eğitimi de (Bölüm 9) onları bir talimatı devam ettirilecek metin olarak değil, talimat olarak görmeye eğitti. Modern promptlamanın kandırmak gibi değil de soru sormak gibi hissettirmesinin nedeni bu ikincisidir.
bağlam içi öğrenme (in-context learning) — modelin, bir görevin örnekleri prompt’un içinde durduğu için o görevde daha iyi sonuç vermesi. Hiçbir ağırlık güncellenmez ve çağrıdan sonra hiçbir şey kalmaz; öğrenme kelimesinin bunun için biraz yanıltıcı olmasının nedeni budur. ↩︎
Bağlam içi öğrenme bu iki değişiklikten ilki: prompt’a girdi-çıktı çiftleri koyarsınız ve model, hiçbir parametre güncellenmeden ve çağrıdan sonra hiçbir şey saklanmadan, bir sonraki girdide daha iyi sonuç verir.
Kaç örnek verdiğinizi adlandıran iki terimle sürekli karşılaşacaksınız. Zero-shot (sıfır atışlı) bir prompt’ta hiç örnek yoktur; yalnızca talimat ve girdi vardır. Few-shot (az örnekli) bir prompt ise bir avuç gösterim (girdi–çıktı çifti) ekler; \(k\)-shot da tam sayıyı söyler: 8-shot bir prompt sekiz gösterim taşır.
Yani bağlam içi öğrenme, Bölüm 9’un kelimeye verdiği anlamda bir öğrenme değil — hiçbir şey eğitilmiyor, hiçbir şey kalmıyor. Bu, modelin bağlamdan ne alabileceğiyle değil, mekanizmayla ilgili bir iddia. Model bağlamdan gerçekten yeni bir eşleme öğrense bile bu öğrenme ağırlıklara yazılmaz; yalnızca o çağrı boyunca geçerlidir. Bu durumun adını birkaç paragraf aşağıda koyuyoruz: görev öğrenme. Yaygın durum için kullanışlı bir çalışma tanımı görev çıkarımı: örnekler, modelin zaten yapabildiği pek çok görev arasından hangisini istediğinize dair seçenekleri daraltır.
Bu çerçeve tuhaf bir şey öngörüyor ve öngörü tutuyor. Min vd. (2022) gösterimlerdeki etiketleri rastgele olanlarla değiştirdi ve performansın büyük ölçüde korunduğunu buldu. Örneklerin esas ilettiği şey girdiden etikete eşleme değil, görevin biçimiydi: etiket uzayı, format, girdilerin dağılımı.
Bu daralmanın nasıl gerçekleştiğini açıklayan iki araştırma kolu var. Onları bilmek gerekiyor; yoksa “görev çıkarımı” yalnızca bir ifade olarak kalır. Xie vd. (2022) bunu örtük Bayesçi çıkarım olarak biçimselleştiriyor: gösterimler, modelin ön eğitimde zaten edindiği gizli kavramlar üzerindeki sonsal dağılımı (posterior: gözlemlerden sonra güncellenen olasılık dağılımı) keskinleştiriyor — örneklerin dağılımının doğruluklarından daha önemli olmasının sebebi de bu. Olsson vd. (2022) ise devre düzeyindeki sürümü veriyor: [A][B] … [A] → [B] kalıbını tamamlayan attention (dikkat mekanizması) head’leri — induction head’ler — eğitimde tam da bağlam içi öğrenme yeteneğinin sıçradığı noktada ortaya çıkıyor. Bölüm 7’den sonra bu, “prompt’taki örnekler tek bir ağırlığı değiştirmeden nasıl işe yarıyor” sorusuna mekanizma düzeyinde verilen cevap.
Bir de Min vd. (2022) için akılda tutulması gereken bir sınır var, çünkü bu bölüm o bulguyu birkaç kez tekrarlıyor. Pan vd. (2023) görev tanımayı — gösterimler modele hangi görev olduğunu söylüyor — görev öğrenmeden, yani gösterimlerin eşlemeyi öğrettiği durumdan ayırıyor. Rastgele etiketler görev tanımayı bozmuyor; Min ve arkadaşlarının ölçtüğü de bu. Görev öğrenme ise gerçekten var, model ölçeğiyle büyüyor ve rastgele etiketlerin yok ettiği şey de bu. Yani “etiketler önemli değil” sözü tanıma kısmı için doğru, öğrenme kısmı için yanlış; hatalı etiket kullanmaya gerekçe de olamaz. Pratik sonuç iki yönlü: kusursuz örnekler derlemek için bir hafta harcamadan önce örneklerin işe yarayıp yaramadığını ölçün, ama kullandığınız örneklerin etiketlerini de doğru tutun.
Bu çerçeve başarısızlık biçimini de öngörüyor. Gösterimler esas olarak formatı iletiyorsa, formatı zaten bilen bir model onlardan az şey kazanır. Bölüm 12’nin ölçtüğü de buydu: sekiz örnek bir modele +7,17 macro-F1 kazandırırken daha güçlü bir modele +0,51 (\(p = 0{,}62\)) kazandırdı. Teknik işe yaramaz hâle gelmedi; modeller ona ihtiyaç duymaz oldu.
17.1.1 Bu bölümün üzerine kurulduğu iddia
Prompt modelin bir parçasıdır. Ona gönderilen bir mesaj değil — sistemin bir bileşeni. Bölüm 4’ün hattında öznitelik çıkarma işlevi nerede duruyorsa, prompt da orada duruyor. Sürümü vardır, sözleşmesi vardır, regresyonları (bir değişiklikten sonra ortaya çıkan performans gerilemeleri) vardır. Onu değiştirmek, çıktı dağılımınızı en az checkpoint’i (yayımlanmış model ağırlıkları) başkasıyla değiştirmek kadar kesin biçimde etkiler.
Bölümün geri kalanı bu iddiayı ciddiye almanın sonuçlarından oluşuyor. Bölüm 17.4 ise bu iddiayı görmezden gelmeyi zorlaştıran ölçümdür.
Neye bakacağız. Önce örüntü kütüphanesi — işe yarayan beş şey ve her birinin gerçekte yaptığı iş; böylece bir örüntünün ne zaman yardımcı olmayacağını anlayabilirsiniz. Sonra istek yazmaktan şartname yazmaya geçiş; bir prompt’u denetlenebilir kılan şey budur. Sonra bölümün dayandığı ölçüm: aynı şeyi söyleyen on iki prompt, tek bir model ve tek bir görevde neredeyse on beş puanlık bir doğruluk aralığına yayılıyor ve rol ön eki on iki varyant arasında on birinci geliyor. Son olarak da sayıyı kabul ettiğinizde ardından gelen düzenek: yeniden üretilebilirlik, dondurulmuş bir küme, eşleştirilmiş (paired) testler ve bir sürüm dizgisi.
17.2 Bir örüntü kütüphanesi
Prompt bir bileşense, bunlar onun parçalarıdır. Beş örüntü işe yarayanların çoğunu kapsıyor ve hiçbiri sihirli bir kelime değil — her biri tanımlanabilir bir iş yapıyor. İşi adlandırmak da örüntünün ne zaman yardımcı olmayacağını size gösterir.
Rol. Sen deneyimli bir müşteri geri bildirimi analistisin. İşlevi, modelin dağılımının bir bölgesini seçmek — sözcük dağarcığı, üslup, neyin ilgili bir ayrıntı sayıldığı. Modelde olmayan bir uzmanlığı istediğinde en zayıftır (bir rol ön eki modeli doktor yapmaz); gerçek ve sık karşılaşılan bir ihtiyacı, yani üslubu netleştirdiğinde ise en güçlüdür.
Sohbet modellerinde rol ve kalıcı kurallar genellikle sistem prompt’una yazılır: kullanıcının mesajından önce gelen, sohbet şablonunun (Bölüm 9) kendi token’larıyla işaretlediği ayrı bir mesaj. Modeller ona kullanıcının yazdıklarından daha fazla öncelik vermeye eğitilir; ama o da aynı bağlam penceresindeki bir metindir, modelin yok sayamayacağı bir ayar değildir. Sistem prompt’u talimatları güçlendirir, kurcalanamaz kılmaz.
Yapı. Bölümler, ayraçlar, girdi için açık bir yer. İşlevi, sizin talimatınızla kullanıcının verisi arasındaki sınırı netleştirmek. <yorum>...</yorum> süs değildir; modele metnin hangi kısmının veri olduğunu söyleyen şeydir. Ama ayracın ne olmadığı konusunda net olalım: bir ayraç o sınırı işaretler, dayatmaz. Ayraçların arasındaki metin yine de modelin okuduğu metindir. Kapanış ayracını kendisi yazıp ardından kendi talimatını veren bir yorum, standart saldırı yöntemidir: prompt enjeksiyonu. Bunu gerçekte olduğu gibi bir güvenlik problemi olarak ele alan yer Bölüm 36’dır; yapı tek başına bir savunma değildir.
Gösterimler. Girdi-çıktı çiftleri. Min vd.’ne (2022) göre işlevleri esas olarak formatı ve etiket uzayını sabitlemek. Çıktı biçimi alışılmadık ya da tarif edilmesi zor olduğunda kullanın; modelin belli ki daha önce gördüğü bir görevde onlardan daha az şey bekleyin.
Görevi bölme. Bir seferde tek bir şey isteyin ya da cevaptan önce ara sonuçlar isteyin. İşlevi, hesaplamayı tek bir ileri geçişe (forward pass) sıkıştırmak yerine üretilen token’lara yaymak. Bu, Bölüm 10’un konusu; ne zaman yardımcı olduğunu ölçen de o bölüm. Bu bölümün katkısı ise bundan çıkan pratik sonuç: aynı anda dört şey isteyen bir prompt en az birini kötü yapacaktır ve böyle bir prompt’u bölmek, düzeltmekten genellikle daha ucuzdur.
Çıktı sözleşmesi. Cevabın tam biçimini belirtin ve modelin üretebileceği en kolay şeyin bu biçim olmasını sağlayın. Etkisi en büyük örüntü budur ve Bölüm 17.3’te ayrıca ele alınıyor.
NotPeki “adım adım düşün”?
Bu, düşünce zincirinin (chain-of-thought) prompt’la istenen biçimidir: model nihai cevabından önce ara adımları yazar. Konu Bölüm 10’a aittir ve orada düzgünce ölçülüyor. Kısa cevap şu: bu ifade büyük ölçüde bir kalıntı. Kojima vd. (2022) ifadenin, akıl yürütmek üzere eğitilmemiş modellerde işe yaradığını buldu. Akıl yürütmek üzere eğitilmiş modeller ise akıl yürütme izini siz isteseniz de istemeseniz de üretir; böyle bir modele bu ifadeyi eklemek çoğunlukla token israfıdır.
Kalıcı olan kısım ifade değil mekanizma: cevaptan önce daha çok token, onu üretmek için daha çok hesaplama demektir. Görev gerektirdiğinde ara sonuç isteyin ve sihirli sözü atlayın.
17.3 Şartname olarak prompt’lar
Bu bölümdeki en işe yarar değişiklik bir kip değişikliği: prompt’ları istek olarak yazmayı bırakıp şartname olarak yazmaya başlayın.
Bir istek ne istediğinizi söyler. Bir şartname ise geçerli bir çıktının ne olduğunu söyler; bu da onu kontrol edilebilir kılar. Çıktısı kontrol edilebilen bir prompt, test edebileceğiniz bir prompt’tur.
request "Summarise the customer's complaint."
specification "Return one JSON object with keys `issue` (string, max 15
words), `severity` (one of: low, medium, high) and
`product` (string, copied exactly from the review, or null
if no product is named). Return nothing else."
Türkçesiyle: istek “Müşterinin şikâyetini özetle.”; şartname ise “issue (en fazla 15 kelimelik dizgi), severity (low, medium, high değerlerinden biri) ve product (yorumdan birebir kopyalanmış dizgi; hiçbir ürün adı geçmiyorsa null) anahtarlarını taşıyan tek bir JSON nesnesi döndür. Başka hiçbir şey döndürme.”
İkinci sürüm size birincinin vermediği üç şeyi verir: ya başaran ya da açıkça hata veren bir ayrıştırıcı, doğrulayabileceğiniz bir değerler kümesi ve modele bir ürün uydurmak yerine hiçbir ürün adı geçmiyor demenin meşru bir yolunu veren bir null. Yine de Bölüm 18’in vurguladığı gibi, modelin bu null’ı gerçekten kullanıp kullanmadığını kontrol etmeniz gerekir.
Bundan çıkan üç kural:
- Başarısızlık durumundaki çıktıyı belirleyin. Model şartnameye uyamıyorsa ne döndürmeli? Modele çekimser kalma, yani cevap vermeme seçeneği (abstention) tanımayan bir prompt, bir “bilmiyorum” yerine uydurulmuş bir cevap alır; çünkü modele hayır demenin meşru bir yolunu bırakmadınız.
- Kısıtı etkili olacağı yere koyun. Girdinin 800 token yukarısındaki bir talimat, modelin attention’ı için girdiyle yarışır. Mutlaka uyulması gereken kısıtlar sona yakın yer almalıdır. Bu kural uzun girdiler içindir: uzun bağlamda modeller baştaki ve sondaki malzemeyi ortadakinden daha iyi kullanır (Liu vd. 2024), hedefi sonda yinelemenin neden neredeyse bedava olduğunu da Bölüm 25.3 gösteriyor. Aşağıdaki deneyin kısa yorumlarında ise talimatı sona taşıyan
review firstvaryantı sonuncu geldi; 150 yorumda anlamlılığı sınanmamış bir fark bu kuralı çürütmez, ama kuralın kısa girdilere kendiliğinden aktarılmadığını hatırlatır. - Sözleşmeyi makinece kontrol edilebilir yapın, sonra kontrol edin. Doğrulamadığınız bir şema bir yorum satırıdır. Sözleşmeyi zorunlu kılan düzenek — gramerler, JSON Schema — ve kısıtlamanın neye mal olduğunun ölçümü Bölüm 18’de.
Bir de Bölüm 13.8’den bir uyarı. Bu uyarıyı şemanın zorunlu kılındığı bölümde değil, yazıldığı bölümde tekrarlamaya değer: bir şema biçimi garanti eder, doğruluğu asla garanti etmez. Gramerle kısıtlanmış bir çağrı, Fransa’nın başkenti için hiç duraksamadan {"answer": 1} döndürdü. Sözleşmeyi doğrulamak size yalnızca çıktının iyi biçimli olduğunu söyler.
17.4 Puanınızın ne kadarı prompt?
Yukarıdakilerin hepsi zanaat. Bu kısım ise zanaatı önemli kılan ölçüm; elinizdeki herhangi bir sayıya güvenmeden önce kendi görevinizde çalıştırmanız gereken de bu.
Aynı görev için on iki prompt yazıldı — bir Türkçe ürün yorumunun olumlu mu olumsuz mu olduğuna karar vermek. Yetkin bir okur bunlara aynı talimat derdi.
Biçimlendirmede, etiketlerin yüzey biçiminde, yorumun talimata göre durduğu yerde, ayraçlarda ve nezakette ayrışıyorlar. Hiçbiri görevi ya da ölçütleri değiştirmiyor.
Üçü ise etiketlerin ne olduğunu gerçekten değiştiriyor; bu da bir tasarım kusuru olmaktan çok bilgi verici çıkıyor: A/B ile 1/0 etiketin anlamını tamamen siliyor, olumlu/olumsuz ise dilini değiştiriyor. Tabloya bakarken bunu aklınızda tutun: anlamı tamamen silinmiş A/B ikinci sırada geliyor, anlamlı Türkçe çiftin on puandan fazla önünde. Bu, etiket kelimesinin anlamının burada belirleyici olmadığını düşündürüyor. Ama aynı tabloda yalnızca etiketlerin diliyle ayrılan olumlu/olumsuz varyantı positive/negative’in 12 puan gerisinde; yani kelimeler yine de önemli. İki bulgu birlikte bir açıklama bekliyor ve aşağıdaki etiket yanlılığı tartışması bunun için bir aday.
Her varyant, baseline (karşılaştırma tabanı) adlı sade prompt’a göre tanımlanıyor. Buradaki baseline bir modeli değil, ötekilerin kıyaslandığı referans prompt’u adlandırıyor.
| varyant | baseline’a göre neyi değiştiriyor |
|---|---|
baseline |
— talimat, sonra yorum, sonra Answer:; etiketler positive / negative |
label positive/negative |
etiketin yüzey biçimi |
label A/B |
etiketin yüzey biçimi, anlamı silinmiş |
label 1/0 |
etiketin yüzey biçimi, anlamı silinmiş |
label olumlu/olumsuz |
etiketin yüzey biçimi, dili Türkçeye çevrilmiş |
bulleted |
talimat madde işaretleriyle dizilmiş |
numbered |
talimat numaralı satırlarla dizilmiş |
triple quotes |
yorum """…""" içine alınmış |
xml delimiters |
yorum <review>…</review> içine alınmış |
review first |
yorum talimatın üstüne taşınmış |
polite |
başa lütfen, sona teşekkürler |
role prefix |
başa tek cümlelik bir persona |
Bu bölümün size vermesi gerekip de vermediği bir şey var: on iki prompt’un tam metni. Yukarıdaki tablo neyin değiştiğini adlandırıyor ama koşuyu yeniden üretmenizi sağlamıyor. Prompt’ları yayımlanmamış bir prompt deneyi de yeniden üretilemez. Siz kendi prompt’larınızı yayımlayın. Bu eksikliğin en çok hissedildiği satır label positive/negative: etiket kelimeleri baseline’dakiyle aynı, farkı yazılış ayrıntıları yaratıyor ve metinler olmadan hangi ayrıntı olduğu söylenemiyor. Prompt’ların hangi dilde yazıldığı ve modelin düşünme (thinking) kipinin açık olup olmadığı da bu bölümde raporlanmıyor; deneyi tekrarlarken ikisini de kaydedin.
On ikisi de aynı 150 dengeli yorumda, aynı modelde, sıcaklık 0’da ve sabit seed’le (seed: rastgele sayı üretecinin başlangıç değeri) çalıştı. Her yanıt ayrıştırıldı; hiçbiri atılmadı. Aşağıdaki aralıklar Wilson aralıkları: bir oran için %95 güven aralığı veren ve ders kitabındaki \(\hat p \pm 1{,}96\,\text{SH}\) formülünün (SH: standart hata) aksine %0 ve %100’e yakın yerlerde de makul kalan bir yöntem. Çıktıda her satır bir varyantın doğruluğunu (acc) ve Wilson aralığını veriyor; son satır en kötü ile en iyi arasındaki yayılımı (spread), ortalamayı (mean) ve standart sapmayı (sd) özetliyor.
variant acc 95% CI (Wilson)
label positive/negative 90.00% [ 84.2, 93.8]
label A/B 88.67% [ 82.6, 92.8]
bulleted 87.33% [ 81.1, 91.7]
numbered 87.33% [ 81.1, 91.7]
label 1/0 86.67% [ 80.3, 91.2]
triple quotes 82.00% [ 75.1, 87.3]
baseline 79.33% [ 72.2, 85.0]
label olumlu/olumsuz 78.00% [ 70.7, 83.9]
xml delimiters 77.33% [ 70.0, 83.3]
polite 76.67% [ 69.3, 82.7]
role prefix 76.00% [ 68.6, 82.1]
review first 75.33% [ 67.9, 81.5]
spread 75.33% – 90.00% = 14.67 points mean 82.06 sd 5.57
Bir yayılım ancak bir ölçüte göre anlam kazanır. On iki prompt gerçekten eşit derecede iyi olsaydı ve her puan \(n = 150\)’de bağımsız bir çekiliş olsaydı, tek bir kestirimin standart hatası 3,13 puan, on iki böyle çekilişin beklenen yayılımı ise kabaca 10 puan olurdu — yalnızca örnekleme gürültüsünden. Yani 14,67, şansın vereceğinin kabaca bir buçuk katı; bir büyüklük mertebesi üstünde değil. Eşleştirilmiş tasarım, gerçek sıfır hipotezi dağılımını bağımsız hesabın verdiğinden daha dar kılıyor; dolayısıyla etki muhtemelen gerçek. Ama raporlanacak sayı bir permütasyon testinden gelmeli: her yorumun içinde, on iki cevabından hangisini hangi varyantın ürettiğini karıştırın, yayılımı yeniden hesaplayın, bunu on bin kez tekrarlayın ve 14,67’nin nereye düştüğüne bakın. Biz bunu çalıştırmadık; bu deneyi tekrarlarsanız ilk ekleyeceğiniz şey bu olmalı.
Aynı şeyi söyleyen iki prompt arasında neredeyse on beş puanlık doğruluk farkı.
17.4.1 Bu gerçek mi, yoksa 150 belgelik gürültü mü?
Güven aralıkları örtüşüyor; dolayısıyla sıradaki bariz soru, bu bulgulardan herhangi birinin istatistiksel bir testi geçip geçemeyeceği. Gözlenen 14,67 puanlık yayılım bu 150 belge hakkında bir olgu; bunun genelleşip genelleşmediği ise ayrı bir iddia. Aşağıdaki eşleştirilmiş çözümleme bu iddiayı sorgulamanın yolu: iki toplam oranı karşılaştırmak yerine yorum düzeyindeki ayrışmaları doğrudan kullanıyor. Çıktıda documents where they disagree, iki prompt’un farklı cevap verdiği belge sayısı; altındaki iki satır bu ayrışmaların kaçında en iyinin, kaçında en kötünün doğru olduğunu gösteriyor.
best 'label positive/negative' 90.00%
worst 'review first' 75.33%
documents where they disagree 42
best right, worst wrong 32
worst right, best wrong 10
McNemar exact test p = 0.0009
Bonferroni over 66 pairs p = 0.062
McNemar testinin arkasındaki sezgi bir yazı-turadır: iki prompt eşit derecede iyi olsaydı, 42 ayrışmanın her biri iki yöne de eşit olasılıkla düşerdi. Kesin test, hilesiz bir paranın 42 atışında 32’ye 10’luk bir bölünmenin ne kadar şaşırtıcı olduğunu soruyor. Bonferroni ise bu ham \(p\)’yi yapabileceğiniz karşılaştırma sayısıyla — burada 66 — çarpıyor.
Fark, düzeltme yapılmamış eşleştirilmiş bir testi geçiyor — ama en iyi ile en kötü çifti, olası \(\binom{12}{2} = 66\) çiftin uç noktası ve veriye bakıldıktan sonra seçildi; yani aktarılacak sayı düzeltilmemiş olan değil. \(p\) değeri o 66 karşılaştırma için düzeltildiğinde p = 0,062’ye çıkıyor: 150 yorumda düşündürücü, ama düzeltmeden sonra %5 düzeyinde anlamlı değil. Bu, Bonferroni düzeltmesi. Holm yöntemi (Bonferroni’nin p-değerlerini sıralayarak uygulanan, daha az tutucu sürümü) 66 p-değerinin tamamının sıralamasını gerektirir ve en büyük doğruluk farkının en küçük eşleştirilmiş p-değeri olması garanti değildir; dolayısıyla hesaplamadığımız bir Holm rakamını aktarmıyoruz.
Sağlam bir çözümlemede birincil test ise omnibus (bütün varyantları tek seferde sınayan) testtir: aynı 150 yorumda on iki varyantın tamamı için Cochran’ın Q testi. Çünkü asıl sorulan soru bu: prompt’un hiç önemi var mı? Önce Q’yu çalıştırın, sonra adını anmak istediğiniz çiftler için Holm düzeltmeli eşleştirilmiş McNemar testini. Çifti, insanların alıntıladığı sayı o olduğu için raporluyoruz; ama etkiyi bir yayılım olarak görün. Bir sonraki istatistik bu yayılımı doğrudan ölçüyor, çoklu karşılaştırma probleminden kaçınıyor ve doğruluğu hiç kullanmıyor. İlk satır on iki varyantın hepsinin aynı cevabı verdiği yorumları, ikincisi cevabın varyanta göre değiştiği yorumları sayıyor; son satır ise herhangi iki varyantın ayrıştığı yorum oranının ortancasını ve en yüksek değerini veriyor:
all 12 variants give the same answer on 104/150 = 69.3% of reviews
the prompt decides the answer on 46/150 = 30.7%
two variants disagree on: median 12.0% of reviews, max 28.7%
On yorumdan üçünde cevap, sınanan on iki prompt varyantı arasında değişiyor. Yorum, model, sıcaklık ve seed sabit tutuldu; yani değişen şey prompt — ama buradaki “prompt” yalnızca biçimlendirmeyi değil etiketlerin yazılışını, rolü, sıralamayı ve nezaketi de kapsıyor. O ilk sayının ne olduğuna ve ne olmadığına dikkat edin: on iki varyantın uzlaşması, üzerinde uzlaşılan cevabın doğru olduğunu göstermez ve bu koşu, oybirliğine varılan 104 yorumdaki doğruluğu ayrıca raporlamıyor. Deneyi tekrarladığınızda o satırı ekleyin: “modelin bir görüşü var” ifadesinin bir ölçüm mü yoksa bir söz sanatı mı olduğunu o satır belirler. Bir sonraki alt bölüm, bu satıra ne kadar çok şeyin dayandığını gösteriyor.
17.4.2 Prompt karar mı veriyor, yoksa bir eşiği mi kaydırıyor?
Çerçeveyi kabul etmeden önce aritmetiği izleyin, çünkü daha faydalı bir yere işaret ediyor. Oybirliğine varılan 104 yorumun hepsi doğruysa, %82,06’lık ortalama puan — 150’de 123,1 — tartışmalı 46 yorum için geriye 19,1 doğru cevap bırakıyor. Yani %41,5; dengeli bir görevin %50’lik tabanının altında. En iyi varyant o 46’nın 31’ini, en kötüsü 9’unu doğru cevaplıyor.
Zor yorumlarda rastgele cevap veren on iki prompt %50’de kalırdı. Ortalamanın %50’nin altında kalması, üstelik uçların %67 ile %20 olması, başka bir resme işaret ediyor: on iki farklı eşikte duran ve her biri sistematik olarak bir etikete yatkın on iki prompt.
Bu okumaya temkinli yaklaşın, çünkü “hepsi doğru” varsayımına dayanıyor. Oybirliğine varılan 104 yorumdan yalnızca dördü yanlış olsaydı, tartışmalı 46 yorumdaki doğruluk %41,5 değil %50,2 olurdu. Üstelik prompt’lar üzerinde ayrıştığı için seçilmiş bir alt kümede şans düzeyinin altındaki bir puan, referans etiketi zaten tartışmalı olan yorumlardan da gelebilir. Eşik açıklaması bir sonuç değil, sınanacak bir hipotez.
Bu da prompt mühendisliği çerçevesinin gizlediği bir çözüme işaret ediyor. Zhao vd. (2021), bu duyarlılığın büyük kısmının etiket yanlılığı olduğunu gösterdi. Etiket yanlılığı, modelin cevap token’ları üzerindeki önsel dağılımdır ve prompt’un yüzey özellikleriyle kayar. Aynı çalışma, bu yanlılığı içeriksiz bir girdide (örneğin N/A) kestirip bölerek gidermenin, prompt biçimleri arasındaki varyansı belirgin biçimde azalttığını da gösterdi. Bu düzeltme, modelin döndürdüğü metne değil etiket token’larına verdiği olasılıklara ihtiyaç duyar; bunların nasıl okunacağını Bölüm 18 gösteriyor. Yani bu kısmın sonucunu doğru ifade edersek: kalibrasyondan önce gözlenen prompt yayılımı 14,67 puan — örnekleme gürültüsünün tek başına kabaca 10 puan üretebildiği bir tasarımda. Bunun ne kadarının kalibrasyondan sonra da korunduğu, sıradaki deneyin konusu. Dengeli bir kümede varyant başına \(P(\text{olumlu tahmin})\) raporlamak ise bunu yukarıdaki aritmetiğe hiç gerek kalmadan gösterecek tek sütunluk bir teşhistir: bu değerin %50 olması gerekir ve neredeyse kesinlikle öyle değildir.
Bu iki okuma da aynı 150 yorumu iki farklı şekilde kesiyor:
Aynı 150 yorum, iki farklı kesit — ve soruyu belirleyen 42 tanesi
Her blok aynı ölçekte çizildi, dolayısıyla bir yorum iki bantta da aynı genişlikte. Üst bant, bölümün öne çıkan sayısını başka bir biçimde gösteriyor: on iki varyantın hepsi 150 yorumun 104’ünde aynı cevabı veriyor, kalan 46’sında ise cevabı varyant seçimi belirliyor. Bu bir doğruluk değil, uzlaşma ölçüsü. Alt bant ise istatistiğin neden işe yaradığını gösteriyor: eşleştirilmiş bir test yalnızca iki prompt’un ayrıştığı 42 yoruma bakar ve güven aralıkları örtüşen puanları bu sayede ayırır.
17.4.3 Bu, ölçtüğünüz her şey için ne anlama geliyor
Bunu, Bölüm 12’nin aynı modeldeki sonucuyla karşılaştırın. Orada talimatı Türkçe yerine İngilizce yazmak — promptlamayla ilgili en çok tekrarlanan yaygın kanı — +0,54 macro-F1 değerindeydi ve %95 aralığı yalnızca +2,25’e kadar uzanıyordu. Bu, etkinin ortadan kalktığını göstermiyor; geriye kalan etki her neyse, ona iki puanı biraz aşan bir üst sınır koyuyor. Burada ise madde işareti biçimlendirmesini değiştirmek bu 150 yorumda sekiz puan fark yarattı (net 12 yorum; bu çift için eşleştirilmiş test raporlanmadı). İki sayı farklı görevlerden ve ölçütlerden geliyor — orada 2.000 belgede macro-F1 ile ölçülen şikâyet tespiti, burada 150 yorumda doğrulukla ölçülen dengeli duygu analizi. Bu yüzden karşılaştırmayı kesin bir oran olarak değil, büyüklük mertebesi düzeyinde okuyun.
Ama dilin önemli olmadığı sonucuna varmadan önce tabloya yeniden bakın, çünkü tablo yaygın kanıyı çürütmüyor, karmaşıklaştırıyor. Etiketi positive/negative yerine olumlu/olumsuz yapmak, label positive/negative varyantına göre 12 puana mal oldu — bu deneydeki tek değişkenli en büyük değişiklik. (baseline’a göre aynı iki Türkçe kelime yalnızca 1,33 puan kaybettiriyor; yani hangi referansı seçtiğiniz önemli. Daha temiz karşılaştırmayı, bu bölümün yayımlamadığı varyant metinleri netleştirirdi.) Talimatın dili neredeyse hiç fark yaratmadı; etiketin dili ise her biçimlendirme değişikliğinden daha büyük fark yarattı. “Dil önemli mi?” tek bir soru değil ve sorunun iki yarısı aynı modelde zıt cevaplar verdi.
Herkesin tartıştığı değişken, tartıştıkları yerde ölçülemeyecek kadar küçük çıktı (en fazla ~2 puan); bu deneydeki en büyük fark ise çoğu kişinin değişken saymadığı iki kelimeden geldi.
Üç sonuç var ve çalışma biçiminizi değiştirecek olan üçüncüsü:
- Tek prompt’lu bir model karşılaştırması güvenilmezdir. Tek bir modelde gözlenen prompt yayılımı 14,67 puansa, her biri tek bir prompt’la ölçülmüş “A modeli B’yi 5 puan yendi” sonucu, prompt’lar hakkında bir ifadedir. Modelleri bir prompt kümesi üzerinde karşılaştırıp dağılımı raporlayın ya da modelleri karşılaştırmadığınızı kabul edin.
- Raporladığınız doğruluğun hesaplamadığınız bir hata payı var. 150 belgedeki örnekleme aralığı uçtan uca yaklaşık 12 puan. Aynı veride prompt yayılımı 14,67; yani ikisi aynı büyüklük mertebesinde. Mesele de bu: bu iki hata payından biri hesaplanıp basılıyor, öteki ne hesaplanıyor ne basılıyor. Ayrıca daha fazla veriye farklı tepki veriyorlar: belge ekledikçe örnekleme aralığı sıfıra doğru daralmayı sürdürüyor; gözlenen prompt yayılımı ise yalnızca içindeki örnekleme gürültüsü temizlenene kadar daralıyor, sonra gerçek prompt etkisinde sabitleniyor.
- Prompt değişiklikleri inceleme değil regresyon testi ister. “Yorumu talimatın üstüne taşıdım” ifadesini okuyan hiçbir inceleyici −4 puan öngörmez, çünkü değişiklik anlamsal olarak boştur. Bu farkı yalnızca bir ölçüm yakalar; sorunu bir yazma problemi değil, bir test problemi yapan da budur.
Sclar vd. (2024) bu deneyin görevler ve modeller genelinde yapılmış sistematik hâli; büyük ölçekte de aynı şeyi buluyor: anlamla ilgisi olmayan biçimlendirme özellikleri, puanları gerçek model farklarıyla kıyaslanabilir miktarlarda oynatıyor. Lu vd. (2022) aynısını gösterimlerin sırası için buldu ve onların sonucu daha da keskin: sabit bir örnek kümesinin permütasyonları puanları alanın en ileri düzeyine (state of the art) yakın bir yerden şansa yakın bir yere taşıyabiliyor — örnekler aynı, yalnızca sıraları değişiyor. Yukarıdaki review first varyantı bu etkinin zero-shot gölgesi. Few-shot bir prompt’ta sıralamanın serbestlik derecesi, burada ölçülen biçimlendirmeninkinden daha büyük olabilir ve siz sıralamanın etkisini neredeyse kesinlikle ölçmüyorsunuz. Literatür yıllardır bu konuda net; uygulama ise henüz ona yetişmedi, çünkü prompt hâlâ bir bileşenden çok bir mesaj gibi hissettiriyor.
17.4.4 Kaybeden örüntüler
O tablodaki iki sonuç, yaygın olarak öğretilen tavsiyeyle çeliştikleri için ayrıca anılmalı.
Rol ön eki on iki varyant arasında on birinci geldi (%76,00; onsuz aynı prompt için %79,33). Sen deneyimli bir müşteri geri bildirimi analistisin dolaşımdaki en çok tekrarlanan promptlama örüntüsüdür ve bu görevde üç puana mal oldu.
Nezaket 2,67 puana mal oldu (150 yorumda net dört doğru cevap). Lütfen… Teşekkürler zararsız görünüyor; burada en azından yardımcı olmadı.
İki sonuç da genellenecek türden değil; bu örneklemde bile anlamlı değiller. 150 yorumda 5 ve 4 yorumluk net farklar bunlar ve bu kadar küçük bir net fark, bütün ayrışmalar aynı yöne düşse bile kesin McNemar testinde %5 düzeyine ulaşamaz (en küçük olası iki yönlü \(p\) sırasıyla 0,0625 ve 0,125). Yani bunlar bu örneklemdeki gözlemler, kanıtlanmış bulgular değil. Ders “asla rol ön eki kullanmayın” değil. Ders şu: hangi prompt’un daha iyi olduğunu okuyarak anlayamazsınız. Bu kısmın baştan sona karşı çıktığı şey de anlayabileceğinize dair inanç.
17.5 Prompt çalışmasını incelenebilir kılmak
Prompt bir bileşense ve gözlenen yayılımı 14,67 puansa, diğer her bileşene uygulanan araçların ve süreçlerin ona da uygulanması gerekir. Aşağıda, karşılığını verdikleri sırayla dört parça var.
17.5.1 1. Önce yeniden üretilebilirliği saptayın
Herhangi bir şey ölçmeden önce kurulumunuzun aynı cevabı iki kez verip vermediğini öğrenin. Otuz yorum, her biri on tekrar. Tabloda identical output, on tekrarın birebir aynı çıktığı belgelerin oranı; documents that varied ise çıktısı en az bir kez değişen belge sayısı:
setting identical output documents that varied
temperature 0, fixed seed 100.0% 0 / 30
temperature 0, no seed 100.0% 0 / 30
temperature 0.7, fixed seed 100.0% 0 / 30
temperature 0.7, no seed 3.3% 29 / 30
İyi haber ve bir tuzak. Sıcaklık 0’da bu kurulum, on tekrar boyunca 30 belgenin hepsinde birebir aynı çıktıyı verdi — seed’li ya da seed’siz — ve sabit bir seed sıcaklık 0,7’de de aynısını yaptı. Bunu bir belirlenimcilik kanıtı olarak değil, 300 çağrıda hiç değişim yok olarak okuyun: 30 yorumda sıfır olay, gerçek değişim oranının yaklaşık %10’a kadar çıkmasına hâlâ yer bırakıyor. Sıcaklık 0 da sabit seed de yokken 30 belgenin 29’u on çalıştırmada farklı cevap verdi — yani varsayılan ayarlarda yapılan bir değerlendirme prompt’u ölçtüğü kadar örnekleyiciyi de ölçüyor.
O tablo, her seferinde tek bir isteğe cevap veren yerel bir sunucudan geliyor. Asıl belirleyici koşul da bu; sunucunun yerel olması değil. Belirlenimciliği bozan şey batch invariance (batch değişmezliği) eksikliğidir. Batch invariance, aynı girdinin hangi batch’te (birlikte işlenen istek grubunda) işlenirse işlensin aynı sonucu vermesidir. Matmul (matris çarpımı), normalleştirme ve attention’ın arkasındaki indirgeme kernel’leri ise farklı batch boyutlarında farklı kod yolları izliyor; yani aynı prompt, tek istekli bir batch’te ve on yedi istekli bir batch’te sıcaklık 0’da bile farklı çıktı verebiliyor (He ve Thinking Machines Lab 2025). Barındırılan API’ler isteğinizi başka kullanıcıların istekleriyle aynı batch’te işler; sıcaklık 0’da sıklıkla belirlenimci olmamalarının sebebi budur — ama yerel bir sunucu da kendiliğinden güvenli değil. Batch boyutunu, bağlam uzunluğunu, KV önbelleğinin (önceki token’lar için hesaplanmış attention anahtar ve değer vektörlerinin saklandığı yer; bkz. Bölüm 31.3) yeniden kullanımını ya da arka ucu değiştirin, aynı şey olur. Varsaymayın: on tekrarlı kontrolü gerçekten yayına alacağınız uç noktada ve yapılandırmada çalıştırın. Çıktı belirlenimci değilse değerlendirmeniz tek bir sayıyla yetinemez; tekrarlar ve bir aralık ister.
17.5.2 2. Küçük bir değerlendirme kümesi kurun ve dondurun
Kurulumun aynı soruya iki kez aynı cevabı verdiğini bildiğinizde sıra, neyi ölçeceğinize gelir: kendi etiketlediğiniz, şimdiye kadar gördüğünüz kusur biçimlerini kapsayan elli ile iki yüz arası madde. Büyük olması gerekmiyor — sabit olması gerekiyor ki iki prompt sürümü karşılaştırılabilsin.
Bölüm 12’nin disiplini aynen geçerli: kümeyi ayrılmış küme (held-out) olarak saklayın, ona olabildiğince az bakın ve bir prompt’u asla raporladığınız maddelerin üzerinde ayarlamayın.
Değerlendirme kümesi üzerinde ayarlanmış bir prompt, test kümesi üzerinde ayarlanmış bir model kadar aşırı uyumludur. Üstelik bu hatayı kazara yapmak çok daha kolaydır, çünkü bir prompt’u tekrar tekrar düzeltmek model eğitmek gibi değil, yazı yazmak gibi hissettirir.
17.5.3 3. Bağımsız değil, eşleştirilmiş karşılaştırın
Bölüm 17.4’ün üzerine kurulduğu istatistiksel nokta buydu. Aynı maddelerde çalıştırılan iki prompt eşleştirilmiş bir karşılaştırmadır; dolayısıyla eşleştirmeyi kullanın: ayrıştıkları belgeleri sayın ve o sayıyı test edin.
prompt A right, B wrong 32
prompt B right, A wrong 10
--
McNemar exact p = 0.0009
Güven aralıkları örtüşen iki doğruluk rakamını karşılaştırmak bunu sonuçsuz sayardı. Eşleştirilmiş test ise aynı 150 belgede eşleştirilmemiş karşılaştırmanın göremediği farkı görebiliyor, çünkü iki prompt’un da aynı fikirde olduğu 108 maddeyi atıyor — onlar fark hakkında hiçbir bilgi taşımıyor. (Bu, çifti veriye bakmadan önce seçtiyseniz geçerli; en iyiyle en kötüyü sonradan seçtiyseniz, yukarıda gördüğümüz gibi çoklu karşılaştırma düzeltmesi gerekir.)
17.5.4 4. Dizgiyi değil şablonu sürümleyin
Şablonu yuvalarıyla birlikte, depoda, bir sürümle saklayın. Her çıktıyı hangi sürümün ürettiğini kaydedin. Bir şey gerilediğinde bu hangi prompt’tu sorusunun bir cevabı olmalı; “not defterindeki” ise cevap sayılmaz.
PROMPTS = {
"sentiment/v3": "...", # madde işaretli, etiketler positive/negative
"sentiment/v4": "...", # + açık null durumu
}Bundan iki alışkanlık çıkıyor. Birincisi, birleştirilmiş prompt bir derleme çıktısıdır ve elle düzenlenmemelidir. İkincisi, bir kod değişikliği testleriyle birlikte yayına alındığı gibi, bir prompt değişikliği de değerlendirme farkıyla birlikte yayına alınır.
17.6 Sezgi kontrolleri
Her birini açmadan önce cevaplayın. Altısı da bu bölümün tartışmayla değil ölçümle çözdüğü sorular.
Not1. A modeli değerlendirmenizde B’yi 5 puan yendi. Hangisi daha iyi?
Bilmiyorsunuz, çünkü modeli prompt’tan ayırmadınız. Tek bir model, tek bir görev ve anlamca birebir aynı on iki prompt ile ölçüldüğünde yayılım 14,67 puan çıktı — yorumlamaya çalıştığınız farkın üç katı. Bu gözlenen yayılımın bir kısmı örnekleme gürültüsü (150 yorumda tek başına kabaca 10 puan üretebilir); ama aynı gürültü sizin 5 puanlık farkınızda da var.
İki modeli de bir prompt kümesi üzerinde çalıştırıp dağılımları karşılaştırın. Bu çok pahalıysa, en azından her modeli iki üç prompt’ta çalıştırıp sonuçların yayılımını raporlayın. Tek prompt’lu bir karşılaştırma prompt’lar hakkında bir ifadedir.
Not2. İnceleyiciniz “girdiyi talimatın üstüne taşımak hiçbir şey değiştirmez” diyor. Haklı mı?
Anlamsal olarak evet; ampirik olarak buna güvenemezsiniz. Burada bu değişiklikle puan 4,00 düştü (%79,33 → %75,33; 150 yorumda net altı yorum). Bu çift için eşleştirilmiş test raporlanmadı, dolayısıyla düşüş kanıtlanmış değil; ama işaretini okuyarak kestiremezsiniz, ölçmeniz gerekir.
Prompt’ları test edilebilir bileşenler olarak görmenin bütün gerekçesi budur. Hiçbir inceleyici bunu okuyarak öngöremez, çünkü okunacak bir şey yok — değişiklik anlamı koruyor. Onu yakalayan tek şey değerlendirmeyi çalıştırmak; bu da prompt değişikliklerini bir yazma probleminden bir test problemine dönüştürüyor.
Not3. “Sen bir uzmansın…” işe yarıyor mu?
Bu görevde on iki prompt arasında on birinci oldu: %76,00. Aynı prompt rol ön eki olmadan %79,33 aldı.
Bundan da fazla anlam çıkarmayın — tek bir görev ve tek bir model söz konusu ve 150 yorumda net beş yorumluk bir fark %5 düzeyinde anlamlı olamaz. Mesele rol ön eklerinin kötü olduğu değil. Mesele, promptlamadaki en çok tekrarlanan örüntünün burada kendi baseline’ını geçememesi ve etkinin işaretinin önceden kestirilememesi. Kendi görevinizde ölçün: fazladan bir çalıştırma ve yeterince büyük bir kümede eşleştirilmiş bir test yeter.
Not4. Few-shot örneklerinizin etiketleri yanlış. Bu ne kadar kötü?
Etiketlerin nasıl yanlış olduğuna bağlı. Rastgele gürültü taşıyan etiketler sandığınız kadar zarar vermez; bu da size gösterimlerin ne işe yaradığı hakkında bir şey söylüyor. Min vd. (2022) gösterimlerdeki etiketleri rastgeleleştirdi ve faydanın çoğu korundu, çünkü örneklerin esas ilettiği şey eşleme değil format ve etiket uzayı.
Ama rastgele etiket ile sistematik olarak ters çevrilmiş etiket aynı şey değildir. Görev öğrenme gerçektir ve ölçekle büyür (Pan vd. 2023); yeterince büyük modeller gösterimlerdeki ters eşlemeyi izleyip doğruluğu şansın altına çekebilir (Wei ve arkadaşları, 2023). Yani yanlış etiketleri bildiğiniz anda düzeltin.
Pratik çıkarımlar: örneklerin işe yarayıp yaramadığını bile kontrol etmeden bir hafta boyunca elle örnek derlemeyin. Görevinizin zorluğu formatta değil de eşlemedeyse, gösterimlerin beklenenden az katkı sağlamasına hazır olun.
Sayıyı asıl oynatan şey hangi örnekleri gösterdiğiniz. Liu vd. (2022), girdiye anlamsal olarak yakın gösterimleri erişimle getirmenin, gösterimleri rastgele seçmekten daha iyi sonuç verdiğini buldu. Bu da örnek seçimini bir erişim problemine dönüştürüp Bölüm 19’un araçlarına devrediyor.
Not5. Sıcaklık 0 yeniden üretilebilir mi?
Yerelde, burada, evet — on tekrarda %100 birebir aynı; seed’li ya da seed’siz. Barındırılan bir API’de çoğu zaman değil, çünkü batchleme kayan nokta indirgeme sırasını değiştirir ve isteğiniz batch’i başka kullanıcıların istekleriyle paylaşır.
Varsaymak yerine kontrol edin: aynı prompt, aynı girdi, on kez, yayına alacağınız uç noktada. Çıktı değişiyorsa değerlendirmenizdeki her sayı tekrarlar ve bir aralık ister.
Not6. Bir prompt ne zaman prompt olmayı bırakmalı?
Bir istek yazmak yerine bir şartnamenin bakımını yaptığınızda. Belirtileri şunlar: prompt’un bir sürüm geçmişi var, çıktısı kodla ayrıştırılıyor, ona yapılan bir değişiklik çıktıyı kullanan bir sistemi bozabiliyor ve bir şey çalıştırmadan onu güvenle düzenleyemiyorsunuz.
O noktada prompt, sisteminizin bir bileşenidir ve kodunuzun geri kalanıyla aynı disipline tabidir — depo, sürüm, sözleşme, regresyon testi. Çıktı sözleşmesinin istenmek yerine zorunlu kılındığı yer Bölüm 18’dir.
17.7 Mülakat soruları
Kaynak konusunda — Bölüm 2’deki çekincenin aynısı. Bu sorular, kitabın kullandığı iki güvenilir açık kaynakta tekrar tekrar karşımıza çıkıyor; bunlara bu bölümün ölçümlerinin cevaplanabilir kıldığı sorular da eklendi.
17.7.1 Mekanizmayı anlayıp anlamadığınızı sınayanlar
S: Prompt’a örnek koyduğunuzda gerçekte ne oluyor?
Eğitim anlamında hiçbir şey öğrenilmiyor — hiçbir ağırlık değişmiyor ve çağrıdan sonra hiçbir şey kalmıyor. Örnekler, modelin hangi görevi yapacağına dair seçenekleri daraltıyor. Bu yüzden olup biteni öğrenmeden çok görev çıkarımı olarak tarif etmek daha doğrudur. Sonra öğreticilerle yetinmediğinizi gösteren sonucu verin: Min vd. (2022) gösterim etiketlerini rastgeleleştirdi ve faydanın çoğu korundu; yani örneklerin büyük ölçüde ilettiği şey eşleme değil format ve etiket uzayı.
S: Promptlama neden artık bir numara gibi gelmiyor?
Çünkü arada talimat ayarı geldi. Temel bir model metni devam ettirir, dolayısıyla erken promptlama doğal devamı cevap olan bir ön ek kurmak demekti. Talimat ayarı ve ardından gelen tercih eğitimi (Bölüm 9) modelleri bir talimatı talimat olarak görmeye eğitti. “Model büyüdü” ile “model talimat izlemeye eğitildi”yi ayıramayan adaylar yeteneğin nereden geldiğini düşünmemiştir.
17.7.2 Bir prompt’u gerçekten yayına alıp almadığınızı sınayanlar
S: İki prompt; hangisi daha iyi?
İkisini de aynı dondurulmuş değerlendirme kümesinde çalıştırın ve eşleştirilmiş bir test kullanın — ayrıştıkları maddeleri sayın ve iki doğruluğu değil, o sayıyı test edin. Bu bölümdeki ölçümde güven aralıkları örtüşen iki prompt, McNemar testiyle (düzeltme öncesi) \(p = 0{,}0009\) düzeyinde ayrıştı. Bunun nedeni, eşleştirmenin ikisinin de aynı cevabı verdiği maddeleri — doğru da olsa yanlış da — atmasıdır.
Cevap “ikisini okudum, ikincisi daha net” ise aday bir prompt ölçmemiştir.
S: Raporladığınız doğruluğun ne kadarı prompt?
Gerçekçi cevap şu: çoğu ekip bunu bilmiyor ve ölçmek bir sabahlık iş. Anlamca birebir aynı birkaç prompt yazın ve hepsini çalıştırın. Burada on iki prompt 14,67 puanlık bir aralığa yayıldı ve on ikisi birden maddelerin yalnızca %69,3’ünde anlaştı — yani on maddeden üçünde çıktıyı prompt varyantının seçimi belirledi. Bu, neredeyse hiç raporlanmayan bir hata payıdır ve burada örnekleme aralığından büyük çıktı.
S: Prompt değişikliklerinin üretimi bozmasını nasıl engellersiniz?
Prompt’u sürümlenmiş bir bileşen olarak görerek: şablon depoda, sürüm her çıktıyla kaydedilmiş, dondurulmuş bir değerlendirme kümesi ve her değişiklikle raporlanan bir fark. Sonra incelemenin neden yetmediğini söyleyin — anlamsal olarak boş bir düzenleme burada puanı 4 düşürdü (150 yorumda; anlamlılığı sınanmadı) ve bu işareti okuyarak öngörmek mümkün değildi.
S: Değerlendirme sonuçlarınız değişti ve hiçbir şey dağıtılmadı. Ne oldu?
Her şeyden önce yeniden üretilebilirliği kontrol edin. Aynı prompt, aynı girdi, on tekrar. Burada yerelde sıcaklık 0, 300 çağrıda hiç değişim göstermedi; seed olmadan sıcaklık 0,7’de ise 30 maddenin 29’u değişti. Ayrıca barındırılan uç noktalar sıcaklık 0’da bile sıklıkla belirlenimci değildir, çünkü batchleme kayan nokta indirgeme sırasını değiştirir. Dolayısıyla cevap şu olabilir: hiçbir şey olmadı; değerlendirmenizin hiçbir zaman bir aralığı yoktu.
17.8 2026 alet çantası
Bu bölümdeki her şey aşağıdaki sürümlerle tek bir dizüstü bilgisayarda çalıştı.
| kütüphane | kullanılan sürüm | burada ne işe yarıyor |
|---|---|---|
ollama |
0.24.0 | bu bölümdeki her ölçüm için qwen3.5:9b’yi sunmak |
| Python stdlib | 3.14.5 | deney, prompt’lar üzerinde bir for döngüsü ve bir eşleştirilmiş test; hiçbir çatıya ihtiyaç duymadı |
Bilinmesi yararlı, yukarıda kullanılmadı:
| kütüphane | güncel sürüm | ne zaman kullanılır |
|---|---|---|
promptfoo |
0.122.0 (npm) | prompt A/B testleri ve regresyon süitleri bir yapılandırma dosyası olarak — Bölüm 17.5’in araç hâli ve bunu not defterlerinde yapmayı bırakmanın en hızlı yolu |
dspy |
3.3.1 | prompt dizgisi yazmayı tümüyle bıraktırır: imzayı bildirin, prompt’u bir metriğe göre derlemeyi ona bırakın. Kırılgan bir metni elle ayarlamaya bir hafta harcamanın israf olduğunu kabul ettiğinizde doğru cevap |
instructor / pydantic |
1.15.4 / 2.13.4 | Bölüm 17.3’ün çıktı sözleşmesi bir Python tipi olarak, gelişte doğrulanır |
guidance |
0.3.1 | üretimi bir şablonla ya da gramerle sınırlar — Bölüm 18’in düzeneği, prompt katmanında uygulanmış hâliyle |
jinja2 |
3.1.6 | yuvalı prompt şablonları, dosya olarak sürümlenir. Gösterişsiz ve “bu çıktıyı hangi prompt üretti” problemini doğrudan çözer |
langsmith |
0.11.1 | hat bir hesap tablosunu aştığında izleme ve veri kümesi yönetimi |
pytest |
9.1.1 | mesele şu: bir prompt regresyon süiti düpedüz testlerden ibarettir ve başlamak için LLM’e özgü bir çatıya ihtiyaç duymaz |
dspy, tablodaki yerinin ona kazandırmadığı ikinci bir bakışı hak ediyor. Öncülü doğrudan bu bölümün bulgusu: prompt’un ifadesi puanı öngöremeyeceğiniz miktarlarda oynatıyorsa, prompt’ları elle yazmak el yordamıyla optimizasyondur ve bir metriğe göre çalışan bir derleyici sizi yener. Bedeli, prompt’larınızın okunabilir metinler olmaktan çıkması; bu karşılıksız bir kazanç değil, gerçek bir ödünleşim (trade-off).
17.9 Lab: bir prompt’u bileşene dönüştürün
Gerçekten yaptığınız bir görevi alın — prompt’unu sezgiyle tekrar tekrar düzelttiğiniz bir görev. Lab onu sürümü ve hata payı olan bir şeye dönüştürüyor.
17.9.1 Adım 1 — bir değil iki küme dondurun
Üzerinde deneme yapacağınız bir geliştirme kümesi ve en sonda bir kez açacağınız bir nihai küme etiketleyin. Her biri için elli madde makul bir alt sınırdır. Hâlihazırda bildiğiniz kusurları dâhil edin; kümeleri dekoratif değil işe yarar kılan budur. Hiçbir şeye bakmadan bölün, ikisini de dosyaya yazın ve düzenlemeyi bırakın.
2. adımdan 5. adıma kadar her şey geliştirme kümesinde koşuyor. Geliştirme kümesinde raporladığınız her sayı, seçimlerinizi ona bakarak yaptığınız bir sayıdır. Onu sisteminizin doğruluğu diye bildirmek, bu bölümün baştan sona anlattığı hatanın ta kendisidir — o puanı üreten kümede ayarlanmış bir puanı aktarmış olursunuz.
17.9.2 Adım 2 — her şeyden önce yeniden üretilebilirliği ölçün
Aynı prompt, aynı girdi, on tekrar, yayına alacağınız uç noktada. Cevaplar değişiyorsa aşağıdaki her sayı tekrarlar ve bir aralık ister; bunu kafa karıştırıcı bir haftadan sonra değil şimdi bilmeniz gerekir.
17.9.3 Adım 3 — aynı şeyi söyleyen altı prompt yazın
Altı daha iyi prompt değil — bir meslektaşınızın birebir aynı diyeceği altı tane. Biçimlendirmeyi, etiket yüzey biçimini, ayraçları, girdinin konumunu ve bir rol ön ekini değiştirin. Altısını da çalıştırın.
Elde ettiğiniz yayılım, prompt’unuzun hata payıdır. Not edin; şimdiye kadar yaptığınız her karşılaştırmayı ne kadar ciddiye alacağınızı söyleyen sayı budur.
17.9.4 Adım 4 — kazananı eşleştirilmiş bir testle seçin
Geliştirme kümesinde en iyiyi en kötüyle karşılaştırın, ayrışmalara McNemar uygulayın. Yalnızca iki doğruluğu değil, ayrıştıkları madde sayısını da raporlayın — ve çifti altısını da gördükten sonra seçtiyseniz, yapabileceğiniz \(\binom{6}{2} = 15\) karşılaştırma için düzeltin.
17.9.5 Adım 5 — kazananı şartname olarak yeniden yazın
Çıktı sözleşmesi, açık bir başarısızlık değeri, sona yakın kısıtlar. Geliştirme kümesinde yeniden çalıştırın. Puanın oynayıp oynamadığını ve ayrıştırma (parse) hatalarının sıfıra inip inmediğini raporlayın; ikincisi genellikle daha büyük kazançtır.
17.9.6 Adım 6 — nihai kümeyi bir kez açın
Seçtiğiniz prompt’u hiç dokunmadığınız kümede çalıştırın ve sisteminizin doğruluğu olarak o sayıyı, bir aralıkla birlikte raporlayın. Geliştirme kümesindeki sonuçtan düşük çıkmasını bekleyin. Aradaki fark, yinelemelerinizin size iyimserlik olarak ödettiği bedeldir ve bilinmesi gerekir. Onu gördükten sonra dönüp prompt’u değiştirirseniz kümeyi harcamış olursunuz ve yenisine ihtiyacınız olur.
17.9.7 Adım 7 — sürüm denetimine koyun ve bilerek bozun
Yuvalı şablon bir dosyada, sürüm dizgisi her çıktıyla kaydedilsin. Sonra anlamsal olarak boş bir düzenleme yapın — iki cümlenin yerini değiştirin — ve değerlendirmeyi çalıştırın. Sayı oynarsa, bunun neden bir test problemi olduğunu kendinize göstermiş olursunuz.
17.9.8 Ne teslim edeceksiniz
Altı prompt’luk yayılımı, kazananınız için eşleştirilmiş testi, şartnameye dönüştürmeden önceki ve sonraki sonuçları ve prompt’unuzun hata payının en son inandığınız model karşılaştırması için ne anlama geldiğini tartışan bir paragrafı.
17.10 Alıştırmalar
Kendi kırılganlık sayınız. Anlamca birebir aynı altı prompt, tek görev, tek model. Yayılımı ve altısının da anlaştığı madde oranını raporlayın. Yayılımı, aralarında seçim yaptığınız iki modelin farkıyla karşılaştırın.
Eşleştirilmiş ve eşleştirilmemiş karşılaştırma. Güven aralıkları örtüşen iki prompt alın. Aynı veride eşleştirilmemiş (bağımsız örneklem) bir karşılaştırma ve bir McNemar testi hesaplayın. İkisini de raporlayın ve hangisini bir rapora koyacağınızı ve nedenini söyleyin.
Bu bölümde olmayan \(k\)-shot eğrisi. Görevinizi \(k \in \{0, 1, 2, 4, 8, 16, 32\}\) gösterimde iki kez çalıştırın: bir kez referans etiketlerle, bir kez etiketler karıştırılmış hâlde. İki eğriyi de çizin. Birlikte yükseliyorlarsa gösterimler format iletiyor; referans etiketli eğri ayrılıyorsa eşlemeyi iletiyor — yani Min vd.’ne (2022) karşı Pan vd. (2023), kendi verinizde. Sonra dört gösterimlik sabit bir kümenin sekiz farklı sıralamasını deneyip o yayılımı da raporlayın; Lu vd.’ne (2022) göre iki etkiden büyük olanı bu olabilir.
Rol ön eki, kendi görevinizde. Aynı prompt’u Sen bir uzmansın… ile ve onsuz çalıştırın. Çalıştırmadan önce işareti tahmin edin. İkisini de raporlayın.
Kendi uç noktanızda yeniden üretilebilirlik. Sıcaklık 0’da on tekrar: bir kez barındırılan bir API’de, bir kez de yerel bir modelde. Farklılarsa mekanizmayı bir meslektaşınıza iki cümlede açıklayın.
İstekten şartnameye. İstek olarak yazılmış bir prompt’u alın ve açık bir başarısızlık değeri olan bir sözleşme olarak yeniden yazın. Ayrıştırma hatalarını yeniden yazmadan önce ve sonra sayın. Sonra başarısızlık değerinin doğru cevap olduğu bir girdi bulun ve modelin onu gerçekten döndürdüğünü kontrol edin.
Göremediğiniz regresyon. Üretimdeki bir prompt’a anlamı koruyan bir düzenleme yapın — cümlelerin sırasını değiştirin, madde işaretlerini düz metne çevirin. Değerlendirmenizi çalıştırın. Hiçbir şey oynamadıysa, görevinizin gürbüz olduğuna karar vermeden önce üç düzenleme daha deneyin.
17.11 Daha derine
Buradaki okumaların hepsinden daha değerli bir alıştırma var: prompt’unuzu yalnızca biçimlendirmeyi değiştirerek iki kez yazın ve ikisini de aynı yüz maddede puanlayın. Kendi yayılımınızı gördüğünüzde, sonrasında okuyacağınız her şey size farklı gelecek.
| kaynak | ne olduğu |
|---|---|
| Anthropic prompt mühendisliği rehberi | sağlayıcı belgesi, ama alışılmadık ölçüde somut ve neyin başka durumlara aktarılıp neyin aktarılamadığı konusunda açık sözlü |
| OpenAI Cookbook | çalıştırılabilir tarifler; tam da her birinin sizin görevinizde yardımcı olup olmadığını ölçebildiğiniz için işe yarar |
promptfoo |
aynı değerlendirmeyi prompt varyantları ve modeller genelinde çalıştırır; bu bölümün deneyini rutin kılan araç |
| Hamel Husain — değerlendirme üzerine | ölçümsüz prompt çalışmasının neden tahmin olduğuna dair en iyi uygulamalı yazı |
| Stanford CME 295 | transformer’lar ve LLM’ler; promptlama modelin gerçekte nasıl çalıştığı bağlamına yerleştirilmiş |
| Intro to Large Language Models — Andrej Karpathy | prompt’un neden sisteme gönderilen bir mesaj değil, sistemin bir bileşeni olduğunu açıklayan bir saatlik anlatım |
| konu | kaynak |
|---|---|
| bağlam içi öğrenme, ilk raporlandığı hâliyle | Brown vd. (2020) |
| yalnızca biçimlendirme puanı oynatıyor | Sclar vd. (2024) |
| örnek sırası da öyle | Lu vd. (2022) |
| gösterimlerin gerçekte ne ilettiği | Min vd. (2022) |
| hangi örneklerin gösterileceği | Liu vd. (2022) |
| tek bir cümleden zero-shot akıl yürütme | Kojima vd. (2022) |
| arayüz olarak promptlama, erken düşünülmüş hâli | Reynolds ve McDonell (2021) |
| etiket yanlılığı ve kalibrasyonla giderilmesi | Zhao vd. (2021) |
| tekniklerin tamamını tarayan bir derleme | Schulhoff vd. (2025) |
17.12 Akılda kalması gerekenler
Bağlam içi öğrenme hiçbir parametreyi güncellemez. Hiçbir şey eğitilmez ve çağrıdan sonra hiçbir şey kalmaz. Bu yüzden yaygın durum için öğrenmeden çok görev çıkarımı demek daha doğrudur. Ancak bir çekince var: görev öğrenme de gerçektir ve ölçekle büyür. Min vd. (2022) gösterimlerdeki etiketleri rastgeleleştirdi ve faydanın çoğu korundu; bu da örneklerin esas olarak eşlemeyi değil format ve etiket uzayını ilettiğini söylüyor.
Prompt modelin bir parçasıdır. Yetkin bir okurun aynı talimat diyeceği on iki prompt, tek bir model ve tek bir görevde 14,67 doğruluk puanına yayıldı — %75,33’ten %90,00’a. Bu bir yazma farkı değil; ölçülmesi gereken bir bileşen. Yine de bu gözlenen yayılımın kabaca 10 puanını örnekleme gürültüsü tek başına üretebilir; doğruluktan bağımsız kanıt bir sonraki maddedeki uzlaşmazlık oranı.
Maddelerin %30,7’sinde cevap on iki varyant arasında değişti. On ikisi yorumların yalnızca %69,3’ünde anlaştı. Herhangi iki varyant arasındaki ayrışma oranının ortancası %12, en yükseği %28,7 oldu. Modelinizin çoğu maddede kararlı bir cevabı var; geri kalanını prompt oynatıyor.
Bu yorumlarda yayılım 14,67 puan; onu sorgulamanın yolu eşleştirilmiş çözümleme. En iyiyle en kötü karşılaştırıldığında: örtüşen güven aralıkları, 42 ayrışma, McNemar \(p = 0{,}0009\) — ama o çift veriye baktıktan sonra seçildi, dolayısıyla aktarılacak sayı 66 çiftin tümü için düzeltilmiş olanı: \(p = 0{,}062\). Düşündürücü; düzeltmeden sonra %5 düzeyinde anlamlı değil. Eşleştirme, eşleştirilmemiş karşılaştırmanın çöpe attığı bilgiyi kullanıyor; düzeltme de sonucun ne kadarına inanacağınızı söylüyor.
Yani tek prompt’lu bir model karşılaştırması güvenilmezdir. Gözlenen prompt yayılımı 14,67 puansa, her birinde tek prompt’la ölçülmüş “A modeli B’yi 5 puan yendi” prompt’lar hakkında bir ifadedir. Bir prompt kümesi üzerinde karşılaştırıp dağılımı raporlayın.
Yaygın kanının öne çıkardığı değişken ayırt edilemeyecek kadar küçük çıktı, göz ardı edilen değişkenler ise bu örneklemde daha büyük. Bölüm 12 aynı modelde İngilizce ile Türkçe talimat arasındaki farkı +0,54 (%95 üst sınır +2,25; \(p = 0{,}54\)) olarak ölçtü. Burada ise madde işaretli biçimlendirme 150 yorumda sekiz puanlık fark yarattı. Dolaşımdaki en çok tekrarlanan örüntü olan rol ön eki on iki prompt arasında on birinci oldu ve kendi baseline’ının 3,33 puan gerisinde kaldı — tek başına anlamlı olamayacak kadar küçük bir fark, ama işareti önceden kestirilemedi.
Hangi prompt’un daha iyi olduğunu okuyarak anlayamazsınız. Prompt değişikliklerini bir test problemi olarak görmenin bütün gerekçesi budur: anlamsal olarak boş bir düzenleme puanı 4,00 düşürdü (anlamlılığı sınanmadı) ve işaretini okuyarak öngörmek mümkün değildi.
Bir şey ölçmeden önce yeniden üretilebilirliği kontrol edin. Yerelde sıcaklık 0, seed’li ya da seed’siz, her tekrarda aynı çıktıyı verdi; sabit seed’li sıcaklık 0,7 de öyle — ama ikisi de yokken 30 maddenin 29’u on çalıştırmada değişti. Barındırılan API’ler sıcaklık 0’da bile sıklıkla belirlenimci değildir, çünkü batchleme kayan nokta indirgeme sırasını değiştirir. On tekrarlı kontrolü yayına alacağınız uç noktada çalıştırın.
Prompt’ları şartname olarak yazın. Çıktı sözleşmesini adlandırın, başarısızlık değerini belirleyin ve kısıtları etkili oldukları yere koyun. Sonra sözleşmeyi doğrulayın — kontrol etmediğiniz bir şema bir yorum satırıdır ve Bölüm 13.8 bir şemanın biçimi garanti ettiğini, içeriğin doğru olduğunu ise asla garanti etmediğini zaten göstermişti.