Seseorang berkata, "Kami menjangkakan strawberi, tetapi mereka mengeluarkan kangkung."
Keupayaan pengaturcaraan model besar sentiasa menarik perhatian ramai, dan kemunculan pengaturcara AI yang sangat berkuasa Devin telah mendorong topik "Boleh AI menggantikan pengaturcara" ke hadapan. Baru-baru ini, Devin turut mengalu-alukan lawan baharu - pengaturcara AI autonomi Genie yang dilancarkan oleh syarikat permulaan Cosine. Syarikat itu berkata Genie mudah mengatasi Devin, menjaringkan 30% pada penanda aras pihak ketiga SWE-bench, manakala Devin hanya memperoleh 13.8%.
SWE-Bench ini ialah set data penanda aras yang digunakan untuk menilai keupayaan LLM untuk menyelesaikan masalah perisian sebenar pada GitHub. Ia mengumpul 2,294 pasangan Permintaan Tarik Isu daripada 12 repositori Python yang popular. Semasa ujian, LLM akan mendapat asas kod dan perihalan isu, dan kemudian menjana tampung untuk menyelesaikan masalah yang diterangkan dalam isu tersebut. Dataset ini telah digunakan secara meluas dalam penilaian kebolehan pengaturcaraan AI. Apabila keupayaan pengaturcaraan AI berkembang, begitu juga penanda aras ini. Awal pagi ini, model OpenAI "Strawberi" yang dilaporkan dalam talian telah ditangguhkan lagi, tetapi OpenAI telah mengeluarkan sesuatu yang baharu, iaitu versi SWE-Bench - SWE-bench Verified yang dipertingkatkan. OpenAI menegaskan bahawa bangku SWE asal mempunyai beberapa isu yang boleh menyebabkan keupayaan kejuruteraan perisian autonomi model dipandang rendah. Oleh itu, semasa proses penambahbaikan, mereka bekerjasama dengan pengarang asal SWE-Bench untuk melakukan pemeriksaan manual dan penambahbaikan bagi memastikan skop ujian unit adalah sesuai dan penerangan masalah adalah jelas. Dalam ujian baharu pada SWE-bench Verified, ramai ejen pengaturcaraan AI mendapat markah lebih tinggi daripada sebelumnya. Antaranya, penyelesaian Tanpa Agen UIUC malah menggandakan skor OpenAI percaya bahawa ini membuktikan bahawa penanda aras sebelumnya mempunyai kelemahan kerana meremehkan keupayaan pengaturcaraan AI. Tetapi bagi netizen di seluruh dunia yang sedang menonton "Strawberry", pengumuman ini masih terlalu sambil lewa. Seseorang berkata, "Kami menjangkakan strawberi, tetapi mereka mengeluarkan kangkung."Chaque exemple de l'ensemble de tests SWE-bench a été créé à partir d'un problème GitHub résolu dans 12 référentiels de code Python open source sur GitHub. Chaque exemple est associé à une pull request (PR) qui inclut le code de la solution et des tests unitaires pour vérifier l'exactitude du code. Ces tests unitaires sont appelés tests FAIL_TO_PASS car ils échouent avant que le code de solution dans le PR ne soit ajouté et réussissent après. Chaque exemple comprend également des tests PASS_TO_PASS qui réussissent avant et après la fusion du PR pour vérifier si le PR rompt d'autres fonctionnalités de la base de code qui ne sont pas liées au problème. Dans SWE-bench, l'agent IA obtient le texte original du problème GitHub, qui est l'énoncé du problème, et a accès à la base de code. Compte tenu de ces informations, l'agent doit éditer les fichiers dans la base de code pour résoudre le problème. La modification donnée par l'agent IA sera évaluée en exécutant les tests FAIL_TO_PASS et PASS_TO_PASS. Si le test FAIL_TO_PASS réussit, cela signifie que la modification a résolu le problème. Si le test PASS_TO_PASS réussit, cela signifie que la modification n'a pas cassé les parties superflues de la base de code. Pour résoudre complètement le problème GitHub d’origine, les deux séries de tests doivent réussir. Trois axes d'amélioration pour améliorer la robustesse et la fiabilité de SWE-benchAfin d'améliorer la robustesse et la fiabilité de SWE-bench. L'équipe de développement a identifié trois axes d'amélioration principaux :
- Les tests unitaires utilisés pour évaluer l'exactitude d'une solution sont souvent trop spécifiques et parfois même pas pertinents par rapport au problème. Cela peut entraîner le rejet de la bonne solution.
- La description du problème de nombreux échantillons n'est pas assez claire, ce qui conduit à une ambiguïté quant à la nature du problème et à la manière dont il doit être résolu.
- Parfois, il est difficile de mettre en place de manière fiable un environnement de développement SWE-bench pour l'agent, ce qui peut par inadvertance provoquer l'échec des tests unitaires, quelle que soit la solution. Dans ce cas, une solution parfaitement valable peut être considérée comme incorrecte.
Pour résoudre ces problèmes, OpenAI a lancé une campagne d'annotation humaine par des développeurs de logiciels professionnels sur chaque échantillon de l'ensemble de tests du banc SWE. Un criblage est effectué pour garantir les tests unitaires. sont de portée appropriée et les descriptions des problèmes sont claires et sans ambiguïté. En collaboration avec les auteurs de SWE-bench, ils ont publié SWE-bench Verified : un sous-ensemble de l'ensemble de tests original de SWE-bench, contenant 500 échantillons qui ont été vérifiés par des annotateurs humains. Cette version remplace les suites de tests originales SWE-bench et SWE-bench Lite. De plus, ils publient des annotations humaines pour tous les échantillons de test du banc SWE. Ils ont également collaboré avec les auteurs de SWE-bench pour développer un nouvel outil d'évaluation pour SWE-bench qui utilise un environnement Docker conteneurisé pour rendre l'évaluation sur SWE-bench plus facile. - Adresse de l'outil : https://github.com/princeton-nlp/SWE-bench/tree/main/docs/20240627_docker
OpenAI A coopéré avec 93 développeurs de logiciels ayant une expérience Python, examiné manuellement les échantillons du banc SWE et annoté 1699 échantillons aléatoires dans l'ensemble de tests du banc SWE, et a finalement obtenu la vérification du banc SWE. Leur approche consiste à annoter les échantillons dans l'ensemble de test du banc SWE pour garantir l'équité et l'exactitude du test. Plus précisément, ils se concentrent sur deux points clés : premièrement, évaluer si la description du problème est suffisamment détaillée pour éviter qu'une description trop vague ne rende le test injuste ; deuxièmement, vérifier si le test unitaire FAIL_TO_PASS filtre incorrectement les solutions valides. Chaque critère d'annotation a une étiquette dans la plage [0, 1, 2, 3] avec une sévérité croissante. Les étiquettes 0 et 1 sont mineures ; les étiquettes 2 et 3 sont graves, indiquant que l'échantillon est inadéquat d'une manière ou d'une autre et doit être jeté. De plus, OpenAI évalue la difficulté de chaque échantillon en demandant aux annotateurs d'estimer combien de temps il faudrait aux développeurs pour décider et mettre en œuvre une solution, en supposant que l'échantillon ne présente aucun problème. Enfin, OpenAI fournit une option de saisie sous forme libre pour signaler tout autre problème majeur lié à l'échantillon. Pour créer SWE-bench Verified, OpenAI filtre tous les échantillons de l'ensemble de tests d'origine avec une déclaration de problème ou une gravité de test unitaire FAIL_TO_PASS de 2 ou supérieure, et filtre également tous les échantillons marqués d'autres problèmes graves. Selon la nouvelle norme, une grande partie des échantillons du banc SWE d'origine ne sont pas qualifiés.Comme le montre la figure, 38,3 % des échantillons ont été signalés parce que l'énoncé du problème n'était pas assez clair, et 61,1 % ont été signalés parce que les tests unitaires pouvaient injustement signaler à tort les solutions valides comme étant incorrectes (gravité 2, 3, deux niveaux additionnés). Dans l'ensemble, leur processus d'annotation a entraîné le filtrage de 68,3 % des échantillons du banc SWE en raison d'énoncés de problèmes peu clairs, de tests unitaires injustes ou d'autres problèmes.
La figure ci-dessous compare la répartition des difficultés de l'ensemble de données SWE-bench original et du nouvel ensemble de données SWE-bench Verified. Ils estiment la distribution des difficultés du banc SWE sur la base d’un sous-ensemble aléatoire de 1 699 échantillons. Comme le montre la figure, dans l'ensemble de données original du banc SWE, le temps de réalisation estimé de la plupart (77,8 %) des échantillons est inférieur à une heure de travail pour un ingénieur logiciel expérimenté. SWE-bench Lite et le nouvel ensemble de données SWE-bench Verified augmentent encore cette proportion, avec moins de 10 % des problèmes qui devraient prendre plus d'une heure à résoudre. Cependant, les mécanismes à l'origine de ce changement sont assez différents : SWE-bench Lite est un sous-échantillonnage de l'ensemble de données d'origine pour faciliter l'analyse comparative, tandis que SWE-bench Verified tente de supprimer les fonctionnalités irréalisables de l'échantillon de l'ensemble de données.
Performances de chaque agent sur le banc SWE vérifiées Sur le nouvel ensemble de données vérifiées par SWE, l'équipe de développement a utilisé plusieurs agents qui ont bien fonctionné dans le classement original du banc SWE L'open source l'échafaudage teste les performances de GPT-4o. Il a été constaté que les performances de GPT-4o sur l'échafaudage le plus performant atteignaient 33,2 % sur le banc SWE Verified, soit plus du double du score de 16 % sur le banc SWE d'origine. Dans l’ensemble, cela confirme les soupçons initiaux d’OpenAI selon lesquels le banc SWE d’origine avait sous-estimé les capacités de l’agent. Il convient de noter que le passage de SWE-bench Lite à SWE-bench Verified n'est pas si perceptible car après filtrage, SWE-bench Lite est déjà plus facile que l'ensemble de données complet.
Analyse des performances stratifiée par difficultéLorsqu'elle est évaluée sur le banc SWE Verified, l'amélioration des performances peut être en partie due au fait que la répartition des échantillons de test est biaisée vers des échantillons plus simples. OpenAI a étudié cela en traçant les performances stratifiées par difficulté. Si le nouvel ensemble de données modifie simplement la distribution des difficultés pour inclure des échantillons plus faciles, les performances stratifiées au sein de chaque catégorie ne changent pas, comme c'est le cas du banc SWE d'origine au banc SWE Lite. En revanche, OpenAI a observé que les performances de l'agent se sont améliorées dans toutes les catégories de difficulté lors du passage à SWE-bench Verified, ce qui est cohérent avec l'effet attendu de suppression des échantillons impossibles de toutes les catégories, plutôt que de simplement supprimer les échantillons difficiles.
Lien de référence : https://openai.com/index/introducing-swe-bench-verified/Atas ialah kandungan terperinci Model OpenAI 'Strawberi' telah ditangguhkan lagi. Apakah SWE-bench Verified yang dikeluarkan pada awal pagi?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!