10 puan yazan GN⁺ 2024-04-04 | 3 yorum | WhatsApp'ta paylaş
  • SWE-agent, GPT-4 gibi dil modellerini (LM'ler) yazılım mühendisliği ajanlarına dönüştürerek gerçek GitHub depolarındaki bug'ları ve sorunları düzeltir
  • Tüm SWE-bench test setinde sorunların %12,29'unu çözerek tam test setinde en iyi performansa ulaştı

Ajan-Bilgisayar Arayüzü (ACI)

  • Bu sonuçlara, ajanın depoyu keşfetmesini, kod dosyalarını görüntülemesini, düzenlemesini ve çalıştırmasını kolaylaştıran LM merkezli komut ve geri bildirim biçimleri tasarlanarak ulaşıldı.
  • Buna Ajan-Bilgisayar Arayüzü (ACI) denir ve depo düzeyinde kodlama ajanları için ACI tasarımını kolayca yineleyebilmek amacıyla SWE-agent deposu oluşturuldu.
  • İyi bir ACI tasarımının ajan kullanımında çok daha iyi sonuçlar verdiği gösteriliyor.

Kurulum

  • Docker'ı kurun ve Docker'ı yerelde başlatın.
  • Miniconda'yı kurun ve conda env create -f environment.yml kullanarak swe-agent ortamını oluşturun.
  • conda activate swe-agent ile etkinleştirin.
  • ./setup.sh komutunu çalıştırarak swe-agent Docker imajını oluşturun.
  • Bu deponun kök dizininde keys.cfg dosyasını oluşturun ve gerekli API anahtarları ile GitHub token'ını girin.

Kullanım

  • SWE-agent hattı iki aşamadan oluşur. İlki, bir GitHub sorununu girdi olarak alıp bunu çözmeye çalışan bir pull request döndüren çıkarım aşamasıdır.
  • İkinci aşama yalnızca SWE-bench kıyaslamasındaki sorunlar için mümkündür ve oluşturulan pull request'in gerçekten sorunu çözüp çözmediğini doğrulayan değerlendirme aşamasıdır.

Değerlendirme

  • Bu aşama yalnızca SWE-bench setindeki sorunlar için mümkündür.
  • Oluşturulan pull request'i değerlendirmek için evaluation/ dizinine gidin ve ./run_eval.sh komutunu çalıştırın.

GN⁺ görüşü

  • SWE-agent, gerçek GitHub sorunlarını çözmek için dil modellerinden yararlanan yenilikçi bir yaklaşım sunarak yazılım geliştirme sürecindeki otomasyon olanaklarını genişletiyor.
  • Bu teknoloji, geliştiricilerin tekrarlayan bug düzeltme işlerinden sıyrılıp daha yaratıcı ve karmaşık problem çözümüne odaklanmasını sağlayabilecek bir potansiyele sahip.
  • ACI tasarımının önemini vurgulayarak, makine ile insan arasındaki etkileşimi optimize eden arayüz tasarımının önemini öne çıkarıyor.

3 yorum

 
botplaysdice 2024-04-05

Böyle agent'ların geliştiricilere böyle sorular da sorarak çalışması gerçekten iyi olabilir gibi görünüyor.

"Bug report'ta anlatılan yeniden üretme adımlarını, sorunu yeniden üreten bir test koduna dönüştürdüm. Doğru anladıysam, bu koda bir bakar mısın?"

"Bu tasarım yerine şöyle şöyle refactor edersek proje genelinde 20312 satır kod azaltabiliriz gibi görünüyor, do you approve?"

 
fastkoder 2024-04-04

Oldukça etkileyici bir açık kaynak projesi.

 
GN⁺ 2024-04-04
Hacker News görüşleri
  • Hata raporlarıyla ilgili yorum:

    • Demoda matris işlemleriyle ilgili açık bir hata raporu gösteriliyor.
    • Gerçek hata raporlarının çoğu, "X'e tıkladım ve Y oldu" türünde belirsiz oluyor.
    • Bir hatayı çözmenin zorluğu, nedenini tespit etmekte yatıyor.
    • LLM'lerin basit kusurları düzeltebildiğini biliyoruz, ancak bunun tam olarak neyi kanıtladığı sorgulanıyor.
    • Makaleye ayrıntılı bakan biri olup olmadığı ve sorunlardan farkının ne olduğu merak ediliyor.
  • Projeyle ilgili yorum:

    • Çok etkileyici bir proje olarak değerlendiriliyor.
    • Daha önce benzer deneyler yapılmış, ancak bunlar çoğu zaman karmaşık ve maliyetli başarısızlıklara yol açmış.
    • swe-bench'te %12 başarı oranı gösterdiği, peki kalan %88'in ne olduğu soruluyor.
    • swe-bench'in bu grup tarafından mı oluşturulduğu ve "yetenekli insan üst sınırı" puanının hiç ölçülüp ölçülmediği merak ediliyor.
    • Rastgele seçilen swe-bench görevlerinin, yetkin insanlar için bile "çözülmesi" zor olduğuna dair deneyim paylaşılıyor.
  • Kullanılan metodolojiyle ilgili yorum:

    • LangChain metodolojisinin kullanılmış gibi göründüğü söyleniyor.
    • Örnek olarak birkaç prompt verilerek GitHub bağlantısı paylaşılıyor.
  • Yapay zeka ve bug tracker'larla ilgili yorum:

    • Yapay zeka tarafından üretilen pull request'ler yaygınlaşırsa, açık bug tracker'ların sonunun gelebileceği öngörülüyor.
    • Sorunun bug'ların ortadan kalkması değil, pull request inceleme maliyetine kıyasla projeye getirinin büyük bir kayıp olacağı görüşü dile getiriliyor.
  • SWEbench benchmark'ıyla ilgili yorum:

    • SWEbench benchmark'ının yalnızca Python kodu içeren projeleri kapsadığı, bu nedenle tüm programlama dillerini ve framework'leri temsil etmediği belirtiliyor.
    • JS, SQL, Python vb. için daha genel bir SWE görev değerlendirme framework'ü geliştirildiği tanıtılıyor.
  • Demo karşılaştırmasıyla ilgili yorum:

    • Demonun Devin projesine çok benzediği ve bu yüzden kontrol edildiği söyleniyor.
    • Demoya dair güvenilirlik konusunda soru işaretleri dile getiriliyor ve üçüncü taraf değerlendirmeleri duymak isteniyor.
  • Review çalışmasıyla ilgili yorum:

    • Yapay zekanın önerdiği düzeltmeleri incelemek için gerçek insanlara ne kadar ek iş çıktığı soruluyor.
  • Benzer projelerle ilgili yorum:

    • Benzer bir proje üzerinde çalışıldığı belirtilerek GitHub bağlantısı paylaşılıyor.
    • Modelin yanlış yöne gitmesini nasıl ele alacaklarına odaklanılıyor.
    • Geliştirici-yapay zeka geri bildirim döngüsünü tamamlamanın gerçek verimlilik artışının anahtarı olduğu vurgulanıyor.
  • Yazarlara öneri içeren yorum:

    • Başarı oranının yalnızca araştırmacılar için anlamlı olduğu belirtiliyor ve README'ye, SWE-agent'ın geçtiği ve geçemediği testlerden örnekler eklenmesi öneriliyor.
  • Açık kaynak projelere katkıyla ilgili yorum:

    • Acemi bir geliştirici olarak, açık kaynak projelere nasıl katkı verilebileceğini bulmaya yardımcı olacak bir araç istendiği söyleniyor.
    • Python packaging dokümantasyonu zorlayıcı olsa da bunun aşıldığı ve artık bunun kolay yapılabildiğine dair deneyim paylaşılıyor.
    • Modernize edilmemiş projeler bulunup iyileştirme önerileri sunma ve bunları uygulama planı anlatılıyor.
    • Benzer fikirleri veya ilhamı olan insanlarla fikir paylaşmak istendiği ifade ediliyor.