Show HN: Parsimony – an open-source benchmark for how much code AI models add
🇬🇧 English
Existing AI coding benchmarks measure solve rate and token cost, but they do not penalize excess code, which makes codebases harder to maintain over the long term. Parsimony was built to measure how much code AI models add, a factor that matters most for long-term projects.
The tool takes the patches that established benchmarks already publish, including DeepSWE, SWE-bench Verified and SWE-bench Live, and counts coding units. These are syntax elements such as statements, calls, comparisons, names and literals. Lines of code are not counted, so cramming code is not rewarded, and deleted code is subtracted, giving a net figure of added minus removed units.
Models are ranked by mean net units added on the tasks they solved, lowest first. The mean also includes failed attempts. Solved status comes from SWE-bench Verified, and tests are not rerun. Each patch is applied to the task's code and both versions of every changed file are parsed. Nothing is executed, and tests, docs and generated files are excluded. Only Python is currently measured.
The author notes limits. Smaller is not always better, since units measure size rather than readability or design. Models that write more code also tend to solve more tasks, with a Spearman correlation of 0.33 to 0.60 on boards with 26 or more models. All models use the same agent, mini-SWE-agent, which still influences how much code is written. Users can add their own benchmark data through a downloadable example file that stays in the browser.
🇸🇦 العربية
Parsimony: معيار مفتوح المصدر لقياس تضخم الشيفرة البرمجية الناتجة عن الذكاء الاصطناعي
تقيس معايير البرمجة الحالية المعتمدة على الذكاء الاصطناعي معدل الحل وتكلفة الرموز، لكنها لا تفرض عقوبة على الشيفرة الزائدة، وهو ما يجعل قواعد الشيفرة أصعب في الصيانة على المدى الطويل. وقد صُمم Parsimony لقياس مقدار الشيفرة التي تضيفها نماذج الذكاء الاصطناعي، وهو عامل بالغ الأهمية للمشاريع طويلة الأمد.
تأخذ الأداة التصحيحات التي تنشرها المعايير المعتمدة، ومنها DeepSWE وSWE-bench Verified وSWE-bench Live، وتعدّ وحدات الشيفرة. وهذه عناصر نحوية مثل العبارات والاستدعاءات والمقارنات والأسماء والقيم الحرفية. ولا تُحتسب أسطر الشيفرة، لذلك لا يُكافأ حشر الشيفرة في سطور كثيفة، وتُطرح الشيفرة المحذوفة، فيكون الناتج صافي الوحدات المضافة مطروحاً منها الوحدات المحذوفة.
تُرتَّب النماذج وفق متوسط صافي الوحدات المضافة في المهام التي حلّتها، من الأقل إلى الأعلى. ويشمل المتوسط أيضاً المحاولات الفاشلة. ويُؤخذ وضع الحل من SWE-bench Verified، ولا تُعاد تشغيل الاختبارات. ويُطبَّق كل تصحيح على شيفرة المهمة، ويُحلَّل الإصداران لكل ملف معدّل. ولا يُنفَّذ أي شيء، وتُستبعد الاختبارات والوثائق والملفات المولَّدة. ولا تُقاس حالياً سوى لغة Python.
ويشير المؤلف إلى قيود، فالأصغر ليس دائماً الأفضل، لأن الوحدات تقيس الحجم لا قابلية القراءة أو التصميم. والنماذج التي تكتب شيفرة أكثر تميل أيضاً إلى حل مهام أكثر، بارتباط سبيرمان بين 0.33 و0.60 في اللوحات التي تضم 26 نموذجاً فأكثر. وتستخدم جميع النماذج الوكيل نفسه mini-SWE-agent، وهو ما يؤثر في حجم الشيفرة المكتوبة. ويمكن للمستخدمين إضافة بيانات معاييرهم الخاصة عبر ملف مثال قابل للتنزيل يبقى داخل المتصفح.
كيف يقيس Parsimony مقدار الشيفرة التي يضيفها نموذج الذكاء الاصطناعي؟
يطبّق Parsimony تصحيح كل معيار منشور، ويحلل الإصدارين لكل ملف معدّل، ويعدّ وحدات الشيفرة مثل العبارات والاستدعاءات والأسماء والقيم الحرفية. وتُطرح الوحدات المحذوفة للحصول على رقم صافٍ. ولا تُحتسب أسطر الشيفرة، فلا تُكافأ الشيفرة الكثيفة.
🇧🇩 বাংলা
Parsimony: AI কোড ফুলে ওঠা পরিমাপের ওপেন-সোর্স বেঞ্চমার্ক
বিদ্যমান AI কোডিং বেঞ্চমার্ক সমাধানের হার এবং টোকেন খরচ পরিমাপ করে, কিন্তু অতিরিক্ত কোডের জন্য কোনো জরিমানা করে না, যার ফলে দীর্ঘমেয়াদে কোডবেস রক্ষণাবেক্ষণ কঠিন হয়ে ওঠে। Parsimony তৈরি করা হয়েছে AI মডেলগুলো কত কোড যোগ করে তা পরিমাপ করতে, এমন একটি বিষয় যা দীর্ঘমেয়াদি প্রকল্পের জন্য সবচেয়ে গুরুত্বপূর্ণ।
এই টুলটি প্রতিষ্ঠিত বেঞ্চমার্কগুলো ইতিমধ্যে যে প্যাচগুলো প্রকাশ করেছে, যেমন DeepSWE, SWE-bench Verified এবং SWE-bench Live, সেগুলো গ্রহণ করে এবং কোড ইউনিট গণনা করে। এগুলো হলো বিবৃতি, কল, তুলনা, নাম এবং লিটারেলের মতো সিনট্যাক্স উপাদান। কোডের লাইন গণনা করা হয় না, তাই ঠাসাঠাসি করে লেখা কোডের জন্য পুরস্কার নেই, এবং মুছে ফেলা কোড বিয়োগ করা হয়, যার ফলে যোগ করা ইউনিট থেকে মুছে ফেলা ইউনিট বাদ দিয়ে একটি নিট সংখ্যা পাওয়া যায়।
মডেলগুলোকে তারা সমাধান করা কাজগুলোর গড় নিট যোগ করা ইউনিটের ভিত্তিতে র্যাঙ্ক করা হয়, সর্বনিম্ন থেকে শুরু করে। এই গড়ে ব্যর্থ প্রচেষ্টাও অন্তর্ভুক্ত। সমাধানের অবস্থা আসে SWE-bench Verified থেকে, এবং পরীক্ষাগুলো পুনরায় চালানো হয় না। প্রতিটি প্যাচ কাজের কোডে প্রয়োগ করা হয় এবং পরিবর্তিত প্রতিটি ফাইলের উভয় সংস্করণ পার্স করা হয়। কিছুই কার্যকর করা হয় না, এবং পরীক্ষা, ডকুমেন্টেশন ও উৎপন্ন ফাইল বাদ দেওয়া হয়। বর্তমানে শুধু Python পরিমাপ করা হয়।
লেখক সীমাবদ্ধতাগুলোও উল্লেখ করেছেন। ছোট সবসময় ভালো নয়, কারণ ইউনিট আকার পরিমাপ করে, পাঠযোগ্যতা বা নকশা নয়। যেসব মডেল বেশি কোড লেখে তারা সাধারণত বেশি কাজও সমাধান করে, এবং ২৬ বা তার বেশি মডেলের বোর্ডে স্পিয়ারম্যান সম্পর্ক ০.৩৩ থেকে ০.৬০। সব মডেল একই এজেন্ট, mini-SWE-agent ব্যবহার করে, যা লেখা কোডের পরিমাণকে এখনও প্রভাবিত করে। ব্যবহারকারীরা একটি ডাউনলোডযোগ্য উদাহরণ ফাইলের মাধ্যমে নিজেদের বেঞ্চমার্ক ডেটা যোগ করতে পারেন, যা ব্রাউজারেই থেকে যায়।
Parsimony কীভাবে পরিমাপ করে একটি AI মডেল কত কোড যোগ করে?
Parsimony প্রকাশিত প্রতিটি বেঞ্চমার্ক প্যাচ প্রয়োগ করে, পরিবর্তিত প্রতিটি ফাইলের উভয় সংস্করণ পার্স করে এবং বিবৃতি, কল, নাম ও লিটারেলের মতো কোড ইউনিট গণনা করে। নিট সংখ্যা পেতে মুছে ফেলা ইউনিট বিয়োগ করা হয়। কোডের লাইন গণনা করা হয় না, তাই ঘন কোডের জন্য পুরস্কার নেই।
🇩🇪 Deutsch
Parsimony: Open-Source-Benchmark für AI-Code-Aufblähung
Bestehende KI-Benchmarks für das Programmieren messen Lösungsquote und Token-Kosten, bestrafen aber überflüssigen Code nicht, wodurch Codebasen langfristig schwerer zu warten sind. Parsimony wurde entwickelt, um zu messen, wie viel Code KI-Modelle hinzufügen, ein Faktor, der vor allem bei langfristigen Projekten zählt.
Das Tool übernimmt die Patches, die etablierte Benchmarks bereits veröffentlichen, darunter DeepSWE, SWE-bench Verified und SWE-bench Live, und zählt Code-Einheiten. Dabei handelt es sich um syntaktische Elemente wie Anweisungen, Aufrufe, Vergleiche, Namen und Literale. Zeilen werden nicht gezählt, sodass das Zusammenpressen von Code nicht belohnt wird. Gelöschter Code wird abgezogen, was einen Nettowert aus hinzugefügten minus entfernten Einheiten ergibt.
Modelle werden nach dem mittleren Nettozuwachs an Einheiten bei den gelösten Aufgaben sortiert, wobei der niedrigste Wert zuerst steht. Der Mittelwert umfasst auch fehlgeschlagene Versuche. Der Lösungsstatus stammt aus SWE-bench Verified, Tests werden nicht erneut ausgeführt. Jeder Patch wird auf den Code der Aufgabe angewendet, und beide Versionen jeder geänderten Datei werden geparst. Es wird nichts ausgeführt, Tests, Dokumentation und generierte Dateien sind ausgeschlossen. Derzeit wird nur Python gemessen.
Der Autor nennt Grenzen. Kleiner ist nicht immer besser, da Einheiten die Größe messen, nicht Lesbarkeit oder Design. Modelle, die mehr Code schreiben, lösen tendenziell auch mehr Aufgaben, mit einer Spearman-Korrelation von 0,33 bis 0,60 in Rankings mit 26 oder mehr Modellen. Alle Modelle verwenden denselben Agenten, mini-SWE-agent, der die Menge des geschriebenen Codes weiterhin beeinflusst. Nutzer können eigene Benchmark-Daten über eine herunterladbare Beispieldatei hinzufügen, die im Browser verbleibt.
Wie misst Parsimony, wie viel Code ein KI-Modell hinzufügt?
Parsimony wendet jeden veröffentlichten Benchmark-Patch an, parst beide Versionen jeder geänderten Datei und zählt Code-Einheiten wie Anweisungen, Aufrufe, Namen und Literale. Entfernte Einheiten werden abgezogen, um einen Nettowert zu erhalten. Zeilen werden nicht gezählt, sodass dichter Code nicht belohnt wird.
🇪🇸 Español
Parsimony: Benchmark de código abierto para la hinchazón del código de IA
Los benchmarks actuales de programación con IA miden la tasa de resolución y el coste en tokens, pero no penalizan el código excesivo, lo que dificulta el mantenimiento de las bases de código a largo plazo. Parsimony se creó para medir cuánto código añaden los modelos de IA, un factor que importa sobre todo en proyectos de larga duración.
La herramienta toma los parches que ya publican los benchmarks establecidos, entre ellos DeepSWE, SWE-bench Verified y SWE-bench Live, y cuenta las unidades de código. Estas son elementos sintácticos como sentencias, llamadas, comparaciones, nombres y literales. No se cuentan las líneas de código, por lo que apretar el código no se recompensa, y el código eliminado se resta, dando una cifra neta de unidades añadidas menos unidades eliminadas.
Los modelos se clasifican por la media de unidades netas añadidas en las tareas que resolvieron, de menor a mayor. La media también incluye los intentos fallidos. El estado de resuelto proviene de SWE-bench Verified, y las pruebas no se vuelven a ejecutar. Cada parche se aplica al código de la tarea y se analizan ambas versiones de cada archivo modificado. No se ejecuta nada, y se excluyen las pruebas, la documentación y los archivos generados. Actualmente solo se mide Python.
El autor señala limitaciones. Más pequeño no siempre es mejor, ya que las unidades miden el tamaño y no la legibilidad ni el diseño. Los modelos que escriben más código también tienden a resolver más tareas, con una correlación de Spearman de 0,33 a 0,60 en tablas con 26 o más modelos. Todos los modelos usan el mismo agente, mini-SWE-agent, que sigue influyendo en la cantidad de código escrito. Los usuarios pueden añadir sus propios datos de benchmark mediante un archivo de ejemplo descargable que permanece en el navegador.
¿Cómo mide Parsimony cuánto código añade un modelo de IA?
Parsimony aplica el parche de cada benchmark publicado, analiza ambas versiones de cada archivo modificado y cuenta unidades de código como sentencias, llamadas, nombres y literales. Las unidades eliminadas se restan para obtener una cifra neta. No se cuentan las líneas de código, por lo que el código denso no se recompensa.
🇫🇷 Français
Parsimony : un benchmark open source pour mesurer la surcharge de code générée par l'IA
Les benchmarks actuels de programmation par IA mesurent le taux de résolution et le coût en tokens, mais ils ne pénalisent pas le code superflu, ce qui rend les bases de code plus difficiles à maintenir sur le long terme. Parsimony a été conçu pour mesurer la quantité de code que les modèles d'IA ajoutent, un facteur particulièrement important pour les projets de longue durée.
L'outil reprend les correctifs que publient déjà les benchmarks établis, dont DeepSWE, SWE-bench Verified et SWE-bench Live, et compte des unités de code. Il s'agit d'éléments syntaxiques tels que les instructions, les appels, les comparaisons, les noms et les littéraux. Les lignes de code ne sont pas comptées, donc le fait d'entasser le code n'est pas récompensé, et le code supprimé est soustrait, ce qui donne un chiffre net égal aux unités ajoutées moins les unités supprimées.
Les modèles sont classés selon la moyenne des unités nettes ajoutées sur les tâches qu'ils ont résolues, du plus faible au plus élevé. La moyenne inclut aussi les tentatives échouées. Le statut de résolution provient de SWE-bench Verified, et les tests ne sont pas relancés. Chaque correctif est appliqué au code de la tâche et les deux versions de chaque fichier modifié sont analysées. Rien n'est exécuté, et les tests, la documentation et les fichiers générés sont exclus. Seul Python est mesuré pour le moment.
L'auteur signale des limites. Plus petit n'est pas toujours meilleur, car les unités mesurent la taille et non la lisibilité ou la conception. Les modèles qui écrivent davantage de code tendent aussi à résoudre plus de tâches, avec une corrélation de Spearman de 0,33 à 0,60 sur les classements comptant 26 modèles ou plus. Tous les modèles utilisent le même agent, mini-SWE-agent, qui influe toujours sur la quantité de code écrite. Les utilisateurs peuvent ajouter leurs propres données de benchmark grâce à un fichier d'exemple téléchargeable qui reste dans le navigateur.
Comment Parsimony mesure-t-il la quantité de code ajoutée par un modèle d'IA ?
Parsimony applique chaque correctif de benchmark publié, analyse les deux versions de chaque fichier modifié et compte des unités de code comme les instructions, les appels, les noms et les littéraux. Les unités supprimées sont soustraites pour obtenir un chiffre net. Les lignes de code ne sont pas comptées, donc le code dense n'est pas récompensé.
🇮🇳 हिन्दी
Parsimony: AI कोड फुलाव के लिए ओपन-सोर्स बेंचमार्क
मौजूदा AI कोडिंग बेंचमार्क समाधान दर और टोकन लागत मापते हैं, लेकिन वे अतिरिक्त कोड पर दंड नहीं लगाते, जिससे कोडबेस का दीर्घकालिक रखरखाव कठिन हो जाता है। Parsimony को यह मापने के लिए बनाया गया था कि AI मॉडल कितना कोड जोड़ते हैं, एक ऐसा कारक जो लंबी अवधि की परियोजनाओं के लिए सबसे अधिक मायने रखता है।
यह टूल स्थापित बेंचमार्क द्वारा पहले से प्रकाशित पैच लेता है, जिनमें DeepSWE, SWE-bench Verified और SWE-bench Live शामिल हैं, और कोड इकाइयों की गिनती करता है। ये स्टेटमेंट, कॉल, तुलना, नाम और लिटरल जैसे सिंटैक्स तत्व हैं। कोड की पंक्तियाँ नहीं गिनी जातीं, इसलिए ठूँस-ठूँसकर लिखे गए कोड को पुरस्कृत नहीं किया जाता, और हटाए गए कोड को घटाया जाता है, जिससे जोड़ी गई इकाइयों में से हटाई गई इकाइयों को घटाकर शुद्ध आंकड़ा मिलता है।
मॉडलों को उन कार्यों पर औसत शुद्ध जोड़ी गई इकाइयों के आधार पर रैंक किया जाता है जिन्हें उन्होंने हल किया, सबसे कम पहले। इस औसत में असफल प्रयास भी शामिल होते हैं। हल होने की स्थिति SWE-bench Verified से ली जाती है, और परीक्षण दोबारा नहीं चलाए जाते। प्रत्येक पैच को कार्य के कोड पर लागू किया जाता है और हर बदली गई फ़ाइल के दोनों संस्करणों को पार्स किया जाता है। कुछ भी निष्पादित नहीं होता, और परीक्षण, दस्तावेज़ और उत्पन्न फ़ाइलें बाहर रखी जाती हैं। फिलहाल केवल Python मापा जाता है।
लेखक सीमाएँ बताते हैं। छोटा हमेशा बेहतर नहीं होता, क्योंकि इकाइयाँ आकार मापती हैं, पठनीयता या डिज़ाइन नहीं। जो मॉडल अधिक कोड लिखते हैं, वे अक्सर अधिक कार्य भी हल करते हैं, 26 या अधिक मॉडलों वाली तालिकाओं पर Spearman सहसंबंध 0.33 से 0.60 है। सभी मॉडल एक ही एजेंट, mini-SWE-agent, का उपयोग करते हैं, जो अब भी लिखे गए कोड की मात्रा को प्रभावित करता है। उपयोगकर्ता एक डाउनलोड योग्य उदाहरण फ़ाइल के माध्यम से अपना बेंचमार्क डेटा जोड़ सकते हैं, जो ब्राउज़र में ही रहती है।
Parsimony यह कैसे मापता है कि AI मॉडल कितना कोड जोड़ता है?
Parsimony हर प्रकाशित बेंचमार्क पैच लागू करता है, बदली गई हर फ़ाइल के दोनों संस्करणों को पार्स करता है और स्टेटमेंट, कॉल, नाम और लिटरल जैसी कोड इकाइयों की गिनती करता है। शुद्ध आंकड़ा पाने के लिए हटाई गई इकाइयाँ घटाई जाती हैं। कोड की पंक्तियाँ नहीं गिनी जातीं, इसलिए घनी कोडिंग को पुरस्कृत नहीं किया जाता।
🇮🇩 Bahasa Indonesia
Parsimony: Benchmark Open-Source untuk Pembengkakan Kode AI
Benchmark pemrograman AI yang ada mengukur tingkat penyelesaian dan biaya token, tetapi tidak memberi penalti pada kode berlebih, sehingga basis kode menjadi lebih sulit dipelihara dalam jangka panjang. Parsimony dibuat untuk mengukur seberapa banyak kode yang ditambahkan model AI, faktor yang paling penting bagi proyek jangka panjang.
Alat ini mengambil patch yang telah dipublikasikan oleh benchmark mapan, termasuk DeepSWE, SWE-bench Verified, dan SWE-bench Live, lalu menghitung unit kode. Unit ini adalah elemen sintaksis seperti pernyataan, pemanggilan, perbandingan, nama, dan literal. Baris kode tidak dihitung, jadi memadatkan kode tidak mendapat imbalan, dan kode yang dihapus dikurangkan, menghasilkan angka bersih dari unit yang ditambahkan dikurangi unit yang dihapus.
Model diurutkan berdasarkan rata-rata unit bersih yang ditambahkan pada tugas yang berhasil diselesaikan, dari yang terendah. Rata-rata ini juga mencakup percobaan yang gagal. Status penyelesaian berasal dari SWE-bench Verified, dan tes tidak dijalankan ulang. Setiap patch diterapkan pada kode tugas dan kedua versi setiap berkas yang diubah diurai. Tidak ada yang dieksekusi, dan tes, dokumentasi, serta berkas hasil generasi dikecualikan. Saat ini hanya Python yang diukur.
Penulis mencatat keterbatasannya. Lebih kecil tidak selalu lebih baik, karena unit mengukur ukuran, bukan keterbacaan atau desain. Model yang menulis lebih banyak kode cenderung juga menyelesaikan lebih banyak tugas, dengan korelasi Spearman 0,33 hingga 0,60 pada papan dengan 26 model atau lebih. Semua model menggunakan agen yang sama, mini-SWE-agent, yang tetap memengaruhi seberapa banyak kode yang ditulis. Pengguna dapat menambahkan data benchmark mereka sendiri melalui berkas contoh yang dapat diunduh dan tetap tersimpan di peramban.
Bagaimana Parsimony mengukur seberapa banyak kode yang ditambahkan model AI?
Parsimony menerapkan setiap patch benchmark yang dipublikasikan, mengurai kedua versi setiap berkas yang diubah, dan menghitung unit kode seperti pernyataan, pemanggilan, nama, dan literal. Unit yang dihapus dikurangkan untuk mendapatkan angka bersih. Baris kode tidak dihitung, sehingga kode yang padat tidak mendapat imbalan.
🇯🇵 日本語
Parsimony:AIコードの肥大化を測るオープンソースベンチマーク
既存のAIコーディングベンチマークは解決率とトークンコストを測定しますが、余分なコードにはペナルティを与えないため、長期的にはコードベースの保守が難しくなります。Parsimonyは、AIモデルがどれだけのコードを追加するかを測定するために作られました。この要素は長期プロジェクトにとって特に重要です。
このツールは、DeepSWE、SWE-bench Verified、SWE-bench Liveなど、既存のベンチマークがすでに公開しているパッチを取り込み、コード単位を数えます。コード単位とは、文、呼び出し、比較、名前、リテラルといった構文要素のことです。コードの行数は数えないため、詰め込んだコードが評価されることはありません。削除されたコードは差し引かれ、追加された単位数から削除された単位数を引いた正味の数値が得られます。
モデルは、解決したタスクにおける正味の平均追加単位数が少ない順にランク付けされます。この平均には失敗した試行も含まれます。解決の成否はSWE-bench Verifiedから取得し、テストは再実行しません。各パッチはタスクのコードに適用され、変更された各ファイルの両方のバージョンが解析されます。何も実行されず、テスト、ドキュメント、生成ファイルは除外されます。現時点で測定対象はPythonのみです。
作者は限界も示しています。単位数はサイズを測るものであり、可読性や設計を測るものではないため、小さいほど良いとは限りません。多くのコードを書くモデルは、より多くのタスクを解決する傾向もあり、26モデル以上のボードではスピアマンの相関係数は0.33から0.60です。すべてのモデルが同じエージェントであるmini-SWE-agentを使用しており、これも書かれるコード量に影響します。ユーザーは、ブラウザ内に保持されるダウンロード可能なサンプルファイルを通じて独自のベンチマークデータを追加できます。
Parsimonyは、AIモデルがどれだけのコードを追加するかをどのように測定しますか?
Parsimonyは公開された各ベンチマークのパッチを適用し、変更された各ファイルの両バージョンを解析して、文、呼び出し、名前、リテラルなどのコード単位を数えます。削除された単位は差し引かれ、正味の数値になります。コードの行数は数えないため、密度の高いコードが評価されることはありません。
🇧🇷 Português
Parsimony: benchmark de código aberto para o inchaço de código de IA
Os benchmarks atuais de programação com IA medem a taxa de resolução e o custo em tokens, mas não penalizam o código excessivo, o que dificulta a manutenção das bases de código a longo prazo. O Parsimony foi criado para medir quanto código os modelos de IA adicionam, um fator que importa sobretudo em projetos de longo prazo.
A ferramenta pega os patches que os benchmarks estabelecidos já publicam, incluindo DeepSWE, SWE-bench Verified e SWE-bench Live, e conta unidades de código. Estas são elementos sintáticos como instruções, chamadas, comparações, nomes e literais. Linhas de código não são contadas, por isso amontoar código não é recompensado, e o código removido é subtraído, resultando em um número líquido de unidades adicionadas menos unidades removidas.
Os modelos são classificados pela média de unidades líquidas adicionadas nas tarefas que resolveram, da menor para a maior. A média também inclui as tentativas fracassadas. O status de resolvido vem do SWE-bench Verified, e os testes não são executados novamente. Cada patch é aplicado ao código da tarefa e ambas as versões de cada arquivo alterado são analisadas. Nada é executado, e testes, documentação e arquivos gerados são excluídos. Atualmente, apenas Python é medido.
O autor aponta limitações. Menor nem sempre é melhor, já que as unidades medem tamanho, e não legibilidade ou design. Modelos que escrevem mais código também tendem a resolver mais tarefas, com correlação de Spearman entre 0,33 e 0,60 em tabelas com 26 ou mais modelos. Todos os modelos usam o mesmo agente, o mini-SWE-agent, que ainda influencia a quantidade de código escrita. Os usuários podem adicionar seus próprios dados de benchmark por meio de um arquivo de exemplo para download que permanece no navegador.
Como o Parsimony mede quanto código um modelo de IA adiciona?
O Parsimony aplica cada patch de benchmark publicado, analisa as duas versões de cada arquivo alterado e conta unidades de código como instruções, chamadas, nomes e literais. As unidades removidas são subtraídas para obter um número líquido. Linhas de código não são contadas, então código denso não é recompensado.
🇷🇺 Русский
Parsimony: открытый бенчмарк для измерения раздувания кода ИИ
Существующие бенчмарки программирования с ИИ измеряют долю решённых задач и стоимость токенов, но не штрафуют за избыточный код, из-за чего кодовые базы в долгосрочной перспективе труднее поддерживать. Parsimony создан для измерения того, сколько кода добавляют модели ИИ, — фактора, который особенно важен для долгосрочных проектов.
Инструмент берёт патчи, которые уже публикуют известные бенчмарки, включая DeepSWE, SWE-bench Verified и SWE-bench Live, и подсчитывает единицы кода. Это синтаксические элементы: операторы, вызовы, сравнения, имена и литералы. Строки кода не считаются, поэтому уплотнение кода не поощряется, а удалённый код вычитается, давая чистую величину: добавленные единицы минус удалённые.
Модели ранжируются по средней чистой величине добавленных единиц на решённых задачах, от меньшей к большей. В среднее входят и неудачные попытки. Статус решения берётся из SWE-bench Verified, тесты повторно не запускаются. Каждый патч применяется к коду задачи, и разбираются обе версии каждого изменённого файла. Ничего не выполняется, тесты, документация и сгенерированные файлы исключаются. Сейчас измеряется только Python.
Автор указывает на ограничения. Меньше не всегда лучше, поскольку единицы измеряют размер, а не читаемость или дизайн. Модели, которые пишут больше кода, также склонны решать больше задач: корреляция Спирмена составляет от 0,33 до 0,60 в таблицах с 26 и более моделями. Все модели используют одного агента, mini-SWE-agent, который всё равно влияет на объём написанного кода. Пользователи могут добавить собственные данные бенчмарков через загружаемый пример файла, который остаётся в браузере.
Как Parsimony измеряет, сколько кода добавляет модель ИИ?
Parsimony применяет каждый опубликованный патч бенчмарка, разбирает обе версии каждого изменённого файла и подсчитывает единицы кода, такие как операторы, вызовы, имена и литералы. Удалённые единицы вычитаются, чтобы получить чистую величину. Строки кода не считаются, поэтому плотный код не поощряется.
🇨🇳 简体中文
Parsimony:用于衡量AI代码臃肿程度的开源基准
现有的AI编程基准测试衡量的是任务解决率和token成本,但它们并不惩罚多余的代码,而这使得代码库长期更难维护。Parsimony的构建目的,是衡量AI模型新增了多少代码,这一因素对长期项目最为重要。
该工具获取现有基准测试已发布的补丁,包括DeepSWE、SWE-bench Verified和SWE-bench Live,并统计代码单元。代码单元是语句、调用、比较、名称和字面量等语法元素。该工具不统计代码行数,因此堆砌代码不会获得奖励;被删除的代码会被扣除,得出新增单元减去删除单元的净值。
模型按其在已解决任务上的平均净新增单元数排名,数值越低排名越靠前。该平均值也包括失败的尝试。解决状态来自SWE-bench Verified,测试不会重新运行。每个补丁都会被应用到任务代码中,并解析每个被修改文件的两个版本。该工具不执行任何代码,测试、文档和生成的文件均被排除在外。目前仅支持Python。
作者指出了该工具的局限性。更小并不总是更好,因为代码单元衡量的是规模,而非可读性或设计。编写更多代码的模型往往也能解决更多任务,在包含26个或更多模型的排行榜上,两者的斯皮尔曼相关系数为0.33至0.60。所有模型均使用同一智能体mini-SWE-agent,而它本身也会影响代码的编写量。用户可以通过一个可下载的示例文件添加自己的基准数据,该文件仅在浏览器中保存。
Parsimony如何衡量AI模型新增的代码量?
Parsimony会应用每个已发布基准测试的补丁,解析每个被修改文件的两个版本,并统计语句、调用、名称和字面量等代码单元。被删除的单元会被扣除,从而得出净值。该工具不统计代码行数,因此高密度的代码不会获得奖励。