Yapay zeka programcısının ne kadar iyi (veya kötü) olduğu: Kodun %60'ı kullanılabilir

Adanali

Member
Yüksek Lisans'ların ne kadar iyi programlayabildiğine dair yeni bilgiler var çünkü şimdiye kadar dil modellerinin güvenilirliğini ölçmek zordu. Çoğunlukla iyi sonuçlar verirler, bazen hiç sonuç vermezler ve nadiren yanlış olurlar, ancak bu halüsinasyonlar genellikle çok ikna edici bir şekilde formüle edilmiştir. Daha sonra LMSYS Chatbot Arena gibi genel dil modelleri için insanları içeren kıyaslamalar oluşturuldu. Aynı zamanda bireysel kalite kriterleri ölçülür ve bunlar daha sonra ana sayfalarda toplanır.


Duyuru



Kodu sistematik olarak inceleyin


Daha spesifik dil modelleri için bu çok daha sistematik bir şekilde yapılabilir. Öncelikle program kodu üretebilen Yüksek Lisanslar idealdir. Bu kod sözdizimsel ve anlamsal olarak kontrol edilebilir. Otomatik test oluşturma yazılımı sağlayıcısı Symflower, tam olarak bunu inceledi ve bu konuda bir dizi blog yazdı. Elde edilen bilgiler heyecan vericidir ve Yüksek Lisans'ların performansına ilişkin ilginç bilgiler sağlamaktadır.

Ancak bazı sınırlamalar vardır: Kod oluşturma yalnızca Java ve Go için gerçekleştirilir. Python ve JavaScript gibi yaygın olarak kullanılan diğer programlama dilleri henüz dikkate alınmamıştır. Bu nedenle sonuçların burada tekrarlanıp tekrarlanamayacağı belirsizdir. Bu durumda, mevcut kod miktarının daha fazla olması nedeniyle daha iyi sonuçların elde edilebileceği düşünülebilir.

Blog serisinin önceki bölümleri yalnızca basit, “boş” sınıflar için testler oluşturuyordu. Şimdi bu oldukça genişledi ve senaryo daha karmaşık hale geldi. Yüksek Lisans'ların artık 23 gerçek dünya programlama örneği için testler oluşturması gerekiyor. İlginç sonuçlar var:

  • Sonuçların yalnızca %58'i çevrilebilirdi (yalnızca on modelde bu oran %80'in üzerindeydi). Bu durumda manuel olarak yeniden işleme yapılması gerekir. Bu ölçümün derleme dilleri için ölçülmesi kolaydır ancak Python ve JavaScript için zor olacaktır.
  • Bazı modeller çevrilebilir herhangi bir kod üretmiyordu. Bu, gerçek bir programcının yalnızca sözdizimsel olarak yanlış kod oluşturmasıyla karşılaştırılabilir.
  • Sözdizimi hatalarının çoğu oldukça önemsizdi ve IDE desteğiyle hızlı bir şekilde düzeltilebilir.
  • Java için üç model (gpt-4o, deepseek-coder, claude-3-opus) her zaman çevrilebilir kod üretmiştir. Ne yazık ki bu Go ile mümkün olmadı (ki bu kesinlikle daha az eğitim miktarından kaynaklanmaktadır).
İnsanlar vazgeçilmez olmaya devam ediyor


Programcılara hâlâ ihtiyaç var. Şaşırtıcı olan şey, kod oluşturmanın Java ile Go'dan çok daha iyi çalışmasıdır. Artan eğitim miktarı, Python ve JavaScript ile de iyi çalışabileceğine dair umut verecektir. Ancak kodun çevrilmesine gerek olmadığından metriklerin belirlenmesi daha zordur. Dinamik yazma, manuel olarak kontrol edilmesi gereken ek hatalara yol açabilir.

Bireysel modeller istisnaları farklı şekilde ele alır: bunları yakalama veya alternatif olarak bu durumda testin başarısız olmasına izin verme seçeneği vardır. Her iki strateji de insan programcılar tarafından kullanılıyor, dolayısıyla modeller her ikisini de öğreniyor.



Model sıralaması heyecan verici. Son testle karşılaştırıldığında Symflower skoru biraz değiştirdi ve optimize etti. Bazı modeller daha fazla kapsam üretirken diğerleri daha fazla test tercüme ettiğinden bu süreç henüz tamamlanmadı. Bu nedenle bir sonraki iterasyonda puan yeniden revize edilecektir.

Son olarak makale, testlerin ne kadar verimli olduğunu gösteriyor. Bazı durumlarda, LLM'ler asenkron yöntemler yerine senkronize yöntemler üretir ve bu da önemli ölçüde daha uzun yürütme sürelerine yol açar. Permütasyonların ve ilgili günlük kaydının kötü işlenmesi nedeniyle, testler çok büyük günlük dosyaları oluşturdu. Bu faktörlerin her ikisi de kolayca tüm test paketlerinin devre dışı bırakılmasına yol açabilir ve böylece tüm yazılımın kararlılığını tehlikeye atabilir.

Makale, modellerin tam olarak nasıl seçildiğini, hangi sanal alanların kullanıldığını ve çok daha fazlasını belgeliyor. Testleri kendiniz denemek istiyorsanız bu kullanışlıdır. Teknik açıklama, GitHub'da yayınlanan çerçeveye basit bir giriş sağlar.




(fo)
 
Üst