İçeriğe geç
parazade
Yapay Zeka

HumanEval Nedir?

Yayın: · Son güncelleme:

HumanEval Nedir? Kısaca

HumanEval, 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.

HumanEval nedir?
İçindekiler
  1. HumanEval nedir?
  2. Nasıl puanlanır?
  3. Sınırları

HumanEval, 2021'de kod üreten dil modellerini değerlendirmek için yayımlanan bir test setidir. Adındaki "human", soruların otomatik toplanmak yerine insanlar tarafından elle yazıldığını vurgular.

HumanEval nedir?

Test, 164 programlama probleminden oluşur. Her problemde modele şu bilgiler verilir:

  • Bir Python fonksiyonunun adı ve parametreleri,
  • Fonksiyonun ne yapması gerektiğini anlatan bir açıklama (docstring),
  • Bazen birkaç örnek girdi ve çıktı.

Modelden fonksiyonun gövdesini yazması beklenir. Problemler; metin işleme, basit algoritmalar ve matematik gibi konuları kapsar ve genellikle giriş seviyesinde bir yazılım mülakatı sorusuna benzer.

Nasıl puanlanır?

Kod, metin benzerliğiyle değil, gerçekten çalıştırılarak değerlendirilir. Her problem için hazırlanmış birim testler, modelin yazdığı kodu güvenli bir ortamda çalıştırır. Tüm testleri geçen çözüm doğru kabul edilir.

Sonuçlar genellikle pass@k metriğiyle raporlanır. Örneğin pass@1, modelin ilk denemede doğru çözüm üretme olasılığını; pass@10 ise on denemeden en az birinin doğru olma olasılığını gösterir.

Sınırları

  • Kısa ve izole problemler: Gerçek yazılım geliştirme; büyük kod tabanlarını anlamayı, birden fazla dosyada değişiklik yapmayı ve hata ayıklamayı gerektirir. HumanEval bunları ölçmez. Bu ihtiyaç için SWE-bench gibi testler geliştirildi.
  • Doygunluk: Gelişmiş modeller bu testte çok yüksek oranlara ulaştı.
  • Sınırlı testler: Bazı problemlerin birim testleri hatalı çözümleri yakalayacak kadar kapsamlı değildir.
  • Veri kirlenmesi: Problemler yaygın olduğundan eğitim verisine sızmış olabilir.
  • Tek dil: Yalnızca Python'u kapsar.

Testlerden geçen kod bile gerçek projelerde güvenlik açığı ya da hata içerebilir; yapay zekâ ile yazılan kod mutlaka gözden geçirilmelidir.

Sıkça Sorulan Sorular

HumanEval'de pass@1 ne anlama gelir?

pass@1, modelin bir problem için ürettiği ilk çözümün tüm birim testlerden geçme olasılığıdır. Modelin tek denemedeki başarısını gösterir.

HumanEval hangi programlama dilini kullanır?

Orijinal HumanEval yalnızca Python problemlerinden oluşur. Daha sonra başka dillere çevrilmiş çeşitli sürümleri de geliştirilmiştir.

İlgili terimler