DSPy

Stanford Üniversitesi'nin geliştirdiği, büyük dil modellerini manuel prompt yazmak yerine programatik olarak optimize eden açık kaynak Python çerçevesi.

DSPy (Declarative Self-improving Python), Stanford Üniversitesi'nden Omar Khattab ve ekibinin 2023 yılında geliştirdiği açık kaynak bir Python çerçevesidir. Temel amacı, büyük dil modellerini (LLM) manuel prompt yazmak yerine programatik olarak yönetmek ve optimize etmektir. Geleneksel yaklaşımda bir geliştirici, modele verilen talimatları (prompt) elle yazarak deneme yanılma yöntemiyle iyileştirir; bu süreç hem zaman alıcı hem de kırılgandır. DSPy bu sorunu şöyle çözer: siz yalnızca giriş ve çıkış türlerini tanımlarsınız (Signature), DSPy ise eğitim verisi ve belirlediğiniz metrikten yola çıkarak en uygun prompt'u otomatik üretir. Çerçevenin üç temel yapı taşı vardır: Signature, Modül ve Optimizer. Signature, bir modülün ne alıp ne üreteceğini tanımlar; örneğin question -> answer ya da document -> summary gibi. Modül, ChainOfThought, ReAct veya Predict gibi gerçek LLM çağrısını yapan bileşenlerdir; Python sınıfları olarak tanımlanır ve birbirleriyle zincirlenerek karmaşık pipeline'lar oluşturulur. Optimizer (eski adı Teleprompter) ise eğitim verisi ve metrik bilgisini kullanarak tüm pipeline'ın prompt'larını ve az sayıda örneğini (few-shot) otomatik olarak iyileştirir. 2026 itibarıyla en yaygın kullanılan optimizer'lar BootstrapFewShot, MIPROv2 ve COPRO'dur. BootstrapFewShot hızlı başlangıç sunarken MIPROv2, hem talimatları hem de few-shot örnekleri aynı anda Bayes optimizasyonuyla optimize eder. DSPy özellikle RAG sistemleri, çok adımlı soru cevaplama ve özetleme görevlerinde güçlü sonuçlar üretmektedir. LangChain ve LlamaIndex gibi çerçeveler geliştiriciyi prompt şablonlarını elle yapılandırmaya yönlendirirken DSPy bir üst katmanda çalışarak bu prompt içeriğini veri odaklı biçimde otomatik iyileştirir; iki yaklaşım rakip değil tamamlayıcıdır ve DSPy bu çerçevelerle birlikte kullanılabilir. Fine-tuning model ağırlıklarını değiştirirken DSPy yalnızca prompt ve few-shot örnekleri optimize eder; bu nedenle çok daha hızlı, ucuz ve esnektir. GitHub'da 23.000'den fazla yıldızla aktif geliştirilen proje MIT lisansıyla sunulmaktadır.

DSPy Nedir?

DSPy (Declarative Self-improving Python), Stanford Universitesi'nden Omar Khattab ve ekibinin 2023 yilinda gelistirdigi acik kaynak bir Python cercevesidir. Temel fikri basittir: buyuk dil modellerini yonetmek icin prompt'lari elle yazmak yerine bunlari otomatik olarak optimize edebilirsiniz. Geleneksel prompt muhendisliginde gelistirici talimatlari elle yazarak deneme yanilma yontemiyle iyilestirir; bu surec hem zaman alici hem de model versiyonu degistiginde kirilgan hale gelir. DSPy bu sureci tersine cevirir: siz giris-cikis semasini tanimlarsiniiz, DSPy ise egitim verisinden yola cikarak en uygun prompt'u otomatik uretir.

Temel Bilesenler: Signature, Modul ve Optimizer

DSPy'nin mimarisi uc temel yapi tasi uzerine kuruludur. Signature'lar, bir modulun ne tur giris alip ne tur cikti uretecegini tanimlar; ornegin 'question -> answer' ya da 'context, question -> answer, reasoning' gibi Python tipi aciklamalarla ifade edilir. Moduller, gercek LLM cagirillarini yapan yeniden kullanilabilir bilesenlerdir; dspy.ChainOfThought, dspy.ReAct ve dspy.Predict bu modullere ornektir. Optimizer'lar (eski adiyla Teleprompter) ise tum pipeline'in prompt'larini ve few-shot orneklerini egitim verisi ve metrik bilgisi kullanarak otomatik olarak iyilestirir.

Optimizer'lar

  • check_circle BootstrapFewShot: En hizli baslangic noktasidir. Pipeline'i egitim seti uzerinde calistirarak metrigi gecen ornekleri few-shot demo olarak kaydeder ve sonraki cagrilarda prompt'a ekler.
  • check_circle MIPROv2: En guclu optimizer'dir. Hem talimatlari hem de few-shot ornekleri ayni anda Bayes optimizasyonuyla optimize eder. Karmasik RAG ve cok adimli gorevlerde en yuksek performansi verir.
  • check_circle COPRO: Coordinate-wise Prompt Optimization. Her modulun talimatini ayri ayri optimize eden ve ardindan koordineli bicimde birlestiren bir yaklasimdir.
  • check_circle GEPA: Gradient-based Evolution for Prompt Alignment. Evrimsel optimizasyon teknikleriyle ozellikle uzun vadeli gorev dogrulugunu artiran yeni nesil bir optimizer'dir.

Kullanim Alanlari

  • check_circle RAG Sistemleri: Belge tabanli soru cevaplama sistemlerinde retriever ve generator modullerini DSPy ile programatik olarak baglayarak hem dogrulugu hem de bagiam kullanimini otomatik optimize edebilirsiniz.
  • check_circle Cok Adimli Akil Yurutme: HotPotQA gibi cok adimli akil yurutme gerektiren gorevlerde ChainOfThought modulleri zincirlenerek karmasik mantik surecleri otomatik hale getirilir.
  • check_circle Siniflandirma ve Ozetleme: Belge siniflandirma ve metin ozetleme pipeline'larinda DSPy, elle yazilan prompt'a kiyasla genellikle yuzde on ile yirmi arasinda daha yuksek metrik skorlari elde eder.
  • check_circle Agentic Uygulamalar: ReAct modulu araciligiyla arac cagrisi yapabilen ajanlar tanimlanabilir; DSPy bu ajanlarin sistem prompt'larini ve arac secim mantigini otomatik optimize eder.

LangChain ve LlamaIndex ile Karsilastirma

LangChain ve LlamaIndex, gelistiriciye prompt sablonlarini ve zincir bilesenlerini elle yapilandirma imkani tanis; cerceve pipeline kurulumunu kolaylastirir ancak prompt icerigini optimize etmez. DSPy ise bir ust katmanda calisarak bu prompt icerigini veri odakli bicimde otomatik iyilestirir. Bu iki yaklasim rakip degil tamamlayicidir: DSPy, LangChain veya LlamaIndex ile birlikte kullanilabilir.

Sik Sorulan Sorular

  • check_circle DSPy hangi LLM'lerle calisir? OpenAI, Anthropic, Google Gemini, Cohere, Ollama (yerel modeller) ve Hugging Face dahil pek cok saglayiciyla calisir. DSPy bir LM adaptoru araciligiyla herhangi bir API'ye baglanabilir.
  • check_circle DSPy ogrenmesi zor mu? Python bilenler icin ogrenme egrisi dusuktur. Signature tanimlamak birkaç satir kod; ilk optimizer calistirmak ise 10-20 etiketli ornek ve bir metrik fonksiyon gerektirir.
  • check_circle Uretim ortaminda kullanilabilir mi? Evet. Pek cok sirket DSPy ile optimize edilmis pipeline'lari uretimde calistirmaktadir. Optimize edilen program tek bir Python dosyasi olarak disa aktarilabilir.
  • check_circle DSPy ile fine-tuning arasindaki fark nedir? Fine-tuning model agirliklarini degistirirken DSPy sadece prompt ve few-shot ornekleri optimize eder; model agirliklari sabit kalir. Bu nedenle DSPy cok daha hizli, ucuz ve esnektir.