İçeriğe geç
parazade
Yapay Zeka

Pass@k Nedir?

Yayın: · Son güncelleme:

Pass@k Nedir? Kısaca

Pass@k, kod üreten yapay zekâ modellerini değerlendirmek için kullanılan, bir problem için üretilen k çözümden en az birinin birim testlerini başarıyla geçme olasılığını ölçen metriktir; pass@1 tek denemede doğru çözüm oranını gösterir.

Pass@k nedir?
İçindekiler
  1. Pass@k nedir?
  2. Nasıl hesaplanır?
  3. Nelere dikkat etmeli?

Pass@k, kod yazan yapay zekâ modellerinin başarısını ölçmenin en yaygın yollarından biridir. "k denemede geçme" diye okunabilir.

Pass@k nedir?

Kod üretiminde bir çözümün doğru olup olmadığı, ona yazılmış birim testlerini geçip geçmediğine bakılarak anlaşılır. Pass@k, model bir problem için k farklı çözüm ürettiğinde bunlardan en az birinin tüm testleri geçme olasılığıdır. Sonuç, bir test setindeki tüm problemler üzerinden ortalanarak yüzde olarak raporlanır.

  • pass@1: Model tek denemede doğru kod yazabiliyor mu? Günlük kullanımda en anlamlı değerdir.
  • pass@10, pass@100: Model birçok deneme hakkı olduğunda doğru çözüme ulaşabiliyor mu? Bu değerler, doğru çözümün modelin "erişim alanında" olup olmadığını gösterir.

Metrik, HumanEval gibi kod kıyaslama testlerinde yaygınlaştı.

Nasıl hesaplanır?

Doğrudan k örnek üretip bakmak gürültülü sonuç verir. Bu yüzden her problem için n çözüm (n ≥ k) üretilir ve bunlardan c tanesinin doğru olduğu sayılır. Yansız tahmin şu formülle yapılır:

pass@k = 1 − C(n − c, k) / C(n, k)

Burada C, kombinasyonu ifade eder. Formül, n çözüm içinden rastgele seçilen k çözümün hepsinin yanlış olma olasılığını 1'den çıkarır.

Varsayımsal örnek: n = 10 çözümden c = 3'ü doğruysa pass@1 = 3/10 = 0,30 olur. pass@5 ise 1 − C(7,5)/C(10,5) = 1 − 21/252 ≈ 0,92'dir.

Nelere dikkat etmeli?

  • Pass@k, testlerin kalitesi kadar güvenilirdir; zayıf testler hatalı kodu "doğru" sayabilir.
  • Yüksek k değerleri gerçekçi olmayan bir iyimserlik yaratabilir; pratikte hangi çözümün doğru olduğunu seçmek de bir sorundur.
  • Örnekleme sıcaklığı sonuçları etkiler; karşılaştırma yaparken aynı ayarlar kullanılmalıdır.
  • Test problemleri eğitim verisine sızdıysa skorlar şişebilir.

Sıkça Sorulan Sorular

Pass@1 ile pass@10 arasındaki fark nedir?

Pass@1, modelin tek denemede doğru çözüm üretme oranıdır. Pass@10 ise on denemeden en az birinin doğru olma olasılığıdır; bu yüzden her zaman pass@1'e eşit ya da ondan yüksektir.

Pass@k neden doğrudan k örnekle hesaplanmaz?

Yalnızca k örnek üretmek sonucun büyük ölçüde şansa bağlı olmasına yol açar. Daha fazla örnek üretip doğru olanları saymak ve kombinasyon formülünü kullanmak, daha kararlı ve yansız bir tahmin sağlar.

İlgili terimler

HumanEvalHumanEval, yapay zekâ modellerinin bir fonksiyon açıklamasından çalışan Python kodu yazma becerisini, üretilen kodu birim testlerle çalıştırarak ölçen ve 164 programlama probleminden oluşan bir benchmarktır.BenchmarkBenchmark, Türkçede kıyaslama ölçütü demektir; yapay zekâda farklı modellerin performansını aynı görevler, aynı veri seti ve aynı puanlama kurallarıyla ölçüp karşılaştırmaya yarayan standart test setidir.Model Değerlendirme(Model Evaluation)Model değerlendirme (model evaluation), bir yapay zekâ modelinin belirli bir görevdeki başarısını, güvenilirliğini, adaletini ve güvenliğini; test verileri, metrikler, karşılaştırma testleri ve insan incelemesiyle ölçme sürecidir.SWE-benchSWE-bench, yapay zekâ modellerinin ve ajanlarının, açık kaynak Python projelerinden alınmış gerçek GitHub sorunlarını, ilgili kod tabanında değişiklik yaparak çözme becerisini otomatik testlerle ölçen bir benchmarktır.Harf Çevirisi(Transliteration)Harf çevirisi (transliterasyon), bir yazı sistemindeki metnin, anlamı çevrilmeden başka bir yazı sisteminin harfleriyle yazılmasıdır. Örneğin Kiril alfabesiyle yazılmış bir ismin Latin harflerine aktarılması harf çevirisidir.Dil Tespiti(Language Detection)Dil tespiti (language detection), bir metnin ya da ses kaydının hangi dilde olduğunu otomatik olarak belirleyen doğal dil işleme görevidir. Çeviri, arama motorları ve içerik moderasyonu gibi pek çok sistemin ilk adımıdır.