Γιατί το Επαληθευμένο από δείκτη αξιολόγησης SWE δεν αξιολογεί πλέον τις κορυφαίες δυνατότητες κωδικοποίησης
Το Επαληθευμένο από δείκτη αξιολόγησης SWE γίνεται ολοένα και πιο επιμολυσμένο. Συνιστούμε το SWE-bench Pro.
Από τότε που δημοσιεύσαμε για πρώτη φορά το Επαληθευμένο από δείκτη αξιολόγησης SWE τον Αύγουστο του 2024, ο κλάδος το έχει χρησιμοποιήσει ευρέως για να μετρήσει την πρόοδο των μοντέλων σε αυτόνομες εργασίες μηχανικής λογισμικού. Μετά την κυκλοφορία του, το Επαληθευμένο από δείκτη αξιολόγησης SWE παρείχε ένα ισχυρό σήμα προόδου δυνατοτήτων και έγινε μια τυπική μετρική που αναφέρεται στις κυκλοφορίες κορυφαίων μοντέλων. Η παρακολούθηση και πρόβλεψη της προόδου αυτών των δυνατοτήτων αποτελεί επίσης σημαντικό μέρος του Πλαισίου Ετοιμότητας της OpenAI. Όταν δημιουργήσαμε αρχικά τον Επαληθευμένο δείκτη αξιολόγησης, επιχειρήσαμε να επιλύσουμε ζητήματα στην αρχική αξιολόγηση που καθιστούσαν ορισμένες εργασίες αδύνατο να ολοκληρωθούν στο σύνοδο δεδομένο δείκτη αξιολόγησης SWE(ανοίγει σε νέο παράθυρο).
Μετά τα αρχικά άλματα, η πρόοδος που σημειώνεται με την τελευταία λέξη της τεχνολογίας στο Επαληθευμένο από δείκτη αξιολόγησης SWE έχει επιβραδυνθεί, βελτιώνοντας(ανοίγει σε νέο παράθυρο) το ποσοστό από 74,9% σε 80,9% τους τελευταίους 6 μήνες. Αυτό εγείρει το ερώτημα: οι εναπομένουσες αποτυχίες αντανακλούν περιορισμούς του μοντέλου ή ιδιότητες του ίδιου του συνόλου δεδομένων;
Σε μια νέα ανάλυση, εντοπίσαμε δύο σημαντικά προβλήματα με το Επαληθευμένο σύνολο, τα οποία υποδεικνύουν ότι ο δείκτης αξιολόγησης δεν είναι πλέον κατάλληλος για μέτρηση της προόδου στις δυνατότητες αυτόνομης μηχανικής λογισμικού για πρωτοποριακές κυκλοφορίες στα σημερινά επίπεδα απόδοσης:
- Οι δοκιμές απορρίπτουν σωστές λύσεις: Ελέγξαμε ένα υποσύνολο 27,6% του συνόλου δεδομένων που τα μοντέλα συχνά δεν κατάφεραν να λύσουν και διαπιστώσαμε ότι τουλάχιστον το 59,4% των ελεγμένων προβλημάτων έχουν ελαττωματικές περιπτώσεις δοκιμών που απορρίπτουν λειτουργικά σωστές υποβολές, παρά τις καλύτερες προσπάθειές μας να το βελτιώσουμε αυτό κατά την αρχική δημιουργία του Επαληθευμένο από δείκτη αξιολόγησης SWE.
- Εκπαίδευση σε λύσεις: Επειδή τα μεγάλα κορυφαία μοντέλα μπορούν να μάθουν πληροφορίες από την εκπαίδευσή τους, είναι σημαντικό να μην εκπαιδεύονται ποτέ σε προβλήματα και λύσεις στα οποία αξιολογούνται. Αυτό είναι παρόμοιο με το να μοιράζεσαι προβλήματα και λύσεις για ένα επερχόμενο τεστ με τους μαθητές πριν από το τεστ. Μπορεί να μη απομνημονεύσουν την απάντηση, ωστόσο οι μαθητές που έχουν δει τις απαντήσεις από πριν σίγουρα θα τα πάνε καλύτερα από εκείνους που δεν τις έχουν δει. Τα προβλήματα του Δείκτη αξιολόγησης SWE προέρχονται από αποθετήρια ανοιχτού κώδικα που πολλοί πάροχοι μοντέλων χρησιμοποιούν για σκοπούς εκπαίδευσης. Στην ανάλυσή μας διαπιστώσαμε ότι όλα τα κορυφαία μοντέλα που δοκιμάσαμε ήταν σε θέση να αναπαράγουν την αρχική, διόρθωση σφάλματος γραμμένη από άνθρωπο, που χρησιμοποιήθηκε ως ορθή αναφορά, γνωστή ως Πιστοποιημένη ενημέρωση, ή τις ακριβείς λεπτομέρειες της δήλωσης προβλήματος για ορισμένες εργασίες, γεγονός που υποδεικνύει ότι όλα τους έχουν δει τουλάχιστον κάποια από τα προβλήματα και τις λύσεις κατά τη διάρκεια της εκπαίδευσης.
Βρήκαμε επίσης στοιχεία ότι τα μοντέλα που έχουν δει τα προβλήματα κατά τη διάρκεια της εκπαίδευσης είναι πιο πιθανό να πετύχουν, επειδή διαθέτουν πρόσθετες πληροφορίες που χρειάζονται για να περάσουν τις υποκαθορισμένες δοκιμές.
Αυτό σημαίνει ότι οι βελτιώσεις στο Επαληθευμένο από δείκτη αξιολόγησης SWE δεν αντικατοπτρίζουν πλέον ουσιαστικές βελτιώσεις στις πραγματικές ικανότητες ανάπτυξης λογισμικού των μοντέλων. Αντίθετα, αντικατοπτρίζουν όλο και περισσότερο το πόσο εκτέθηκε το μοντέλο στο σημείο αναφοράς κατά τη διάρκεια της εκπαίδευσης. Γι’ αυτό έχουμε σταματήσει να αναφέρουμε βαθμολογίες για Επαληθευμένο από δείκτη αξιολόγησης SWE και συνιστούμε και σε άλλους προγραμματιστές μοντέλων να κάνουν το ίδιο.
Χτίζουμε νέες, μη επιμολυσμένες αξιολογήσεις για να παρακολουθούμε καλύτερα τις δυνατότητες κωδικοποίησης, και πιστεύουμε ότι αυτός είναι ένας σημαντικός τομέας στον οποίον πρέπει να εστιάσει η ευρύτερη ερευνητική κοινότητα. Μέχρι να τα έχουμε αυτά, η OpenAI συνιστά την αναφορά αποτελεσμάτων για το SWE-bench Pro.
Η αρχική εκτίμηση του δείκτη αξιολόγησης SWE(ανοίγει σε νέο παράθυρο) κυκλοφόρησε το 2023. Κάθε πρόβλημα προέρχεται από ένα επιλυμένο πρόβλημα GitHub σε ένα από τα 12 αποθετήρια Python ανοιχτού κώδικα και συνδυάζεται με το αντίστοιχο pull request (PR). Για να προσδιοριστεί αν μια αλλαγή κώδικα που δημιουργήθηκε από μοντέλο είναι σωστή, κάθε πρόβλημα συνοδεύεται από δύο σύνολα δοκιμών:
- Δοκιμές που αποτυγχάνουν στη μη τροποποιημένη βάση κώδικα ωστόσο περνούν αν το πρόβλημα διορθωθεί σωστά
- Δοκιμές παλινδρόμησης που περνούν τόσο πριν όσο και μετά τη διόρθωση, ώστε να διασφαλιστεί ότι η μη σχετική λειτουργικότητα παραμένει άθικτη.
Το μοντέλο δεν βλέπει τις δοκιμές. Πρέπει να παράγει μια αλλαγή κώδικα λαμβάνοντας υπόψη μόνο το αρχικό κείμενο του προβλήματος και την κατάσταση του αποθετηρίου πριν από την επιδιόρθωση. Περνά ένα πρόβλημα μόνο αν όλες οι δοκιμές περάσουν μετά την εφαρμογή της αλλαγής κώδικα.
Εντοπίσαμε πολλά προβλήματα σε αυτήν την αξιολόγηση που θα μπορούσαν να οδηγήσουν σε υποαναφορά της ικανότητας των μοντέλων.
- Ορισμένες δοκιμές μονάδας ήταν υπερβολικά συγκεκριμένες ή δεν εναρμονίζονταν με την εργασία, επομένως οι σωστές διορθώσεις μπορούσαν να απορριφθούν.
- Πολλές διατυπώσεις εργασιών ήταν ανεπαρκώς προσδιορισμένες, κάτι που θα μπορούσε να οδηγήσει σε πολλαπλές έγκυρες ερμηνείες - ενώ οι δοκιμές κάλυπταν μόνο μία συγκεκριμένη.
- Ανάλογα με τη ρύθμιση του περιβάλλοντος (για παράδειγμα Linux έναντι Windows ή την έκδοση Python), ορισμένες δοκιμές θα μπορούσαν να αποτυγχάνουν ψευδώς.
Δημιουργήσαμε το Επαληθευμένο από δείκτη αξιολόγησης SWE το 2024 για να αντιμετωπίσουμε αυτά τα προβλήματα. Συνεργαστήκαμε με ειδικούς μηχανικούς λογισμικού για να εξετάσουμε 1.699 προβλήματα δείκτη αξιολόγησης SWE και να φιλτράρουμε τα προβλήματα που είχαν αυτά τα προβλήματα. Κάθε πρόβλημα εξετάστηκε από τρεις ειδικούς ανεξάρτητα. Αυτή η διαδικασία αξιολόγησης οδήγησε στο Επαληθευμένο από δείκτη αξιολόγησης SWE, ένα επιμελημένο σύνολο 500 προβλημάτων.
Παρότι το Επαληθευμένο από δείκτη αξιολόγησης SWE αποτελεί μεγάλη βελτίωση σε σχέση με την αρχική έκδοση, παραμένουν ορισμένα προβλήματα. Διενεργήσαμε έλεγχο 138 προβλημάτων Επαληθευμένο από δείκτη αξιολόγησης SWE που δεν έλυσε το OpenAI o3 με συνέπεια σε 64 ανεξάρτητες εκτελέσεις. Κάθε περίπτωση εξετάστηκε ανεξάρτητα από τουλάχιστον έξι έμπειρους μηχανικούς λογισμικού. Εάν ένας ειδικός επισήμανε ένα πρόβλημα, αυτό επαληθευόταν εκ νέου από μια πρόσθετη ομάδα.
Διαπιστώσαμε ότι το 59,4% από τα 138 προβλήματα περιείχαν ουσιώδη ζητήματα στον σχεδιασμό των δοκιμών ή/και στην περιγραφή του προβλήματος, καθιστώντας τα εξαιρετικά δύσκολα ή αδύνατα ακόμη και για το πιο ικανό μοντέλο ή άνθρωπο να τα λύσει.
- Το 35,5% των ελεγμένων εργασιών έχουν αυστηρές περιπτώσεις δοκιμής που επιβάλλουν συγκεκριμένες λεπτομέρειες υλοποίησης, ακυρώνοντας πολλές λειτουργικά ορθές υποβολές, τις οποίες ονομάζουμε περιορισμένες περιπτώσεις δοκιμής.
- Το 18,8% των ελεγμένων εργασιών έχουν δοκιμές που ελέγχουν για πρόσθετες λειτουργίες οι οποίες δεν καθορίστηκαν στην περιγραφή του προβλήματος, τις οποίες ονομάζουμε ευρείες περιπτώσεις δοκιμής.
- Το υπόλοιπο 5,1% των εργασιών παρουσίαζε διάφορα προβλήματα που δεν ομαδοποιούνταν σωστά με αυτήν την ταξινόμηση.
Ένα ενδεικτικό παράδειγμα της πρώτης λειτουργίας αποτυχίας είναι το pylint-dev__pylint-4551(ανοίγει σε νέο παράθυρο), όπου το PR εισαγάγει μια νέα συνάρτηση `get_annotation` ως μέρος της συνολικής λύσης. Αυτό το όνομα συνάρτησης δεν αναφέρεται στην περιγραφή του προβλήματος, ωστόσο εισάγεται απευθείας από τις δοκιμές. Ενώ ορισμένα μοντέλα μπορεί να έχουν την αίσθηση ότι δημιουργούν μια τέτοια συνάρτηση, δεν είναι απολύτως απαραίτητο να υλοποιηθεί μια συνάρτηση με αυτό το συγκεκριμένο όνομα για να αντιμετωπιστεί σωστά το πρόβλημα. Πολλές έγκυρες λύσεις αποτυγχάνουν στις δοκιμές λόγω σφαλμάτων εισαγωγής.
Περιγραφή προβλήματος
Απόσπασμα δοκιμής PR
Αποτυχίες δοκιμών PR (περικομμένο για ευαναγνωσιμότητα)
Ένα παράδειγμα υπερβολικά ευρείας περίπτωσης δοκιμής είναι το sympy__sympy-18199(ανοίγει σε νέο παράθυρο). Αυτή η εργασία προήλθε από ένα PR που αντιμετώπιζε τρία διακριτά ζητήματα με τη συνάρτηση `nthroot_mod`, συγκεκριμένα #17373(ανοίγει σε νέο παράθυρο), #17377(ανοίγει σε νέο παράθυρο) και #18212(ανοίγει σε νέο παράθυρο). Η περιγραφή για την εργασία Επαληθευμένο από δείκτη αξιολόγησης SWE, ωστόσο, καλύπτει μόνο το τελικό πρόβλημα #18212(ανοίγει σε νέο παράθυρο). Αυτό δημιουργεί μια αναντιστοιχία: οι δοκιμές PR καλύπτουν και τα τρία ζητήματα, ενώ η περιγραφή περιγράφει λεπτομερώς μόνο ένα. Στις δικές μας εκτελέσεις, τα μοντέλα συχνά εφαρμόζουν σωστά την περιγραφόμενη διόρθωση και στη συνέχεια αποτυγχάνουν σε δοκιμές που καλύπτουν την υλοποίηση για τα άλλα δύο προβλήματα.
Αρχική περιγραφή PR (από το GitHub PR)
Περιγραφή προβλήματος για #18212
Περιγραφή προβλήματος για την εργασία Επαληθευμένο από δείκτη αξιολόγησης SWE (λήφθηκε μόνο από το #18212):
Το Επαληθευμένο από δείκτη αξιολόγησης SWE και τα αποθετήρια (βάσεις κώδικα και σημειώσεις έκδοσης) είναι και τα δύο ανοιχτού κώδικα και χρησιμοποιούνται και συζητούνται ευρέως, γεγονός που καθιστά δύσκολη την αποφυγή επιμόλυνσης για τους προγραμματιστές μοντέλων.
Αρχικά εντοπίσαμε σημάδια επιμόλυνσης στα δικά μας μοντέλα. Για παράδειγμα, όταν το GPT‑5.2 έλυσε 31 εργασίες που είχαμε εντοπίσει ως σχεδόν αδύνατο να επιλυθούν. Στο django__django-14725(ανοίγει σε νέο παράθυρο) οι δοκιμές απαιτούν μια συγκεκριμένη νέα παράμετρο `edit_only`, η οποία δεν απαιτείται ρητά από τη δήλωση του προβλήματος. Κατά την επίλυση του προβλήματος, το GPT‑5.2 δείχνει στην αλληλουχία σκέψεών του ότι έχει πληροφορίες σχετικά με τις σημειώσεις έκδοσης που αλλάζουν λεπτομερώς τον κώδικα βάσης και αναγνωρίζει σωστά ότι η παράμετρος `edit_only` εισήχθη στο Django 4.1.
GPT‑5.2 CoT
Για να αξιολογήσουμε πόσο σημαντική είναι η επιμόλυνση σε ευρύτερη κλίμακα, δημιουργήσαμε μια αυτοματοποιημένη ρύθμιση αντιπαραθετικού ελέγχου ασφαλείας (red teaming). Για κάθε ερώτηση Επαληθευμένο από δείκτη αξιολόγησης SWE, αναθέσαμε στο GPT‑5 να διερευνήσει ένα GPT‑5.2‑Chat, το Claude Opus 4.5 και το Gemini 3 Flash Preview για επιμόλυνση. Αυτά τα μοντέλα επιλέχθηκαν ώστε να αποκλείουν τα μοντέλα συλλογιστικής, ωστόσο αναγνωρίζουμε ότι πιθανότατα υπάρχει ένα μη αμελητέο χάσμα δυνατοτήτων μεταξύ τους.
Για να διερευνήσει την επιμόλυνση, το GPT‑5 έλαβε: το αναγνωριστικό της εργασίας για το Επαληθευμένο από δείκτη αξιολόγησης SWE, την περιγραφή, την Πιστοποιημένη ενημέρωση, και τις δοκιμές PR. Σε περισσότερες από 15 φορές, επιτρέψαμε στο GPT‑5 να διαφοροποιήσει την προτροπή συστήματος/προγραμματιστή, την προτροπή χρήστη και την προσυμπλήρωση βοηθού, καθώς και διαφορετικές στρατηγικές ανάδειξης. Μετά από κάθε φορά, ένα μοντέλο κριτή κατέγραφε πόσες νέες πληροφορίες εμφανίζονταν για τη συγκεκριμένη εργασία και κάθε απόκριση χαρακτηριζόταν ως προς τη σοβαρότητα της επιμόλυνσης από «καμία» έως «ισχυρή». Το GPT‑5 είχε τη δυνατότητα να προσαρμόσει τη στρατηγική του με βάση προηγούμενες φορές για την επαναληπτική ανάκτηση λεπτομερειών που αφορούν συγκεκριμένες εργασίες. Για κάθε παράδειγμα ισχυρής επιμόλυνσης, επαληθεύσαμε με έναν άλλον κριτή ότι το GPT‑5 δεν διέρρευσε υπερβολικά πολλές πληροφορίες στο μοντέλο-στόχο. Τέλος, ελέγξαμε μη αυτόματα τα «ισχυρά» παραδείγματα που συνθέτουν τις μεταγραφές σε αυτήν την ανάρτηση.
Παρακάτω παρατίθενται παραδείγματα έντονης επιμόλυνσης σε διαφορετικούς παρόχους μοντέλων.
Δεδομένου ενός σύντομου αποσπάσματος από την περιγραφή της εργασίας, το GPT‑5.2 παράγει την ακριβή Πιστοποιημένη ενημέρωση. Συγκεκριμένα, γνωρίζει το ακριβές όνομα κλάσης και μεθόδου, καθώς και τη νέα συνθήκη πρόωρης επιστροφής `εάν το όνομα χρήστη είναι Κανένα ή ο κωδικός πρόσβασης είναι Κανένας` που εισάγεται.
Αναγνωριστικό εργασίας: django__django-11451(ανοίγει σε νέο παράθυρο)
Ανάδειξη επιμόλυνσης
Πιστοποιημένη ενημέρωση
Το Opus είναι σε θέση όχι μόνο να θυμηθεί την ακριβή αλλαγή 4 γραμμών στη λειτουργικότητα που εισήγαγε το PR, μαζί με το συγκεκριμένο όνομα αρχείου και τη μέθοδο που άγγιξε, αλλά και να παραθέσει κατά λέξη το εσωτερικό σχόλιο που ήταν μέρος του diff.
Αναγνωριστικό εργασίας: astropy__astropy-13236(ανοίγει σε νέο παράθυρο)
Ανάδειξη επιμόλυνσης
Πιστοποιημένη ενημέρωση
Το Gemini 3 Flash, όταν δεν του παρέχονται περαιτέρω πληροφορίες σχετικά με την εργασία πέρα από το Αναγνωριστικό, είναι σε θέση να εξάγει αυτολεξεί λεπτομέρειες από την περιγραφή της εργασίας και την Πιστοποιημένη ενημέρωση. Αυτό περιλαμβάνει τον νέο τύπο regex για την επικύρωση ονόματος χρήστη και τους ακριβείς αριθμούς γραμμών για την αλλαγή.
Αναγνωριστικό εργασίας: django__django-11099(ανοίγει σε νέο παράθυρο)
Ανάδειξη επιμόλυνσης
Πιστοποιημένη ενημέρωση
Από αυτόν τον έλεγχο στο Επαληθευμένο από δείκτη αξιολόγησης SWE, βλέπουμε δύο ευρύτερα διδάγματα για τον σχεδιασμό αξιολόγησης. Πρώτον, οι δείκτες αξιολόγησης που προέρχονται από δημόσια διαθέσιμο υλικό ενέχουν κίνδυνο επιμόλυνσης, όπου η έκθεση σε δεδομένα εκπαίδευσης μπορεί σιωπηρά να διογκώσει τις βαθμολογίες. Εάν χρησιμοποιούνται δημόσια ανιχνευμένα δεδομένα στην κατασκευή δεικτών αξιολόγησης, οι προγραμματιστές μοντέλων θα πρέπει να πραγματοποιούν πρόσθετες δοκιμές για επιμόλυνση. Οι δείκτες αξιολόγησης, ακόμη και οι λύσεις τους, που δημοσιεύονται δημόσια μπορεί να καταλήξουν σε δεδομένα εκπαίδευσης. Θα πρέπει να δίνεται ιδιαίτερη προσοχή τόσο στον τρόπο με τον οποίον δημοσιεύονται τα σύνολα δεδομένων (δηλ. προστατευμένο με κωδικό πρόσβασης) όσο και στο φιλτράρισμα των δεδομένων εκπαίδευσης (δηλ. αυστηρή τήρηση των συμβολοσειρών canary).
Δεύτερον, η αυτοματοποιημένη βαθμολόγηση είναι δύσκολο να επιτευχθεί σωστά. Οι τέλειες δοκιμαστικές περιπτώσεις θα πρέπει να επαληθεύουν πλήρως τη σωστή λειτουργικότητα, καθώς είναι τόσο ανεξάρτητες από συγκεκριμένες ασήμαντες λεπτομέρειες υλοποίησης όσο και ανθεκτικές σε λύσεις συντόμευσης. Αυτά τα προβλήματα είναι εγγενώς σύνθετα και δύσκολα να επιλυθούν. Ο εντοπισμός αυτών των προβλημάτων απαιτούσε πολλαπλές εκτεταμένες καμπάνιες ανθρώπινης επισήμανσης.
Έχουμε ενσωματώσει αυτά τα ευρήματα στις πρόσφατες προσπάθειές μας για αξιολόγηση. Τους τελευταίους μήνες επιλέξαμε να αναφέρουμε αποτελέσματα από τη δημόσια μορφή του SWE-Bench Pro. Συνιστούμε και σε άλλους προγραμματιστές μοντέλων να κάνουν το ίδιο. Το SWE-bench Pro δεν είναι τέλειο, ωστόσο εμπειρικά φαίνεται να αντιμετωπίζει λιγότερα προβλήματα επιμόλυνσης δεδομένων. Ο αγωγός εντοπισμού επιμόλυνσης δεδομένων μας εντόπισε ορισμένες περιπτώσεις επιμόλυνσης, ωστόσο αυτές οι περιπτώσεις ήταν σημαντικά σπανιότερες και λιγότερο σοβαρές από το Επαληθευμένο από δείκτη αξιολόγησης SWE, και κανένα μοντέλο δεν μπόρεσε να παράγει μιας πλήρως αυτολεξεί Πιστοποιημένη ενημέρωση.
Θα συνεχίσουμε να επενδύουμε σε πρωτότυπα, ιδιωτικά συγγραφόμενους δείκτες αξιολόγησης και θα ζητάμε βοήθεια από τη βιομηχανία και τον ακαδημαϊκό χώρο για να κάνουν το ίδιο. Στο GDVal, οι εργασίες συντάσσονται ιδιωτικά από ειδικούς του τομέα, μειώνοντας τον κίνδυνο έκθεσης, και οι λύσεις βαθμολογούνται ολιστικά από εκπαιδευμένους κριτές. Αυτή η προσέγγιση απαιτεί πολλούς πόρους, ωστόσο είναι ολοένα και πιο απαραίτητη για τη μέτρηση πραγματικών βελτιώσεων στις δυνατότητες.


