Τα στοιχεία επικοινωνίας μου
Ταχυδρομείο[email protected]
2024-08-14
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
Αναφορά Machine Heart
Επιμέλεια: Zhang Qian, Xiaozhou
Κάποιος είπε: «Περιμέναμε φράουλες, αλλά κυκλοφόρησαν το λάχανο για να δούμε σε τι χρησιμεύει αυτό το «λάχανο».
Οι δυνατότητες προγραμματισμού μεγάλων μοντέλων προσέλκυαν πάντα μεγάλη προσοχή, και η εμφάνιση του εξαιρετικά ισχυρού προγραμματιστή τεχνητής νοημοσύνης Devin έφερε στο προσκήνιο το θέμα «Μπορεί η τεχνητή νοημοσύνη να αντικαταστήσει τους προγραμματιστές». Πρόσφατα, ο Devin εισήγαγε επίσης έναν νέο αντίπαλο - έναν ανεξάρτητο προγραμματιστή τεχνητής νοημοσύνης που ξεκίνησε από την start-up εταιρεία CosineΤζίνι. Η εταιρεία είπε ότι η Genie ξεπέρασε εύκολα τον Devin, σημειώνοντας 30% στο τρίτο μέρος αναφοράς SWE-bench, ενώ ο Devin σημείωσε μόλις 13,8%.
Αυτό το SWE-Bench είναι ένα σύνολο δεδομένων αναφοράς που χρησιμοποιείται για την αξιολόγηση της ικανότητας του LLM να επιλύει πραγματικά προβλήματα λογισμικού στο GitHub. Συλλέγει 2.294 ζεύγη αιτημάτων έκδοσης-έλξης από 12 δημοφιλή αποθετήρια Python. Κατά τη διάρκεια της δοκιμής, το LLM θα λάβει μια βάση κώδικα και μια περιγραφή του ζητήματος και, στη συνέχεια, θα δημιουργήσει μια ενημέρωση κώδικα για να λύσει το πρόβλημα που περιγράφεται στο ζήτημα. Αυτό το σύνολο δεδομένων έχει χρησιμοποιηθεί ευρέως στην αξιολόγηση των δυνατοτήτων προγραμματισμού AI.
Καθώς οι δυνατότητες προγραμματισμού AI εξελίσσονται, το ίδιο συμβαίνει και με αυτό το σημείο αναφοράς. Νωρίς σήμερα το πρωί, το μοντέλο OpenAI "Strawberry" που αναφέρθηκε στο διαδίκτυο καθυστέρησε ξανά, αλλά το OpenAI κυκλοφόρησε κάτι νέο, το οποίο είναι μια βελτιωμένη έκδοση του SWE-Bench - SWE-bench Verified.
Το OpenAI επεσήμανε ότι ο αρχικός πάγκος SWE είχε κάποια προβλήματα που μπορεί να είχαν προκαλέσει την υποεκτίμηση των αυτόνομων δυνατοτήτων μηχανικής λογισμικού του μοντέλου. Επομένως, κατά τη διάρκεια της διαδικασίας βελτίωσης, συνεργάστηκαν με τους αρχικούς συγγραφείς του SWE-Bench για να πραγματοποιήσουν χειροκίνητο έλεγχο και βελτίωση για να διασφαλίσουν ότι το εύρος των δοκιμών μονάδας ήταν κατάλληλο και η περιγραφή του προβλήματος ήταν σαφής.
Σε νέες δοκιμές που πραγματοποιήθηκαν στο SWE-bench Verified, πολλοί πράκτορες προγραμματισμού AI σημείωσαν υψηλότερη βαθμολογία από πριν. Μεταξύ αυτών, η λύση Agentless της UIUC μάλιστα διπλασίασε τη βαθμολογία, πιστεύει ότι αυτό αποδεικνύει ότι το προηγούμενο σημείο αναφοράς έχει το ελάττωμα της υποτίμησης των δυνατοτήτων προγραμματισμού AI.
Αλλά για τους χρήστες του Διαδικτύου σε όλο τον κόσμο που παρακολουθούν το "Strawberry", αυτή η κυκλοφορία είναι ακόμα πολύ επιπόλαιη. Κάποιος είπε: «Περιμέναμε φράουλες, αλλά κυκλοφόρησαν λάχανο».
Γνώση ιστορικού για το SWE-bench
Κάθε παράδειγμα στο σύνολο δοκιμής SWE-bench δημιουργήθηκε από ένα επιλυμένο πρόβλημα GitHub σε 12 αποθετήρια κώδικα Python ανοιχτού κώδικα στο GitHub. Κάθε δείγμα έχει ένα σχετικό αίτημα έλξης (PR) που περιλαμβάνει κώδικα λύσης και δοκιμές μονάδας για την επαλήθευση της ορθότητας του κώδικα. Αυτές οι δοκιμές μονάδας ονομάζονται δοκιμές FAIL_TO_PASS επειδή αποτυγχάνουν πριν προστεθεί ο κώδικας λύσης στο PR και περνούν μετά την προσθήκη του. Κάθε δείγμα περιλαμβάνει επίσης δοκιμές PASS_TO_PASS που περνούν πριν και μετά τη συγχώνευση του PR για να ελεγχθεί εάν το PR διασπά άλλες δυνατότητες στη βάση κώδικα που δεν σχετίζονται με το πρόβλημα.
Στο SWE-bench, ο πράκτορας AI λαμβάνει το αρχικό κείμενο από το ζήτημα του GitHub, το οποίο είναι η δήλωση προβλήματος, και έχει πρόσβαση στη βάση κώδικα. Δεδομένων αυτών των πληροφοριών, ο πράκτορας πρέπει να επεξεργαστεί αρχεία στη βάση κώδικα για να λύσει το πρόβλημα.
Οι τροποποιήσεις που δίνονται από τον πράκτορα AI θα αξιολογηθούν εκτελώντας τις δοκιμές FAIL_TO_PASS και PASS_TO_PASS. Εάν η δοκιμή FAIL_TO_PASS περάσει, σημαίνει ότι ο επεξεργαστής διόρθωσε το πρόβλημα. Εάν η δοκιμή PASS_TO_PASS περάσει, σημαίνει ότι η επεξεργασία δεν έσπασε ξένα μέρη της βάσης κώδικα. Για να επιλυθεί πλήρως το αρχικό ζήτημα του GitHub, πρέπει να περάσουν και τα δύο σετ δοκιμών.
Τρεις κατευθύνσεις βελτίωσης για τη βελτίωση της στιβαρότητας και της αξιοπιστίας του πάγκου SWE
Προκειμένου να βελτιωθεί η στιβαρότητα και η αξιοπιστία του πάγκου SWE. Η ομάδα ανάπτυξης προσδιόρισε τρεις βασικές κατευθύνσεις για βελτίωση:
SWE-πάγκος Επαληθεύτηκε
Για να αντιμετωπίσει αυτά τα ζητήματα, το OpenAI ξεκίνησε μια εκστρατεία χειροκίνητου σχολιασμού από επαγγελματίες προγραμματιστές λογισμικού, εξετάζοντας κάθε δείγμα στο σετ δοκιμών SWE-bench για να διασφαλίσει ότι οι δοκιμές μονάδας είχαν το κατάλληλο εύρος και οι περιγραφές προβλημάτων ήταν σαφείς και ξεκάθαρες.
Μαζί με τους συντάκτες του SWE-bench, κυκλοφόρησαν το SWE-bench Verified: ένα υποσύνολο του αρχικού σετ δοκιμής του SWE-bench, που περιέχει 500 δείγματα που έχουν επαληθευτεί από ανθρώπους σχολιαστές. Αυτή η έκδοση αντικαθιστά τα αρχικά σετ δοκιμών SWE-bench και SWE-bench Lite. Επιπλέον, δημοσιεύουν ανθρώπινους σχολιασμούς για όλα τα δείγματα δοκιμής SWE-bench.
Συνεργάστηκαν επίσης με τους συντάκτες του SWE-bench για να αναπτύξουν ένα νέο εργαλείο αξιολόγησης για το SWE-bench που χρησιμοποιεί ένα περιβάλλον Docker με εμπορευματοκιβώτια για να κάνει την αξιολόγηση στο SWE-bench ευκολότερη και πιο αξιόπιστη.
Μέθοδος βελτίωσης
Το OpenAI συνεργάστηκε με 93 προγραμματιστές λογισμικού με εμπειρία Python για να εξετάσει με μη αυτόματο τρόπο δείγματα SWE-bench και να σχολιάσει 1699 τυχαία δείγματα στο σύνολο δοκιμών του SWE-bench και τελικά απέκτησε το SWE-bench Verified.
Η προσέγγισή τους είναι να σχολιάσουν τα δείγματα στο σετ δοκιμών SWE-bench για να εξασφαλίσουν τη δικαιοσύνη και την ακρίβεια της δοκιμής. Συγκεκριμένα, επικεντρώνονται σε δύο βασικά σημεία: πρώτον, να αξιολογήσουν εάν η περιγραφή του προβλήματος είναι αρκετά λεπτομερής ώστε να αποτρέψει μια υπερβολικά ασαφή περιγραφή από το να προκαλέσει άδικο έλεγχο, δεύτερον, να ελέγξει εάν η δοκιμή μονάδας FAIL_TO_PASS θα φιλτράρει εσφαλμένα τις έγκυρες λύσεις.
Κάθε κριτήριο σχολιασμού έχει μια ετικέτα στην περιοχή [0, 1, 2, 3] με αυξανόμενη σοβαρότητα. Οι ετικέτες 0 και 1 είναι δευτερεύουσες οι ετικέτες 2 και 3 είναι σοβαρές, υποδεικνύοντας ότι το δείγμα είναι ανεπαρκές κατά κάποιο τρόπο και πρέπει να απορριφθεί.
Επιπλέον, το OpenAI αξιολογεί τη δυσκολία κάθε δείγματος ζητώντας από τους σχολιαστές να εκτιμήσουν πόσο χρόνο θα χρειαζόταν οι προγραμματιστές για να αποφασίσουν και να εφαρμόσουν μια λύση, υποθέτοντας ότι το δείγμα είναι χωρίς προβλήματα. Τέλος, το OpenAI παρέχει μια επιλογή εισαγωγής ελεύθερης μορφής για την επισήμανση τυχόν άλλων σημαντικών προβλημάτων με το δείγμα.
Για τη δημιουργία SWE-bench Verified, το OpenAI φιλτράρει τυχόν δείγματα από το αρχικό σύνολο δοκιμών με δήλωση προβλήματος ή βαρύτητα δοκιμής μονάδας FAIL_TO_PASS 2 ή μεγαλύτερη, και επίσης φιλτράρει τυχόν δείγματα που επισημαίνονται με άλλα σοβαρά ζητήματα.
Σημειώστε τα αποτελέσματα
Σύμφωνα με τα νέα πρότυπα, ένα μεγάλο μέρος των δειγμάτων στον αρχικό πάγκο SWE δεν είναι κατάλληλο. Όπως φαίνεται στο σχήμα, το 38,3% των δειγμάτων επισημάνθηκαν επειδή η δήλωση του προβλήματος δεν ήταν αρκετά σαφής και το 61,1% επισημάνθηκαν επειδή οι δοκιμές μονάδας θα μπορούσαν άδικα να επισημάνουν λανθασμένα έγκυρες λύσεις ως εσφαλμένες (Σοβαρότητα 2, 3 Τα δύο επίπεδα αθροίζονται) . Συνολικά, η διαδικασία σχολιασμού τους είχε ως αποτέλεσμα το 68,3% των δειγμάτων SWE-bench να φιλτράρονται λόγω ασαφών δηλώσεων προβλημάτων, αθέμιτων δοκιμών μονάδας ή άλλων ζητημάτων.
Το παρακάτω σχήμα συγκρίνει την κατανομή δυσκολίας του αρχικού συνόλου δεδομένων SWE-bench και του νέου συνόλου δεδομένων SWE-bench Verified. Εκτιμούν την κατανομή δυσκολίας του SWE-bench με βάση ένα τυχαίο υποσύνολο 1699 δειγμάτων.
Όπως φαίνεται από το σχήμα, στο αρχικό σύνολο δεδομένων SWE-bench, ο εκτιμώμενος χρόνος ολοκλήρωσης των περισσότερων (77,8%) δειγμάτων είναι λιγότερος από μία ώρα εργασίας για έναν έμπειρο μηχανικό λογισμικού. Το SWE-bench Lite και το νέο σύνολο δεδομένων SWE-bench Verified αυξάνουν περαιτέρω αυτό το ποσοστό, με λιγότερο από το 10% των προβλημάτων που αναμένεται να διαρκέσει περισσότερο από μία ώρα για την επίλυση. Ωστόσο, οι μηχανισμοί πίσω από αυτήν την αλλαγή είναι αρκετά διαφορετικοί: Το SWE-bench Lite είναι μια υποδειγματοληψία του αρχικού δεδομένων για να διευκολύνει τη συγκριτική αξιολόγηση, ενώ το SWE-bench Verified προσπαθεί να αφαιρέσει ανέφικτα χαρακτηριστικά από το δείγμα δεδομένων.
Επαληθεύτηκε η απόδοση κάθε πράκτορα στο SWE-bench
Στο νέο σύνολο δεδομένων SWE-bench Verified, η ομάδα ανάπτυξης δοκίμασε την απόδοση του GPT-4o χρησιμοποιώντας πολλαπλά ικριώματα ανοιχτού κώδικα που είχαν καλή απόδοση στον αρχικό πίνακα κορυφαίων SWE-bench.
Διαπιστώθηκε ότι η απόδοση του GPT-4o στο ικρίωμα με τις καλύτερες επιδόσεις έφτασε το 33,2% στο SWE-bench Verified, υπερδιπλάσιο από το σκορ 16% στον αρχικό πάγκο SWE. Συνολικά, αυτό επιβεβαιώνει την αρχική υποψία του OpenAI ότι η αρχική SWE-bench υποτίμησε τις δυνατότητες του πράκτορα.
Αξίζει να σημειωθεί ότι το άλμα από το SWE-bench Lite στο SWE-bench Verified δεν είναι τόσο προφανές, επειδή μετά το φιλτράρισμα, το SWE-bench Lite είναι ήδη ευκολότερο από το πλήρες σύνολο δεδομένων.
Ανάλυση απόδοσης στρωματοποιημένη κατά δυσκολία
Η βελτίωση της απόδοσης όταν αξιολογείται στο SWE-bench Verified μπορεί να οφείλεται εν μέρει στην λοξή κατανομή των δειγμάτων δοκιμής προς απλούστερα δείγματα.
Το OpenAI το διερεύνησε σχεδιάζοντας την απόδοση που διαστρωματώνεται με βάση τη δυσκολία. Εάν το νέο σύνολο δεδομένων απλώς αλλάξει την κατανομή δυσκολίας για να περιλαμβάνει ευκολότερα δείγματα, η στρωματοποιημένη απόδοση σε κάθε κατηγορία δεν αλλάζει, όπως συμβαίνει από το αρχικό SWE-bench στο SWE-bench Lite.
Αντίθετα, το OpenAI παρατήρησε ότι η απόδοση του πράκτορα βελτιώθηκε σε όλες τις κατηγορίες δυσκολίας κατά τη μετάβαση στο SWE-bench Verified, σύμφωνα με το αναμενόμενο αποτέλεσμα της αφαίρεσης αδύνατων δειγμάτων από όλες τις κατηγορίες αντί της απλής μετακίνησης Κατάργηση δύσκολων δειγμάτων.
Σύνδεσμος αναφοράς: https://openai.com/index/introducing-swe-bench-verified/