Startseite→Yapay Zekâ
Yapay Zekâ

Bir AI Kodlama Ajansının Başarılı Olması, Ne Kadar İyi Çalıştığını Göstermez.

Kodlama yapan yapay zeka ajanslarının başarılı bir sonuç üretmesi, aslında ne kadar verimli çalıştıkları hakkında yanıltıcı bilgi verebilir. Bir ajans...

User Avatar
Thermal Throttle ZedeEditör
6 Min. Lesezeit
Yayın:
🌐
Originalsprache wird angezeigt

Dieser Artikel wurde noch nicht ins Deutsche übersetzt. Sie sehen die Originalversion.

Kodlama yapan yapay zeka ajanslarının başarılı bir sonuç üretmesi, aslında ne kadar verimli çalıştıkları hakkında yanıltıcı bilgi verebilir. Bir ajans görevi tamamlamak için ekstra adımlar attığında, bu işlerin ne kadarının gerçekten gerekli olduğu çoğu zaman belli olmaz.

Yeni yayımlanan bir araştırmada, ajanın son düzeltmeyi bulmak için attığı on bir adımın yalnızca dördünün gerekli olduğu, gerisinin ise gereksiz çalışma olduğu görülüyor. Bazı değişiklikler nihai yamaya bile sızabiliyor. Bu çalışma gerçek bir kodlama ajanını kullanmadan yapıldı; depo, düzenlemeler, test sonuçları ve hatalar gerçek olsa da ajanın karar verme süreci simüle edildi.

SayarBilgi sitesini Google’da tercih edilen kaynak olarak seç

towards-data-science sitesinde yayımlanan habere göre, araştırmacı yaklaşık 50 bin benzetilmiş çalıştırdı: uyumluluk taramasında 24 bin, bireysel kuralların test edilmesi için 14 bin 400 ve ayrı bir grup üzerinde 12 bin çalışma.

SWE-bench gibi standart ölçütler yalnızca sonuca bakar. Gerçek bir GitHub sorusu ve gerçek bir kod tabanı verilir, modelin kodu değiştirip ilgili testleri geçirmesi beklenir. Bu ölçütmde 12 Python deposundan alınan 2 bin 294 problem bulunur. Ana skor basittir: yama soruyu çözdü mü çözmedi mi?

Bu skor yararlıdır, ancak gösteremediği bir şey de vardır. Modelin o sonuca ulaşmak için kaç adım attığıyla ilgilenmez.

Bir çalışmada ajan başarısız testi bulur, hatayı takip eder, değişikliği yapar ve yeşil test sonucu alır. Başka bir çalışma da aynı sonuca ulaşır, ancak önce yanlış dosyayı değiştirir, bu değişikliği geri alır, aynı komutu birkaç kez daha çalıştırır, alakasız kodları değiştirir ve zaten geçen olan testleri tekrar çalıştırır.

Her iki çalışma da SWE-bench’te başarılı sayılır. Ancak ikinci çalışma daha fazla adım kullandı, daha fazla zaman ve jeton harcadı ve göz atılması için daha çok şey bıraktı. Bu değişikliklerden bazıları nihai yamaya kalırsa, gereksiz çalışma orada da görünür.

Araştırmacı deney için iki şeyi ayrı tutmak istedi: son yamanın boyutu ile toplam iş yükü. Son yamanın boyutu başlangıç deposuyla nihai yama arasındaki farktır. Toplam işyükü ise ajanın o sonuca ulaşmadan önce yaptığı her şeydir, geri aldıkları değişiklikler dahil.

Gerçek bir ajan kullanmamanın başka bir nedeni de vardı. Bunu yapsaydı, aynı zamanda modeldeki, araç kullanımındaki ve çevredeki farklılıkları da ölçüyor olurdu. API maliyetleri de hesaba katılırdı. Bu da sonucun, test ettiği iş akışından mı yoksa rastgele kullandığı ajandan mı kaynaklandığını ayırt etmeyi zorlaştırırdı.

Depo gerçektir ve kod gerçekten çalışır. Simüle edilen tek şey, sıradaki adımı karar veren kısmdır. Bu, yapılabilecek iddiaları belirlerken önemlidir: belirli bir kuralın ajan belirli davrandığında nasıl davrandığını test edebilir, ancak Claude Code’un veya Codex’in nasıl davrandığını söyleyemez, çünkü bunları çalıştırmadı.

Missionen için on küçük hata oluşturuldu, her biri kendi geçici deposunda. Bunlar bir sayımda bir fazla olma sınavaşımı, boş liste çökmesi, yanlış formül, eksik strip, kayıp sıralama, dilim hatası, değişken hatası, swapped dal sılaması ve whitespace bölme gibi konuları kapsar.

Her depo bir unittest suite ve bilinen bir referans düzeltmeye sahiptir. Doğru dosyaya mantıklı ama yanlış bir düzeltme ve alakasız dosyalarda birkaç zararsız değişiklik de ekledi; bunları oyalayıcı olarak kullandı. Testler alt süreçte çalıştığı için ajan aslında gerçek bir depoyla uğraşıyor.

Ajanda temel politika oldukça sıradandır: testleri çalıştır, hataya bak, bir yap, tekrar testleri çalıştır ve şeyler geçene kadar dur. Sonra farklı profillere belirli olasılıklarla başka şeyler yapma chance verildi.

Davranış profilleri rastgele seçildi ve mutlak sayıların gerçek ajansların davranışını öngördüğü düşünülmedi. Bu numaralar kurgusaldır; dikkatli bir ajanla başlayıp döngüye daha kolay düşen bir ayla biten dört profil belirlendi.

Ajanın harness’e tepkisi doğrudan değiştirilebilir bir şeydir. Uyumluluk ajanın bir talimatı ne kadar sıklıkla takip ettiğini kontrol eder. Plan faydası ise zorunlu planlama adımının yanlış değişiklik yapma olasılığını ne kadar azalttığını belirler.

Bir atanan işyükü tanımı da dikkatlice belirlendi. Her başarısız testin atanan sayılmaması gerektiğine karar verildi, çünkü başarısız bir test faydalı olabilir. Bir şeyi değiştirdiğinizde ve test neyin yanlış gittiğini söylediğinde bu sonuç hata ayıklama sürecinin parçasıdır.

Bir eylemin atanan sayılması için çalışmayı son duruma yaklaştırmaması gerekir. Bu kurulumda buna şunlar dahildir: ajanın daha önce gördüğü bir şeyi tekrarlamak, testlerin hiçbirini etkileyen dosyaları değiştirmek veya hiçbir şeyi değiştirmeyen ya da sonra geri alınan bir değişiklik yapmak.

Geri alma dikkatli ele alınmalıdır; çünkü kötü değişikliği kurtarmak için gerekiyorsa o zaman atanan sayılmaz. Örneğin ajan yanlış dosyayı değiştirir, test başarısız olur, diff’i kontrol eder, değişikliği alır, doğru dosyayı değiştirir ve test geçer. Yanlış değişiklik atandedir, ancak geri alma değildir çünkü yararlı bir duruma dönmek gerekiyordu.

Harness çalışması da ayrı tutuldu; planlama, inceleme, kapı veya temizleme adımı eklenirse bu ajan yükünden çok harness adımı olarak sayıldı. Tekrarlamanın kendisi alışıldık değildir; çoklu ajan LLM sistemlerindeki hatalara dair bir çalışma adım tekrarını 14 hata modundan biri olarak listeler.

Üç farklı harness karşılaştırma için kullanıldı: temel, yapılandırılmış ve uyarlanabilir. Yapılandırılmış ajana ne yapacağını söylerken, uyarlanabilir söylemez; belirli şeyler olmasını bekler ve sonra tepki verir. Bu iki yaklaşım Anthropic’in iş akışı ile ajan arasındaki ayrımı yansıtır.

Kurallar çalışmadan önce belirlendi: R1 aynı komut iki kez state değişikliği olmadan başarısız olduğunda düzenlemeden önce tanıyı, R2 aynı dosya iki kez değiştirildiğinde veya iki geri alma olduğunda birikmiş diff’i inceleme, R3 üç adım state değişikliği olmadan geçtiğinde strateji değiştirme, R4 karmaşık çalışmadan sonra testler geçtiğinde diff’i gözden geçirerek doğrulama ve R5 bir düzenlemenin testlerin içe aktarmadığı bir dosyayı dokunduğunda gerekçelendir veya geri al. Kapı ise ajan testler başarısızken bitirmeye çalıştığında reddetme yapar.

İlk sonuç, en ucuz ajan harness’in yanıltıcı olduğu bulundu. Yirmi tohum, on görev, hücre başına 200 çalışma ve uymluluk 0.5 ile temel karşılaştırma yapıldı.

Startseiteta temelHarness kazanan gibi görünüyor; dört profil için de en az adım alıyor ve iki profilde en az atanan işyüküne sahip. Ancak başarı numaralarına da bakmak gerekiyor.

Sloppy ajan, temel harness ile görevlerinin yalnızca yüzde 51,5’ini çözebiliyor; testler hala başarısızken durabiliyor. Bu da ona çok az atanan yükle kısa bir çalışma veriyor, ama sadece ajanın vazgeçmesinden dolayı. Yani adım sayısına tek başına bakmak, başarısız bir harness’i olduğundan daha iyi gösterebilir.

Maliyet karşılaştırması için yalnızca her iki harness’in de görevi gerçekten çözdüğü tohumlar kullanıldı ve bu çalışmalar birebir karşılaştırıldı. Yapılandırılmış, dikkatli ajan dahil dört profilin herbirinde iki ile üç buçuk arasında ekstra adım ekledi; atanan yükünü hiçbirinde azaltmadı, aksine arttı.

Uyarlanabilir, dikkatli ve normal profiller için temele çok yakındır. Sloppy ve loop-prone profillerde ise atanayı biraz keser. Ancak bu sonuç sıfıra yeterince yakın olduğu için açık bir kazanma olarak adlandırılamaz.

Yalnızca kapı kuralının tek başına test edilmesi, tam uyarlanabilir harness ile aynı başarı oranını üretti; bu da o tek kuralın başarındaki tüm iyileştirmeden sorumlu olduğunu gösterdi. Beş başka kuralın atanayı azaltıp azaltmadığı ise ajanın onları takip edip etmediğine büyük ölçüde bağlıydı.

Uyarlanabilir uymluluk 1.0’da sloppy ajan için 0,70 ± 0,35 atanan adım tasarrufu sağladı, ancak bunu yapmak için 2,99 harness adımı kullandı ve çalışma hala temelden 1,77 ± 0,68 adım daha uzundu. Yani bu kurulumda yaklaşık üç ekstra adıma karşılık birinden az atayan adım tasarrufu harcıyorlar.

Beş kuralı tek tek parçalayarak hangisinin tasarruftan sorumlu olduğunu bulmak için R5’in çoğu işi yaptığı bulundu; kaldırıldığında sloppy profil için atanan çalışmanın yarısından fazlası, loop-prone için ise yaklaşık üçte biri düştü. Diğer iki profil farklıydı.

R5’in aslında harness’te ne yaptığı şudur: ajanın testlerin içe aktarmadığı bir dosyayı değiştirdiğinde tetiklenir. Simülatör bu durumu oyalayıcı düzenlemelerle tam olarak oluşturur; ancak araştırmacı kendi sonucunu sorgulamak zorunda kaldı çünkü hem oyalayıcıyı hem de onu yakalayan kuralı kendisi oluşturdu.

Ayrı tutulan testler için dört yeni ajan profili eklendi; bunların hiçbiri test edilen modülün dışındaki bir dosyayı düzenlemedi ve testler başarısızken vazgeçmedi. Bu da R5’in yakalayacak hiçbir şeyi olmadığını, başarı kapısının yapacak hiçbir işi olmadığı anlamına geliyordu.

Tahmin üç profilde doğru, birinde yanıltıcı çıktı; held_rerun ve held_mixed beklendiği gibi davranırken, adaptive atanayı azaltmadı ve adım ekledi. held_core_thrash daha ilginçti: analyzer’ın atanan olarak adlandırdığı işi artırdı ama aynı zamanda nihai yamadan yabancı çizgileri de çıkardı.

Bu çalışmanın sınırları vardır; gerçek ajanların davranışlarını yakalamayan profiller kullanıldı, görevler küçüktü ve atan dosya düzeyinde tanımlandı. Araştırmacı sonuçların kendi simülasyonunda tutarlı olduğunu ancak başkalarınınında test etmesi gerektiğini vurguladı.

SWE-bench makalesi ile SWE-agent çalışması, Anthropic’in etkili ajanlar hakkındaki yaklaşımı ve Claude Code hooks referansı konularında daha fazla bilgi bulunabilir. Kodlama ajansları için gerçek bir test yapmak isteyenler, GitHub deposunda kaynak kodu ve ön kayıtlamayı bulabilir.

İlginizi Çekebilir: OpenAI’nin 722 matematik makalesi matematik camiasında büyük tartışma yarattı →
Quelle: Towardsdatascience ↗
🚀 SayarBilgi Topluluğu

Diskutieren Sie diese Entwicklung in der Community

Haber hakkındaki düşüncelerinizi, donanım deneyimlerinizi ve teknik sorularınızı topluluk üyeleriyle anlık olarak tartışın.

🚀 Yapay Zeka & Gelecek Odası →
STIMME DER COMMUNITY

Sie sind am Wort.

2 yorum

Teilen Sie Ihre Erfahrungen, Fragen und Beiträge. Ihre E-Mail-Adresse wird nicht veröffentlicht.

An der Diskussion teilnehmen

E-Mail adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Ihr Kommentar muss möglicherweise vor der Veröffentlichung moderiert werden.

NÄCHSTE LEKTÜRE

Merak etmeye devam

Alle ansehen ↗

Worüber möchten Sie mehr erfahren?

Mindestens 3 Zeichen eingeben.

Entdecken

🌍 SPRACHE WÄHLEN 25 Sprachen
🔍