<

Prompt Mühendisliği: Yapay Zekadan Doğru Cevap Almanın Sanatı

Aynı modele aynı soruyu iki farklı şekilde sorup birinden işe yarar, diğerinden çöp cevap alabilirsiniz. Buna ilk kez ciddi anlamda bir lojistik müşterimizin projesinde çarpıldık. Sürücü raporlarını otomatik sınıflandıran bir akış kuruyorduk; ilk denemede doğruluk yüzde 70'te kaldı. Modeli değiştirmedik, parametre oynamadık, tek satır kod eklemedik — sadece talimatı yeniden yazdık. Doğruluk yüzde 93'e çıktı.

O gün ekipçe şunu kabul ettik: "prompt" denen şey, yani modele verdiğiniz talimat, bu işin şakaya gelmeyen kısmı. Son aylarda yüzlerce deneme yaptık; bu yazıda işe yarayanları anlatacağım.

Baştan bir çerçeve çizeyim: burada anlatılanlar belirli bir ürüne bağlı değil — ChatGPT'de de Claude'da da benzer şekilde çalışıyor. Ve şunu görmek önemli: talimat iyileştirme, elinizdeki en ucuz optimizasyon kolu. Modeli özel veriyle yeniden eğitmek pahalı ve meşakkatli bir iş; prompt'u iyileştirmek ise sadece düşünme ve test disiplini istiyor. Pahalı yollara sapmadan önce bu ucuz kolun sonuna kadar itilmiş olması gerekir — çoğu projede zaten yetiyor.

Yüzde 70'ten 93'e giden yol

Önce o lojistik hikâyesini biraz açayım, çünkü dersler orada saklı. İlk prompt'umuz kabaca şöyleydi: "Bu sürücü raporunu şu kategorilerden birine ata." Model çoğu zaman doğru atıyordu ama kararsız kaldığı raporlarda rastgele bir kategori seçiyordu — üstelik gayet emin bir tonda. Yüzde 30'luk hata büyük ölçüde bu "emin cahillik"ten geliyordu.

Üç değişiklik yaptık. Bir: modele rol verdik — "Sen bir filo operasyon uzmanısın, sürücü raporlarını değerlendiriyorsun" diye başladık. İki: her kategoriden gerçek (anonimleştirilmiş) rapor örnekleri ekledik, toplam üç tane. Üç: şu cümleyi ekledik — "Emin değilsen kategori uydurma, BELİRSİZ yaz."

Üçüncü değişiklik tek başına en büyük sıçramayı yaptı. Model artık kararsız kaldığı raporları BELİRSİZ olarak işaretliyor, o raporlar insana düşüyor. Yanlış sınıflandırılmış rapor sayısı çakıldı. (BELİRSİZ oranı da yüzde 8 civarında seyrediyor; yani otomasyonun büyük kısmı korundu.)

Yüzlerce denemeden süzülen beş kural

Farklı projelerde tekrar tekrar doğrulanan kalıpları toparlarsak:

  • Rol verin. "Sen deneyimli bir veritabanı yöneticisisin" ile başlayan istek, bağlamsız isteğe göre tutarlı biçimde daha isabetli.
  • Örnek gösterin. İstediğiniz çıktıdan 2-3 örnek (literatürde "few-shot" deniyor), sayfalarca tariften daha etkili.
  • Adım adım düşündürün. Karmaşık problemde "önce muhakemeni yaz, sonra cevabını ver" demek hata oranını gözle görülür düşürüyor.
  • Bilmiyorum demeyi öğretin. "Emin değilsen belirt" talimatı, halüsinasyona karşı alabileceğiniz en ucuz önlem.
  • Çıktıyı yapılandırın. JSON veya tablo isteyin; serbest metni sonradan ayrıştırmak her zaman daha pahalıya patlar.

Bu beşi ezber değil, başlangıç noktası. Her projede bir kısmı kritik çıkıyor, bir kısmı fark yaratmıyor — hangisinin kritik olduğunu ancak deneyerek buluyorsunuz.

Dil konusunda bir saha notu: modeller İngilizce talimatla, Türkçe talimata göre genellikle daha isabetli çalışıyor — eğitim verilerinin dağılımı düşünülünce şaşırtıcı değil. Bizim ara formülümüz, talimat iskeletini İngilizce kurup örnekleri ve çıktı dilini Türkçe tutmak. Kulağa tuhaf geliyor ama ölçümlerde fark ediyor. (Müşteriye giden çıktının Türkçe kalitesini ayrıca test etmeyi unutmayın; talimat dili ile çıktı dili ayrı konular.)

Prompt yazmak neden kod yazmaya benziyor

Ekipte en sevdiğim benzetme bu. İyi bir prompt, iyi bir fonksiyon gibi: net girdi tanımı, net çıktı tanımı, sınır koşulları ve test edilmiş davranış istiyor. "Şöyle bir şey yap işte" diye yazılan prompt, "şöyle bir şey yap işte" diye yazılan kod kadar güvenilir.

Bunu ciddiye alınca pratik sonuçları da geliyor. Biz artık önemli prompt'ları versiyon kontrolünde tutuyoruz — evet, Git'te, kodun yanında. Değişiklik yapınca eski test setiyle karşılaştırıyoruz: 50-100 gerçek örnekten oluşan bir değerlendirme seti, hangi prompt'un gerçekten daha iyi olduğunu tartışmadan söylüyor. "Bence bu daha iyi çalışıyor" cümlesi ekipte yasak; rakam getirmeyen prompt değişikliği kabul edilmiyor.

Bir de sürüm meselesi var. Model sağlayıcıları modelleri güncelliyor ve davranış değişebiliyor. Test setiniz varsa güncellemeden sonra beş dakikada "bozulmuş mu?" sorusunun cevabını alırsınız; yoksa bozulmayı müşteriniz fark eder.

Ekip pratiği tarafında bir şey daha oturttuk: ortak prompt kütüphanesi. İşe yarayan talimat kalıpları — özetleme, sınıflandırma, veri çıkarma, test verisi üretme — açıklamalarıyla birlikte tek bir depoda duruyor. Yeni bir akış kuran arkadaş sıfırdan başlamıyor, kütüphaneden alıp uyarlıyor. Küçük bir düzen ama tekerleği yeniden icat etme süresini ciddi kısalttı; aynı hatayı iki farklı projede iki kez yapmıyoruz artık.

Herkesin düştüğü üç tuzak

Birincisi: dev prompt hastalığı. Talimat uzadıkça iyileşir sanılıyor; tersine, iki sayfalık prompt'larda model talimatın ortasını unutmaya başlıyor. Uzun tarif yerine kısa kural artı iyi örnek her seferinde kazanıyor.

İkincisi: tek denemeyle karar vermek. Modeller olasılıksal çalışır; aynı prompt aynı girdiyle iki farklı cevap verebilir. Bir prompt'u beğenmeden veya çöpe atmadan önce en az on-yirmi farklı girdiyle deneyin.

Üçüncüsü: prompt'la her şeyi çözmeye çalışmak. Bazen sorun talimatın değil, görevin kendisinde. Modelin bugünkü haliyle yapamayacağı bir işi hangi kelimelerle isterseniz isteyin yapamaz. Yüz denemede yüzde 60'ı geçemiyorsanız, prompt'u değil mimariyi konuşmanın vakti gelmiştir — belki görevi ikiye bölmek, belki araya klasik kod koymak gerekiyordur.

Bu üçüncü tuzağın güzel bir örneğini yaşadık: bir müşteri, serbest metinden fiyat hesaplaması yapılmasını istiyordu. Günlerce prompt cilaladık, olmadı — model aritmetikte güvenilmezdi. Çözüm mimarideydi: model metinden sadece parametreleri çıkarıyor (ürün, adet, tarife), hesabı bildiğimiz eski usül kod yapıyor. Doğruluk yüzde yüz, çünkü matematiği artık model yapmıyor. Modelin iyi olduğu işi modele, kodun iyi olduğu işi koda bırakmak — bir cümlelik ders ama içselleştirmesi zaman aldı.

Bu beceri kimin işi

"Prompt mühendisliği" tabirini biraz iddialı bulanlar var; anlıyorum, sonuçta kimse dört yıl üniversite okumuyor bunun için. Ama şunu sahada net görüyoruz: aynı model, iyi talimat yazan ekibin elinde para kazandırıyor, kötü talimat yazan ekibin elinde hayal kırıklığı üretiyor. Yüzde 70 ile 93 arasındaki fark, müşterimiz için "kullanılamaz" ile "vazgeçilmez" arasındaki farktı.

Kendi ekibinize bu pratikleri kazandırmak veya mevcut bir yapay zeka akışınızın doğruluğunu yukarı çekmek isterseniz bir yazın, neler denediğimizi ayrıntısıyla anlatalım. Bu alan o kadar yeni ki, herkes herkesten öğreniyor — biz de öğrendiklerimizi paylaşmaktan çekinmiyoruz.

📅 Yayınlanma:  ·  Yakup Zengin