Prompt mühendisliği aslında nedir?

Bir yapay zeka modeline yazdığınız her şeye "istem" (prompt) denir ve aldığınız cevabın kalitesi büyük ölçüde o isteme bağlıdır. Adı kulağa teknik gelse de, prompt mühendisliği gizli bir programlama dili değildir. Özünde tek bir şeydir: ne istediğinizi, yapay zekanın anlayabileceği biçimde net, eksiksiz ve düzenli bir şekilde anlatabilme becerisi. İyi haber, bunun kod yazmayı gerektirmemesi; isteyen herkes öğrenebilir.

Şöyle bir benzetme işe yarıyor: modeli, son derece bilgili ama sizin kafanızın içini hiç göremeyen, işe yeni başlamış çok yetenekli bir stajyer gibi düşünün. Bu stajyere yalnızca "şunu hallet" derseniz, makul ama büyük ihtimalle yanlış bir tahmin yürütür. Oysa ona kim olduğunuzu, neyi neden istediğinizi, sonucun nasıl görünmesi gerektiğini söyler ve bir de örnek verirseniz, çoğu zaman tam aklınızdakini getirir. Model değişmedi; değişen tek şey, ona verdiğiniz brifingdi.

Bir noktanın altını çizelim: modern modeller giderek daha "affedici" hale geliyor; yani dağınık bir istemi bile bir şekilde anlamaya çalışıyorlar. Ama affedici olmak, kusursuz olmak değildir. Cevabın doğru, ilgili ve kullanılabilir olmasını istiyorsanız, isteminizi şansa bırakmak yerine bilinçli kurmak hâlâ elinizdeki en hızlı kaldıraçtır. Bu yazıda o kaldıracı nasıl kullanacağınızı, her teknik için bir öncesi/sonrası örneğiyle adım adım göreceğiz.

Net talimat: belirsizlik girer, belirsizlik çıkar

İyi bir istemin birinci kuralı en sıkıcı ama en güçlü olanıdır: ne istediğinizi açıkça söyleyin. Yapay zeka zihninizi okuyamaz; yalnızca sözcüklerinizi okur. "Kısa", "profesyonel", "birkaç madde" gibi ifadeler size net görünür ama modele yoruma açık birer boşluk olarak ulaşır. O boşlukları siz doldurmazsanız, model sizin yerinize doldurur; ve her zaman umduğunuz gibi doldurmaz.

Somut bir örnekle gidelim. ÖNCESİ: "E-postamı düzeltir misin?" Bu istem neyin düzeltileceğini (yazım mı, ton mu, uzunluk mu?), kime yazıldığını ve ne kadar müdahale istediğinizi söylemez. SONRASI: "Aşağıdaki e-postayı bir müşteriye göndereceğim. Yazım ve dil bilgisi hatalarını düzelt, tonu kibar ama net tut, 120 kelimeyi geçme. Anlamı değiştirme. Yalnızca düzeltilmiş metni döndür." İkinci istem modele başarının ölçütlerini verdiği için, sonuç da tahmin edilebilir biçimde daha iyi gelir.

Pratik bir alışkanlık olarak, isteminize üç şeyi koymaya çalışın: görev (ne yapsın), kısıt (neyi yapmasın ya da hangi sınırlar içinde kalsın) ve çıktı biçimi (sonuç nasıl görünsün; madde listesi mi, tablo mu, tek paragraf mı?). Bu üçlü tek başına cevaplarınızın kalitesini gözle görülür biçimde yükseltir.

Olumsuz talimatlar konusunda küçük bir uyarı: "şunu yapma" demek bazen "şunu yap" demekten daha zayıf çalışır, çünkü modelin dikkatini tam da istemediğiniz şeye çekersiniz. Mümkünse olumsuzu olumluya çevirin. "Teknik jargon kullanma" demek yerine "lise öğrencisinin anlayacağı gündelik bir dille yaz" demek genellikle daha temiz bir sonuç verir.

Bağlam: modele bildiklerinizi anlatın

Net talimattan sonra en büyük kaldıraç bağlamdır. Bağlam, modelin sizin durumunuza özgü iyi bir cevap üretebilmesi için ihtiyaç duyduğu arka plan bilgisidir: kim olduğunuz, kimin için yazdığınız, hangi sektörde çalıştığınız, elinizdeki ham malzeme ve daha önce neyi denediğiniz. Model internetin büyük bir kısmını okumuş olabilir, ama sizin özel durumunuzu yalnızca siz söylerseniz bilebilir.

Örneğe bakalım. ÖNCESİ: "Yeni ürünümüz için bir tanıtım metni yaz." Model bir şeyler yazar, ama havada yazar; ürünü, kitleyi ve tonu tahmin etmek zorunda kalır. SONRASI: "Küçük işletmelere yönelik bir muhasebe yazılımı için tanıtım metni yaz. Hedef kitle, muhasebeden anlamayan esnaf ve küçük işletme sahipleri. En büyük vaadimiz, fatura ve KDV takibini otomatikleştirip onlara haftada birkaç saat kazandırması. Ton: güven veren, sade, abartısız. 3 kısa paragraf." İkinci versiyon modele gerçek hammaddeyi verdiği için çok daha kullanışlı çıkar.

Bağlam verirken bir dengeyi gözetmek gerekir. Çok az bağlam modeli tahmine zorlar; gereğinden fazla bağlam ise asıl talimatı gürültüye boğup modelin önemli ayrıntıyı kaçırmasına yol açabilir. Pratik kural: göreve gerçekten yardımcı olan bilgiyi verin, ilgisizi eleyin. Uzun bir metni özetletecekseniz metnin tamamını verin; ama hayat hikayenizi anlatmanıza gerek yok.

Bu fikir, EcoFluxion'da geliştirdiğimiz hukuk asistanı İçtiHub'ın temel mantığıyla da örtüşür. Orada modele doğru bağlamı otomatik sağlamak için RAG (Retrieval-Augmented Generation, yani "erişimle beslenmiş üretim") adlı bir yöntem kullanırız: model cevap vermeden önce ilgili gerçek hukuk metinlerini getirip önüne koyarız. Yani sizin elle yaptığınız "bağlam ekleme" işini sistem arka planda otomatikleştirir. İlke aynıdır: iyi bağlam, iyi cevap demektir.

Örnek göstermek: az-örnekli (few-shot) yaklaşım

Bazen ne istediğinizi anlatmaktansa göstermek çok daha etkilidir. Yapay zeka, kendisine verdiğiniz birkaç örnekteki örüntüyü yakalamakta şaşırtıcı derecede iyidir. Bu yönteme "few-shot" (az-örnekli) istem denir: modele birkaç giriş-çıkış çifti gösterirsiniz, o da aynı kalıbı yeni girdiye uygular. Hiç örnek vermeden yalnızca talimatla istemeye ise "zero-shot" (sıfır-örnekli) denir.

Somut bir durum. Diyelim ki ürün yorumlarını "olumlu / olumsuz / nötr" diye etiketlemek istiyorsunuz ve "nötr"ün sizin için ne anlama geldiği kendine özgü. ÖNCESİ: "Bu yorumun duygusunu söyle: 'Kargo biraz geç geldi ama ürün gayet iyi.'" Model bir tahmin yapar, ama sizin ölçeğinize göre değil. SONRASI: önce üç örnek verirsiniz —"'Harika, bayıldım' → olumlu", "'Berbat, paramı geri istiyorum' → olumsuz", "'İdare eder, beklediğim gibiydi' → nötr"— sonra asıl yorumu sorarsınız. Artık model sizin "nötr" tanımınızı görmüştür ve etiketleri tam istediğiniz çerçevede üretir.

Few-shot özellikle şu durumlarda parlar: belirli bir biçim istiyorsanız (her cevabın aynı yapıda olması), kendinize özgü bir tarzı ya da tonu yakalatmak istiyorsanız, ya da görev tarif etmesi zor ama göstermesi kolaysa. İyi seçilmiş iki üç örnek, çoğu zaman uzun bir talimat paragrafından daha net iş görür.

Birkaç pratik not: örnekleriniz çeşitli ve temsil edici olsun, çünkü model örneklerdeki gizli örüntüyü de kopyalar; hepsi kısa cümlelerden oluşuyorsa, model uzun girdilerde şaşırabilir. Ayrıca örneklerinizin doğru olduğundan emin olun; yanlış bir örnek, modele yanlışı öğretir. Az ama nitelikli örnek, çok ama özensiz örnekten daima iyidir.

Rol ve sistem istemleri: modele bir şapka giydirin

Modele bir rol vermek; cevabın tonunu, derinliğini ve odağını şaşırtıcı derecede etkiler. "Sen deneyimli bir mali müşavirsin" ya da "Acemilere anlatan sabırlı bir öğretmen gibi davran" demek, modelin hangi bilgi havuzuna ve hangi anlatım tarzına yöneleceğine karar vermesine yardım eder. Bu sihir değil; modelin geniş yeteneklerinden hangi dilimini öne çıkaracağını söylemenin pratik bir yoludur.

Örnek. ÖNCESİ: "Enflasyon nedir?" Genel, ansiklopedik bir cevap alırsınız. SONRASI: "Ekonomi okumamış meraklı bir lise öğrencisine, günlük hayattan bir örnekle enflasyonun ne olduğunu anlatan sabırlı bir öğretmen gibi cevap ver. Tek paragraf, sade dil." İkinci cevap aynı bilgiyi içerir, ama tam ihtiyacınız olan seviyede ve tonda gelir. Rol, içeriği değil, içeriğin sunumunu hizalar.

Burada "sistem istemi" (system prompt) kavramına değmek gerek. Birçok yapay zeka aracında iki tür talimat vardır: her mesajda yazdığınız normal istem ve sohbetin tamamı boyunca geçerli kalan, kalıcı bir çerçeve niteliğindeki sistem istemi. Sistem istemi modele "sen kimsin ve genel kuralların neler?" sorusunun cevabını verir; tek tek mesajlar ise o çerçevenin içine düşen görevlerdir. Bir uygulama geliştiriyorsanız, davranışın değişmeyen kısmını sistem istemine koymak iyi bir alışkanlıktır.

Pratik tavsiye: rolü göreve uygun ve dürüst tutun. Modele "sen bir doktorsun" demek onu gerçek bir doktor yapmaz ve verdiği tıbbi tavsiyeyi güvenilir kılmaz; yalnızca anlatım tarzını etkiler. Rolü, çıktının biçimini ve seviyesini ayarlamak için kullanın; bir uzmanlık garantisi olarak değil. Kritik kararlarda cevabı yine bir insanın doğrulaması gerekir.

Adım adım düşünmek: düşünce zinciri (chain-of-thought)

Bir mantık yürütme, matematik ya da çok adımlı bir problemde modelden doğrudan cevap istediğinizde, bazen hızlı ama yanlış bir tahminle karşılaşırsınız; tıpkı işlemi atlayıp sonucu pat diye söyleyen bir öğrenci gibi. Bunu düzeltmenin basit ve güçlü bir yolu var: modele acele etmemesini, adım adım düşünmesini söylemek. Bu tekniğe "düşünce zinciri" (chain-of-thought) denir.

Etkisi şaşırtıcı derecede somuttur. ÖNCESİ: "Bir kalem 7 lira, bir defter kalemin 3 katı. 2 kalem ve 1 defter kaç lira?" Modelden doğrudan sayı isterseniz bazen yanlış sonuca atlar. SONRASI: aynı soruya "Adım adım düşün, önce her kalemi tek tek hesapla, en sonda toplamı yaz" eklersiniz. Model önce defterin 21 lira olduğunu, sonra 2 kalemin 14 lira ettiğini, toplamda 35 lira yaptığını ayrı ayrı yazar. Düşünmeyi görünür kılmak, hata olasılığını ciddi biçimde azaltır.

Bu yaklaşımın iki ek faydası var. Birincisi denetlenebilirlik: modelin akıl yürütmesini görebildiğiniz için nerede yanıldığını fark edip düzeltebilirsiniz; kapalı bir kutudan çıkan tek bir sayıya bakarak bunu yapamazsınız. İkincisi, karmaşık bir görevi parçalara bölmek modelin yükünü hafifletir; tıpkı büyük bir problemi küçük adımlara bölmenin bir insana yardımcı olması gibi.

Modern modellerin bir kısmında bu akıl yürütme artık dahili olarak yapılıyor; yani siz istemeseniz de model arka planda adım adım düşünüp size yalnızca sonucu veriyor ("akıl yürüten" modeller bunu standart hale getirdi). Yine de, özellikle karmaşık veya kritik görevlerde, "adım adım düşün" demek hem doğruluğu artırır hem de cevabı denetlenebilir kılar. Basit, tek adımlı sorularda ise buna gerek yoktur; yalnızca gereksiz uzunluk yaratır.

Sık yapılan hatalar ve nasıl kaçınılır

En sık görülen hata, tek bir istemin içine birbiriyle ilgisiz birçok görevi tıkıştırmaktır. "Bu metni özetle, sonra İngilizceye çevir, bir başlık öner, bir de sosyal medya paylaşımı yaz" gibi bir istemde model genellikle bazı parçaları savsaklar. Çözüm, büyük görevi küçük ve odaklı adımlara bölmektir: önce özet, sonra çeviri, sonra başlık. Her adımda kalite belirgin biçimde artar.

İkinci sık hata, belirsiz nicelik ve biçim ifadeleridir. "Birkaç fikir ver", "kısa tut", "detaylı yaz" gibi ifadeler kişiden kişiye değişir. Bunun yerine sayı ve biçim verin: "5 fikir, her biri tek cümle", "en fazla 100 kelime", "madde madde, her madde bir cümle". Ölçülebilir bir hedef, hem size hem modele net bir başarı tanımı sunar.

Üçüncü ve hukuki/teknik konularda en tehlikeli hata, modelin uydurduğu bilgiye —yani "halüsinasyon"a— körü körüne güvenmektir. Yapay zeka, emin olmadığı durumlarda bile kendinden emin bir tonla yanlış bir tarih, sahte bir kaynak ya da var olmayan bir alıntı üretebilir. Korunmanın yolu: kritik bilgileri (sayılar, isimler, tarihler, kaynaklar) bağımsız olarak doğrulamak ve modelden mümkün olduğunda dayanağını göstermesini istemek. İçtiHub'ı tam da bu yüzden, cevaplarını uydurmak yerine gerçek hukuk metinlerine bağlayan ve kaynağına kadar izlenebilir kılan bir mimari üzerine kuruyoruz.

Dördüncü hata daha incedir: ilk cevabı son cevap sanmak. Yapay zekayla çalışmak tek atışlık bir iş değil, bir diyalogdur. Çoğu zaman ilk çıktı yüzde yetmiş iyidir; geri kalan yüzde otuz, birkaç düzeltici talimatla gelir. Bu da bizi son ilkeye, yani yinelemeye getiriyor.

Yineleme: iyi istem bulunmaz, geliştirilir

Deneyimli kullanıcıları acemilerden ayıran en büyük fark, mükemmel istemi ilk seferde yazmaları değildir; kötü bir ilk cevabı atıp pes etmek yerine, isteklerini düzelterek cevabı adım adım iyileştirmeleridir. Prompt mühendisliği bir keşif değil, bir döngüdür: iste, cevaba bak, neyin eksik olduğunu fark et, istemini düzelt, yeniden dene.

Bu döngüyü verimli kılmanın pratik yolu, düzeltmelerinizi belirli yapmaktır. "Bu olmadı, tekrar dene" demek yerine, neyin neden olmadığını söyleyin: "Çok resmî oldu, daha samimi bir dille yaz", "İkinci madde konuyla ilgisiz, onu çıkar", "Örnekler soyut kaldı, günlük hayattan somut örnekler ekle." Model hem son cevabını hem sizin geri bildiriminizi gördüğü için, hedefe her turda biraz daha yaklaşır.

Zamanla, sık yaptığınız işler için işe yarayan istem kalıplarını biriktirmeye başlarsınız; kendinize ait küçük bir "istem kütüphanesi" gibi. Belirli bir e-posta türünü yazdıran, belirli bir formatta özet çıkaran ya da metni belirli bir tonda düzelten kalıplarınız olur. Bir kez işe yarayan bir kalıbı bulduğunuzda kaydedin ve yeniden kullanın; her seferinde sıfırdan başlamak zorunda değilsiniz.

Sonuç olarak prompt mühendisliği gizemli bir uzmanlık değil, öğrenilebilir bir iletişim becerisidir. Bu yazıdaki ilkeler —net talimat, yeterli bağlam, örnek gösterme, rol/sistem istemleri, adım adım düşünme ve yineleme— birlikte kullanıldığında, aynı modelden çok daha iyi sonuçlar almanızı sağlar. EcoFluxion'da yapay zeka ürünleri geliştirirken her gün bu ilkelerin üzerine inşa ediyoruz; ama güzel yanı, bunları kullanmak için bir yazılım şirketi olmanıza gerek olmaması. Bir sonraki istemi yazarken bunlardan yalnızca birini deneyin; farkı hemen göreceksiniz.