Sistem Prompt'unu Yarıya İndirmenin 7 Tekniği: Pratik, Test Edilmiş, Kalite-Korumalı
Önceki dersin hatalarını ortadan kaldırdıktan sonra: prompt'unu **kalite kaybetmeden** ek %50 küçültmek mümkün. 7 ileri tekniği gerçek prompt before/after örnekleriyle gösteriyoruz.
Şükrü Yusuf KAYA
18 dakikalık okuma
Orta🎯 Hedef: aynı davranış, yarı token
Bu derste 7 teknik göreceğiz. Her birinin gerçek before/after ölçümü var. Sonunda kendi sistem prompt'unu nasıl yarıya indireceğini bileceksin.
Teknik 1 — Instruction Prioritization#
Bir prompt'ta 20 talimat varsa, 5 tanesi gerçekten kritik olur. Diğerleri "olabilse iyi olur"dur. Önceliklendirme yap, kritik olmayanları at.
Before (487 token)#
Sen müşteri hizmetleri asistanısın. Görevlerin: 1. Müşteriye nazikçe cevap ver 2. Onların sorununu anlamaya çalış 3. Kibarca seslen 4. Cevabı Türkçe ver 5. Eğer ürün hakkında soruyorsa, ürün katalogunu kullan 6. Eğer iade hakkında soruyorsa, iade politikasını söyle 7. Eğer kargo hakkındaysa, kargo süresini söyle 8. Müşteriden teşekkür et 9. Empatik ol 10. Anlayışlı ol 11. ...
After (108 token)#
Sen müşteri hizmetleri asistanısın. Kritik talimatlar: 1. Cevabı Türkçe ver 2. Kısa ve net ol (max 3 cümle) 3. Emin değilsen "İnsan temsilciye aktarayım mı?" sor Bağlam: ürün katalogu + iade/kargo politikası (cache'li)
Modelin kendisi "kibar" ve "anlayışlı" davranır default'ta. Talimat kritik kuralları kapsasın yeter.
Teknik 2 — Talimatları Örneklerle Değiştir#
3 cümlelik talimatı 1 örnekle anlatmak mümkün.
Before#
Bir kullanıcıya cevap verirken: önce sorunu kabullen, sonra çözüm önerisi sun, sonunda ek yardım gerekiyorsa belirtsin. Cevabını her zaman 2-3 cümleyle sınırla. Markdown formatı kullanma.
After#
Örnek cevap formatı: "Anlıyorum, kargo gecikmesi sinir bozucu. Sipariş #12345 için yeni teslimat tarihi 5 Mayıs. Başka bir konu varsa söyle."
Tek örnek, dört talimatın yaptığı işi yapıyor. Few-shot is better than instructions — Modül 5.3'te detaylı.
Teknik 3 — Semantic Compression#
Aynı anlam, daha kısa cümle. Genelde uzun ifadeleri kısa karşılıklarıyla değiştirme.
Substitution table#
| Uzun | Kısa |
|---|---|
| "tarafından sağlanan" | "verilen" |
| "gerçekleştirilmesi gereken" | "yapılacak" |
| "sebebi ile" | "için" |
| "yer almakta olan" | "olan" |
| "bunun yanında" | "ayrıca" |
| "bu nedenle" | "bu yüzden" |
| "ek olarak" | "+" |
| "lütfen şunu yapın" | "yap" |
| "olarak adlandırılan" | "olan" |
| "doğrultusunda" | "için" |
Sistem prompt'u yazarken bu listeyi yanında bulundur. Otomatik %10-15 token tasarrufu.
Teknik 4 — Role'ü İsimle Belirt#
Sen son derece uzman bir hukuki danışmansın. 20 yıllık deneyimin var. Türkiye hukuk sisteminde geniş bilgi sahibisin. ...
vs
Rol: Türk hukuk uzmanı.
İkincisi modele aynı persona'yı kuruyor. Modeller "role" konseptini biliyor — kısa anlatım yeter.
Teknik 5 — Yapısal Kısaltmalar#
INPUT: ... TASK: ... CONSTRAINTS: - Türkçe - max 3 cümle OUTPUT: ...
vs
Bir kullanıcıdan input alacaksın, görevin müşteri sorusunu Türkçe maksimum üç cümlelik bir cevap ile yanıtlamak ve...
Yapısal "INPUT/TASK/OUTPUT" pattern'i tüm modeller anlar. Daha az token + daha hızlı parse.
Teknik 6 — Sistem Prompt'unu İngilizce Yaz#
Modül 1.3'te işledik. Tekrar:
# Türkçe sistem prompt (1500 token) system_tr = "Sen profesyonel bir müşteri hizmetleri asistanısın..." # İngilizce + Türkçe output (900 token, -%40) system_en = "You are a customer service assistant. Always respond in Turkish. ..."
Tasarruf yaklaşık %40, modelin Türkçe cevap kalitesi aynı. Modül 1.3'te tüm detaylar.
Teknik 7 — Referans Verme#
Statik bilgi (FAQ, ürün katalog) sistem prompt'a ekstra eklenmek yerine bir database/file'da tut, prompt referans versin.
Before#
İade politikamız: 14 gün içinde, ürün açılmamışsa, fatura ile. Kargo süremiz: 1-3 iş günü. Bedava kargo 250 TL üstü siparişlerde. Ödeme yöntemlerimiz: kredi kartı, banka havalesi, kapıda ödeme. Müşteri hizmetleri: 0850-XXX-XXXX, hafta içi 09-18. ... [3000 token statik bilgi]
After#
İade/kargo/ödeme bilgisi gerekiyorsa `lookup_policy(topic)` tool'unu çağır.
Sadece gerektiğinde lookup yap. %95 isteğin politika bilgisine ihtiyacı yok.
Tasarruf: 2.900 token / istek. Aylık 100K istek = 290M token = $870/ay.
Komple Örnek — 1.500 Token'dan 450 Token'a#
Başlangıç prompt'u#
Sen son derece nazik, profesyonel ve yardımsever bir müşteri hizmetleri asistanısın. Görevin Türkiye'deki e-ticaret platformumuzun müşterilerine Türkçe olarak destek olmaktır. Müşterilerimiz çeşitli konularda sorular sorabilirler, örneğin: 1. Ürün soruları (özellikleri, kullanımı, stoklarımız) 2. Sipariş takibi (sipariş durumu, kargo bilgileri) 3. İade ve değişim talepleri (politikamız, prosedürler) 4. Ödeme ile ilgili sorunlar (kart sorunları, taksit seçenekleri) 5. Hesap problemleri (şifre, üyelik, kişisel bilgi güncelleme) Müşterilere her zaman kibarca yaklaş, onların durumunu anlamaya çalış, empatik ol. Cevaplarını her zaman Türkçe yaz. Hiçbir koşulda diğer dillerde cevap verme. [... 1.500 token toplam]
Optimize edilmiş#
Rol: Türk e-ticaret müşteri destek asistanı. Kurallar: 1. Türkçe cevap ver, max 3 cümle. 2. Spesifik bilgi için: lookup_policy(topic), order_status(id), product_info(sku). 3. Çözemiyorsan "İnsan temsilciye aktarayım mı?" diye sor. Örnek: "Anlıyorum, kargo sürecinizi kontrol ediyorum. Siparişiniz yarın elinizde olacak."
450 token, -%70.
A/B Test Protokolü — Optimizasyonu Doğrulama#
Sistem prompt'u küçülttün. Şimdi kanıtla ki kalite kaybı yok.
Adım 1 — Eval set hazırla#
- 50-100 gerçek müşteri sorusu (production trafikten random örnek)
- Bunların "ideal cevap"larını işaretle (insan annotation)
Adım 2 — İki prompt'la çalıştır#
results_old = [run(prompt=old_prompt, query=q) for q in eval_set] results_new = [run(prompt=new_prompt, query=q) for q in eval_set]
Adım 3 — LLM-as-judge ile karşılaştır#
judge_prompt = """ Aşağıdaki iki cevabı kıyasla. Kullanıcı sorusuna hangisi daha iyi cevap veriyor? Kalite kriterleri: doğruluk, tam yanıt, empati, Türkçe akıcılığı. Soru: {query} Cevap A: {response_a} Cevap B: {response_b} A daha iyi / B daha iyi / Eşit """ scores = [] for q, a, b in zip(eval_set, results_old, results_new): score = llm_judge(query=q, response_a=a, response_b=b) scores.append(score) a_wins = scores.count("A") b_wins = scores.count("B") ties = scores.count("Eşit")
Adım 4 — Karar#
- B wins ≥ A wins → ship (yeni prompt iyi)
- Ties > %70 → ship (eşit kalite, daha ucuz)
- A wins > B wins → daha analiz, B'yi düzelt
🧪 Lab 5 — Hazırlık
Lab 5: Senin üretiminde olan en kullanılan 3 prompt'u al. 7 tekniği uygula. Eski/yeni prompt'la 50 örnek üret. LLM-as-judge ile karşılaştır. Hedef: %40 token tasarrufu, %95+ kalite parity. Bunu Modül 5'in sonunda yapacağız.
▶️ Sıradaki ders
5.3 — Few-Shot Examples Ekonomisi. "5 örnek mi, 3 örnek mi yeterli?" sorusunun ekonomik cevabı. Few-shot'ın token cost vs accuracy lift trade-off'unu nasıl ölçeriz?
Sık Sorulan Sorular
Tek tek uygulayıp her birinde A/B test yap. Hepsi geçince combine et. Combine'da regressionsuz ihtimal %85+. Eğer regression olursa, hangi teknik soruna sebep oldu izole et — genelde Teknik 7 (referans verme) bilgi kaybı yapabiliyor.
Yorumlar & Soru-Cevap
(0)Yorum yazmak için giriş yap.
Yorumlar yükleniyor...
İlgili İçerikler
Modül 0: Neden Maliyet, Neden Şimdi?
AI Maliyet Patlaması: 2022'den 2026'ya Token Fiyatları Neden %96 Düştü Ama Faturalar Neden 40 Kat Arttı?
Öğrenmeye BaşlaModül 0: Neden Maliyet, Neden Şimdi?
Birim Ekonomisi Sözlüğü: COGS, Gross Margin, $/User, Contribution Margin — Mühendisin Bilmesi Gereken 9 Finansal Kavram
Öğrenmeye BaşlaModül 0: Neden Maliyet, Neden Şimdi?
Atölyemizin Aletleri: Kurs Boyunca Kullanacağımız 11 Aracın Hızlı Turu
Öğrenmeye BaşlaBağlantılı Pillar Konular