Rol ve persona verme
Önkoşul:Prompt anatomisi: görev, bağlam, kısıt, format
Kanca
“Sen deneyimli bir öğretmensin, bunu 10 yaşındaki bir çocuğa anlat” — bu cümleyi eklemek, modeli GERÇEKTEN bir öğretmene mi dönüştürür? Yoksa sadece bir “kılık” mı giydirir?
Sezgi
Bir persona/rol eklemek, GÖREVİ değiştirmez — modelin, 1. derste gördüğümüz olasılık dağılımını, o role UYGUN bir TON ve KAYITTA (register) kelimeler üretecek şekilde KAYDIRIR. Model, eğitim verisinde “bir profesörün nasıl konuştuğunu” GÖRMÜŞTÜR — persona, o örüntüyü ÇAĞIRIR.
Mekanizma
Aynı soruyu, persona İLE ve OLMADAN karşılaştıralım — token maliyeti üzerinden GERÇEK bir ölçüm yapalım:
Persona, aynı soruyu sorar ama daha çok token kullanır
# Bir "rol/persona" eklemek (örn. "Sen deneyimli bir fizik profesörüsün") GÖREVİ
# değiştirmez, ama BAĞLAMI (ve token maliyetini) değiştirir.
GOREV_SADECE = "Explain why the sky is blue."
PERSONA_ILE = (
"You are an experienced physics professor known for clear, patient explanations. "
"Explain why the sky is blue."
)
t_sade = mesaj_token_sayisi(GOREV_SADECE)
t_persona = mesaj_token_sayisi(PERSONA_ILE)
print(f"Sadece görev ({t_sade} token): \"{GOREV_SADECE}\"")
print(f"Persona ile ({t_persona} token): \"{PERSONA_ILE}\"")
print(f"\nPersona eklemek, maliyeti {t_persona/t_sade:.1f}x artırıyor -- ama İKİ prompt da AYNI")
print("SORUYU soruyor. Fark, modelin YANITI NASIL üreteceğinde: persona, olası kelime")
print("dağılımını (1. ders) belirli bir TON ve KAYIT (register) yönüne KAYDIRIR.")Sadece görev (16 token): "Explain why the sky is blue."
Persona ile (65 token): "You are an experienced physics professor known for clear, patient explanations. Explain why the sky is blue."
Persona eklemek, maliyeti 4.1x artırıyor -- ama İKİ prompt da AYNI
SORUYU soruyor. Fark, modelin YANITI NASIL üreteceğinde: persona, olası kelime
dağılımını (1. ders) belirli bir TON ve KAYIT (register) yönüne KAYDIRIR.Matematik
Persona, koşullandırmayı (conditioning) genişletir
NLP kategorisinin 20. dersinde gördüğümüz formülünü hatırla — persona, bağlamın () BİR PARÇASI olarak eklenir. Bu, olasılık dağılımının HANGİ token’lara ağırlık vereceğini DEĞİŞTİRİR (1. dersteki “Bugün hava çok” örneğindeki gibi) — ama modelin BİLGİ TABANI (eğitiminde ne gördüğü) AYNI kalır.
Kod
Peki persona TAM OLARAK ne yapabilir, ne yapamaz?
Persona'nın sınırları
# YAYGIN bir yanılgı: "Sen bir doktor'sun" demek, modeli GERÇEKTEN daha bilgili yapmaz --
# model, EĞİTİM verisinde GÖRDÜĞÜ kadarını bilir. Persona SADECE ton/kayıt/çerçeveyi
# değiştirir, modelin FACTUAL bilgi tabanını GENİŞLETMEZ.
print("\nPersona vermenin YAPABİLECEKLERİ:")
print(" - Tonu değiştirmek (resmi <-> samimi, teknik <-> basit)")
print(" - Hangi TÜR bilgiye odaklanılacağını çerçevelemek (bir tarihçi vs bir mühendis gibi)")
print(" - Çıktı formatını dolaylı olarak etkilemek (bir 'öğretmen' persona, adım adım anlatabilir)")
print("\nPersona vermenin YAPAMAYACAKLARI:")
print(" - Modelin eğitim verisinde OLMAYAN bir bilgiyi 'öğretmek'")
print(" - Modeli, gerçek bir uzmanın sahip olduğu GÜNCEL/DOĞRULANMIŞ bilgiyle donatmak")
print(" - Halüsinasyon riskini SIFIRLAMAK (10. ders bu konuyu detaylandıracak)")
Persona vermenin YAPABİLECEKLERİ:
- Tonu değiştirmek (resmi <-> samimi, teknik <-> basit)
- Hangi TÜR bilgiye odaklanılacağını çerçevelemek (bir tarihçi vs bir mühendis gibi)
- Çıktı formatını dolaylı olarak etkilemek (bir 'öğretmen' persona, adım adım anlatabilir)
Persona vermenin YAPAMAYACAKLARI:
- Modelin eğitim verisinde OLMAYAN bir bilgiyi 'öğretmek'
- Modeli, gerçek bir uzmanın sahip olduğu GÜNCEL/DOĞRULANMIŞ bilgiyle donatmak
- Halüsinasyon riskini SIFIRLAMAK (10. ders bu konuyu detaylandıracak)Nerede işe yarar
Persona/rol vermenin pratikte İYİ çalıştığı ve ZAYIF kaldığı yerler VAR:
- İYİ çalışır: ton ayarlama (“resmi bir e-posta gibi yaz”), format ipucu verme (“bir öğretmen gibi adım adım anlat”), bakış açısı çerçeveleme (“bir güvenlik uzmanı gözünden değerlendir”).
- ZAYIF kalır: modele GERÇEKTEN sahip olmadığı bir uzmanlığı “kazandırmaya” çalışmak — “Sen bir hukuk profesörüsün” demek, modeli GÜNCEL hukuk bilgisiyle DONATMAZ, sadece hukuki bir ÜSLUP kullanmasını teşvik eder.
- RİSKLİ olabilir: persona, modelin GÜVEN düzeyini YAPAY olarak artırabilir — “uzman” bir ton, YANLIŞ bir bilgiyi bile daha İKNA EDİCİ gösterebilir (10. ders, halüsinasyon).
Bu 2 hatayı yaparsın:
- Persona vermenin modelin FACTUAL doğruluğunu artıracağını sanmak — HAYIR, model AYNI eğitim verisine sahiptir; persona SADECE üslubu etkiler.
- Persona’yı GEREKSİZ yere her promptta kullanmak — basit, teknik bir görevde (“bu JSON’ı ayrıştır”) persona genelde EK bir FAYDA sağlamaz, sadece token maliyeti EKLER.
Kendini test et
1. Notebook'ta 'Sen bir fizik profesörüsün' eklemek, token maliyetini 4.1 kat artırıyor. Bu ek maliyetin karşılığında NE kazanılıyor?
- Model, fizik konusunda DAHA FAZLA gerçek bilgiye sahip olur
- Modelin YANITININ TONU ve KAYDI (register), 'profesör' rolüne uygun bir örüntüye KAYAR -- ama modelin bilgi tabanı DEĞİŞMEZ (doğru cevap)
- Hiçbir şey kazanılmaz, bu tamamen israftır
- Model daha hızlı yanıt verir
Neden: MathBox'ta P(yanıt | persona, görev) formülasyonu gösteriyor ki persona SADECE koşullandırmayı (bağlamı) genişletir; rolun-yapamayacagi bloğunda bu açıkça 'ton/kayıt değişir, bilgi tabanı değişmez' şeklinde özetleniyor.
2. 'Sen bir doktor'sun, bu belirtileri teşhis et' gibi bir persona vermenin RİSKİ nedir?
- Hiçbir riski yoktur
- 'Uzman' bir ton, YANLIŞ bir bilgiyi bile daha İKNA EDİCİ gösterebilir -- model gerçek bir doktorun sahip olduğu güncel/doğrulanmış bilgiye sahip DEĞİLDİR, sadece doktorların NASIL konuştuğunu taklit eder (doğru cevap)
- Model bu promptu reddeder
- Persona vermek her zaman daha güvenli sonuçlar üretir
Neden: kullanım bölümünde AÇIKÇA belirtildiği gibi, persona modelin güven düzeyini YAPAY olarak artırabilir -- bu, 10. dersteki halüsinasyon konusuyla doğrudan bağlantılıdır.
3. Basit, teknik bir görevde (örn. 'bu JSON'ı ayrıştır') persona vermek genelde NEDEN gereksizdir?
- Persona hiçbir zaman gereksiz değildir
- Görev zaten NET ve TEKNİK olduğu için, bir 'ton' veya 'çerçeve' ayarlamaya İHTİYAÇ yoktur -- persona ek TOKEN maliyeti ekler ama görevin SONUCUNU değiştirmez (doğru cevap)
- JSON ayrıştırma personayla daha hızlı çalışır
- Teknik görevlerde persona vermek yasaktır
Neden: Kullanım bölümündeki 'Bu 2 hatayı yaparsın' kısmı, persona'nın SADECE ton/çerçeve/format ipucu sağladığını, teknik ve NET görevlerde bu faydanın genelde OLMADIĞINI vurguluyor.
Özet
Özet
- Bir persona/rol eklemek, GÖREVİ değiştirmez -- modelin çıktı olasılık dağılımını, o role uygun bir TON ve KAYDA doğru kaydırır.
- Persona, modelin BİLGİ TABANINI genişletmez -- model, eğitiminde ne gördüyse onu bilir.
- Persona vermek TON ayarlama ve bakış açısı çerçeveleme için İYİ çalışır, ama uzmanlık "kazandırmak" için ETKİSİZDİR.
- 'Uzman' bir ton, YANLIŞ bilgiyi bile daha İKNA EDİCİ gösterebilir -- bu bir RİSKTİR (10. ders).
- Basit, teknik görevlerde persona genelde EK fayda sağlamadan SADECE token maliyeti ekler.