Ιστολόγιο

Πώς να διαβάζετε τα benchmarks προγραμματισμού με AI και να αποφεύγετε τους «νικητές στα χαρτιά»

Markdown

Τι μετρούν τα HumanEval και SWE-bench και πώς να συνυπολογίζετε το agent wrapper, τις συνθήκες, την επικαιρότητα των εργασιών, τη διακύμανση και το κόστος όταν διαβάζετε κατατάξεις AI coding.

Διαβάστε ολόκληρο το άρθρο

Με λίγα λόγια: το ποσοστό «λύνει το 76 τοις εκατό των εργασιών» από μόνο του δεν λέει σχεδόν τίποτα. Σημασία έχει ποιο σύνολο εργασιών έδωσε αυτό το αποτέλεσμα, ποιο μοντέλο και ποιο agent wrapper συνυπολογίστηκαν, αν οι εργασίες είναι πρόσφατες ή παλιές και πόσο κόστισε. Χωρίς αυτές τις συνθήκες, το ποσοστό είναι καλό για διαφημιστικό banner, αλλά όχι για την επιλογή εργαλείου.

Στη συνέχεια, θα εξηγήσω με απλά λόγια τι μετρούν τα δύο κύρια coding benchmarks, πού κρύβεται η παγίδα στους πίνακες και πώς να ελέγχετε οποιαδήποτε κατάταξη σε ένα λεπτό, πριν βασιστείτε σε αυτή. Παρακάτω συζητούνται ιστορικοί ορισμοί benchmarks. Δεν αναπαράγεται εδώ ζωντανό στιγμιότυπο ζευγαρωμένης κατάταξης· μια τρέχουσα σύγκριση βαθμολογίας ή κόστους χρειάζεται δικό της συνδεδεμένο πίνακα, ημερομηνία και διαμόρφωση.

Διαβάστε περισσότερα για την εργασία με μοντέλα στην τεκμηρίωση του Ailoot.

Τι δείχνει στην πραγματικότητα ένα ποσοστό benchmark;

Κύριο συμπέρασμα

Ένα ποσοστό benchmark είναι το μερίδιο των εργασιών από ένα συγκεκριμένο σύνολο που ολοκλήρωσε ένα εργαλείο με λειτουργικό αποτέλεσμα υπό συγκεκριμένες συνθήκες. Οι εργασίες ελέγχονται με αυτοματοποιημένες δοκιμές: ο κώδικας είτε περνά τη δοκιμή είτε όχι· η αξιολόγηση είναι αντικειμενική και δεν υπάρχει «περίπου». Όμως το σύνολο εργασιών είναι πάντα περιορισμένο και γνωστό εκ των προτέρων, ενώ οι συνθήκες μέτρησης διαφέρουν για τον καθένα. Επομένως, το ποσοστό απαντά στην ερώτηση «Πόσες από αυτές τις εργασίες έλυσε αυτό το εργαλείο με αυτόν τον τρόπο;». Δεν απαντά στην ερώτηση «Θα ανταποκριθεί στη δική μου εργασία;».

Ένα benchmark λειτουργεί απλά. Υπάρχει ένας έτοιμος κατάλογος προγραμματιστικών εργασιών. Το εργαλείο λαμβάνει κάθε εργασία, επιστρέφει κώδικα και το σύστημα εκτελεί αυτοματοποιημένες δοκιμές για να διαπιστώσει αν η λύση λειτουργεί. Το μερίδιο των εργασιών που πέρασαν είναι το ποσοστό που εμφανίζεται στον πίνακα.

Το πλεονέκτημα είναι ότι η αξιολόγηση είναι αντικειμενική. Μια δοκιμή είτε είναι πράσινη είτε κόκκινη· κανείς δεν βαθμολογεί «με το μάτι». Από αυτή την άποψη, τα benchmarks είναι πιο ειλικρινή από οποιεσδήποτε κριτικές ή μαρτυρίες.

Η αδυναμία είναι ακριβώς η ίδια. Το σύνολο εργασιών είναι πεπερασμένο και γνωστό εκ των προτέρων σε όλους, ακόμη και σε όσους εκπαιδεύουν τα μοντέλα. Κάθε μέτρηση έχει τις δικές της συνθήκες. Και οι εργασίες του συνόλου σχεδόν σίγουρα δεν μοιάζουν με όσα κάνετε εσείς. Από εκεί προκύπτουν όλες οι παγίδες που συζητώ παρακάτω. Το ποσοστό περιγράφει τη συμπεριφορά ενός εργαλείου σε έναν κλειστό κατάλογο εργασιών κάποιου άλλου και δεν μεταφέρεται απευθείας στο δικό σας έργο.

Τι μετρά το HumanEval και γιατί δεν μπορείτε πλέον να επιλέξετε με βάση αυτό;

Κύριο συμπέρασμα

Το HumanEval είναι ένα παλιό σύνολο 164 μικρών εργασιών Python: στα μοντέλα δίνεται η περιγραφή μιας συνάρτησης, γράφουν τον κώδικα και αυτοματοποιημένες δοκιμές ελέγχουν την εργασία. Όταν κυκλοφόρησε το 2021, το πρώτο Codex έλυσε το 28.8 τοις εκατό των εργασιών σε μία προσπάθεια. Σήμερα, τα ισχυρά μοντέλα ολοκληρώνουν σχεδόν όλο το σύνολο, επομένως δεν μπορεί πλέον να τα διακρίνει. Επιπλέον, οι εργασίες είναι απλά παραδείγματα: μία συνάρτηση βάσει περιγραφής απέχει πολύ από την εργασία σε ένα μεγάλο, ενεργό έργο. Μια υψηλή βαθμολογία HumanEval το 2026 δεν σημαίνει σχεδόν τίποτα.

Το HumanEval δημιουργήθηκε στην OpenAI και κυκλοφόρησε το 2021 μαζί με το μοντέλο Codex. Περιλαμβάνει 164 μικρές εργασίες Python: στα μοντέλα δίνεται με λόγια η περιγραφή μιας συνάρτησης, γράφουν το σώμα της και ένα σύνολο αυτοματοποιημένων δοκιμών ελέγχει αν λειτουργεί σωστά.

Εκείνη την εποχή, ήταν ένας καλός τρόπος διάκρισης. Στη δική τους εργασία, οι συγγραφείς αναφέρουν το εξής στοιχείο: το πρώτο Codex έλυσε το 28.8 τοις εκατό των εργασιών σε μία προσπάθεια, ενώ το συνηθισμένο GPT-3 έλυσε μηδέν.

Στο HumanEval, το μοντέλο μας λύνει το 28.8 τοις εκατό των προβλημάτων, ενώ το GPT-3 λύνει το 0 τοις εκατό και το GPT-J το 11.4 τοις εκατό.

— OpenAI, άρθρο «Evaluating Large Language Models Trained on Code»

Έκτοτε, τα μοντέλα έχουν εξελιχθεί και σήμερα τα ισχυρά ολοκληρώνουν σχεδόν όλο το HumanEval. Όταν όλοι βαθμολογούνται κοντά στο 100 τοις εκατό, ο πίνακας παύει να διακρίνει οτιδήποτε: οι διαφορές μεταξύ των εργαλείων χάνονται. Αυτό ονομάζεται κορεσμός benchmark και το HumanEval βρίσκεται σε αυτή την κατάσταση εδώ και πολύ καιρό.

Το δεύτερο ελάττωμα είναι σοβαρότερο. Οι εργασίες είναι πολύ μικρές: γράψτε μία συνάρτηση βάσει μιας περιγραφής. Η πραγματική σας εργασία είναι διαφορετική — αφορά ένα μεγάλο έργο με ιστορικό, όπου χρειάζεται να κατανοήσετε τον κώδικα κάποιου άλλου, να εντοπίσετε ένα ελάττωμα και να αποφύγετε να χαλάσετε γειτονικό κώδικα. Υπάρχει χάσμα ανάμεσα στο «γράψε μια συνάρτηση από την αρχή» και στο «διόρθωσε ένα σφάλμα σε ένα ενεργό έργο». Επομένως, μια υψηλή βαθμολογία HumanEval σήμερα δεν αποτελεί πλέον λόγο για να επιλέξετε ένα εργαλείο· είναι περισσότερο μια ένδειξη ότι «καλύπτονται τα βασικά».

Τι μετρά το SWE-bench και πώς προσεγγίζει περισσότερο την πραγματική εργασία;

Κύριο συμπέρασμα

Το SWE-bench βασίζεται σε πραγματικά ελαττώματα δημοφιλών έργων GitHub: 2,294 εργασίες από 12 αποθετήρια Python. Στο εργαλείο δίνεται μια περιγραφή προβλήματος, επεξεργάζεται τον κώδικα και το σύστημα εκτελεί δοκιμές που αποτύγχαναν πριν από την αλλαγή και πρέπει να περνούν μετά τη διόρθωση. Αυτό προσεγγίζει πολύ περισσότερο την πραγματική εργασία από ό,τι το HumanEval, γι’ αυτό χρησιμοποιείται για τη σύγκριση σοβαρών εργαλείων. Η δυσκολία του φαίνεται από την ιστορία του: η πρώτη απλή προσέγγιση έλυσε λιγότερο από το δύο τοις εκατό των εργασιών.

Το SWE-bench είναι θεμελιωδώς διαφορετικό και, επομένως, πιο ενδιαφέρον. Δημιουργήθηκε από πραγματικά issues και pull requests σε δημοφιλή έργα GitHub. Σύμφωνα με τους δημιουργούς του, περιλαμβάνει 2,294 εργασίες από 12 μεγάλα αποθετήρια Python και κυκλοφόρησε τον Οκτώβριο του 2023.

Η λογική αξιολόγησης είναι αντικειμενική. Παίρνουν ένα σημείο σε ένα έργο όπου υπήρχε πραγματικό ελάττωμα και ένα σύνολο δοκιμών που αποτύγχαναν εκείνη την περίοδο. Στο εργαλείο δίνεται η περιγραφή του προβλήματος και επεξεργάζεται τον κώδικα. Έπειτα εκτελούνται οι ίδιες δοκιμές: αν γίνουν πράσινες, η εργασία έχει πράγματι λυθεί· εδώ κανείς δεν βασίζεται σε προφορικές υποσχέσεις.

Συλλέξαμε 2,294 εργασίες εξετάζοντας pull requests και issues από 12 δημοφιλή αποθετήρια Python. Κάθε εργασία βασίζεται σε ένα pull request που συνδέεται με ένα issue και αλλάζει τουλάχιστον ένα αρχείο σχετικό με δοκιμές.

— SWE-bench, επίσημος ιστότοπος benchmark

Τα αρχικά στοιχεία δείχνουν πόσο δυσκολότερο είναι αυτό από τις απλές εργασίες. Η πρώτη προσέγγιση αναφοράς σημείωσε μόλις 1.96 τοις εκατό στο SWE-bench, ενώ ο πρώτος agent σημείωσε 12.47 τοις εκατό. Με άλλα λόγια, ακόμη και η προσέγγιση της πραγματικής εργασίας προγραμματισμού ήταν δύσκολη. Τα ποσοστά αυξήθηκαν αργότερα, αλλά ξεκίνησαν κοντά στο μηδέν.

Επομένως, όταν βλέπετε μεγάλους αριθμούς σε μια σημερινή κατάταξη AI coding agents, συνήθως προέρχονται από το SWE-bench ή από το υποσύνολό του των 500 εργασιών που έχουν επαληθευτεί από ανθρώπους, το οποίο ονομάζεται SWE-bench Verified. Είναι ένα εύλογο benchmark. Έχει όμως κι αυτό συνθήκες, χωρίς τις οποίες το ποσοστό είναι παραπλανητικό, και αυτό θα συζητήσω στη συνέχεια.

Ακόμη και το πιο ειλικρινές benchmark σε έναν πίνακα δεν αποτελεί ακόμη αποτέλεσμα στο δικό σας έργο. Η έκβαση εξαρτάται από τον τρόπο που εργάζεστε με το εργαλείο, ενώ η πρώτη γραμμή της κατάταξης καθορίζει ελάχιστα. Το καθαρό context βελτιώνει το προσωπικό ποσοστό επιτυχίας σας πολύ πιο αισθητά από την επιλογή ενός μοντέλου από πίνακα.

Γιατί εμφανίζεται διαφορετικό ποσοστό για το ίδιο μοντέλο;

Κύριο συμπέρασμα

Επειδή το αποτέλεσμα εξαρτάται από περισσότερα πράγματα πέρα από το μοντέλο. Σε κάθε μέτρηση συμμετέχουν τουλάχιστον τρία στοιχεία: το ίδιο το μοντέλο, ο agent wrapper γύρω του και το επίπεδο συλλογισμού που ενεργοποιήθηκε. Η αλλαγή ρύθμισης συλλογισμού μπορεί να παράγει διαφορετικές γραμμές για το ίδιο μοντέλο και agent wrapper. Χωρίς όνομα πλαισίου εκτέλεσης, αναθεώρηση, ρυθμίσεις και χρονολογημένη πηγή, οι γραμμές δεν στηρίζουν αριθμητική σύγκριση. Επομένως, χρειάζεται να συγκρίνετε τους πλήρεις συνδυασμούς, καθώς το όνομα της μάρκας του μοντέλου από μόνο του δεν καθορίζει πολλά.

Εδώ κρύβεται το συνηθέστερο λάθος στην ανάγνωση benchmark. Οι άνθρωποι διαβάζουν έναν πίνακα ως κατάταξη μοντέλων: αυτό το μοντέλο είναι δύο τοις εκατό εξυπνότερο από εκείνο. Όμως το ποσοστό επηρεάζεται από τρία πράγματα και το μοντέλο είναι μόνο ένα από αυτά.

Πρώτον, το ίδιο το μοντέλο. Δεύτερον, το agent wrapper γύρω του: ένα πρόγραμμα που επιτρέπει στο μοντέλο να περιηγείται σε αρχεία, να εκτελεί εντολές, να διαβάζει σφάλματα και να ξαναγράφει κώδικα. Το ίδιο μοντέλο σε ένα έξυπνο wrapper και σε ένα απλό θα έχει διαφορετικά αποτελέσματα, επειδή το wrapper καθορίζει πώς συνεργάζεται το μοντέλο με το έργο. Τρίτον, το επίπεδο συλλογισμού — δηλαδή, πόσο βαθιά εξετάζει το μοντέλο κάθε βήμα. Όσο περισσότερο σκέφτεται, τόσο υψηλότερο είναι συνήθως το ποσοστό, αλλά και το κόστος.

Μια αναπαραγώγιμη σύγκριση πρέπει να διατηρεί ολόκληρη τη διαμόρφωση. Χρησιμοποιήστε αυτό ως πρότυπο αναφοράς, όχι μετρημένη κατάταξη:

ΠεδίοΕκτέλεση AΕκτέλεση B
Μοντέλο και ακριβής έκδοσηΚαταγράψτε τη δοκιμασμένη έκδοσηΊδια έκδοση για ελεγχόμενη σύγκριση
Πλαίσιο agent και αναθεώρησηΚαταγράψτε αποθετήριο και commitΊδιο πλαίσιο και commit
Σύνολο εργασιών και βαθμολόγησηΚαταγράψτε υποσύνολο και αναθεώρηση αξιολόγησηςΊδιο σύνολο και βαθμολόγηση
Ρύθμιση συλλογισμούΚαταγράψτε τη ρύθμιση AΚαταγράψτε τη ρύθμιση B
Αποτέλεσμα και στοιχείαΠλήθος λύσεων, παρονομαστής, logs, ημερομηνίαΠλήθος λύσεων, παρονομαστής, logs, ημερομηνία

Έτσι βλέπετε τι άλλαξε και αν η σύγκριση απομονώνει πράγματι τη ρύθμιση συλλογισμού. Το προηγούμενο αριθμητικό παράδειγμα χωρίς σύνδεσμο δεν αντιμετωπίζεται ως μετρημένο αποτέλεσμα.

Ο κανόνας είναι ο εξής: μια καλή κατάταξη αναφέρει πάντα ποιο μοντέλο, ποιο wrapper και ποιο επίπεδο συλλογισμού χρησιμοποιήθηκαν. Αν ο πίνακας έχει μόνο το όνομα ενός μοντέλου και ένα ποσοστό, χωρίς να προσδιορίζει το wrapper, είναι δύσκολο να τον εμπιστευτείτε: δεν γνωρίζετε τι μετρήθηκε στην πραγματικότητα. Περισσότερα για το τι περιλαμβάνει ο συνδυασμός «μοντέλο συν wrapper» εξηγούνται στο άρθρο για την κατάταξη AI coding agents.

Αυτό απαντά επίσης στο γιατί ένα εργαλείο με κορυφαία βαθμολογία δυσκολεύεται μερικές φορές για εσάς. Το benchmark μετρά ένα μοντέλο μέσα στο βελτιωμένο wrapper κάποιου άλλου, πάνω στις εργασίες κάποιου άλλου. Το δικό σας wrapper, το έργο σας και το context που δίνετε στο μοντέλο είναι διαφορετικά. Στο δικό σας έργο, η έκβαση εξαρτάται από το context· η γραμμή του πίνακα είναι δευτερεύουσα.

Γιατί «λήγουν» οι εργασίες και τι είναι η διαρροή δεδομένων εκπαίδευσης;

Κύριο συμπέρασμα

Τα μοντέλα εκπαιδεύονται με τεράστιες ποσότητες κειμένου και κώδικα από το διαδίκτυο, ενώ τα δημοφιλή benchmarks είναι δημόσια διαθέσιμα. Αν οι εργασίες και οι λύσεις τους περιλήφθηκαν στα δεδομένα εκπαίδευσης, το μοντέλο μπορεί να τις έχει απομνημονεύσει και, κατά την αξιολόγηση, απλώς να αναπαράγει όσα απομνημόνευσε αντί να τις λύνει. Αυτό ονομάζεται διαρροή εργασιών στα δεδομένα εκπαίδευσης. Όσο παλαιότερο και πιο γνωστό είναι το σύνολο, τόσο μεγαλύτερος ο κίνδυνος: ένα παλιό benchmark είναι πιθανότερο να δείχνει τη μνήμη του μοντέλου παρά την ικανότητα συλλογισμού του. Τα πρόσφατα και κλειστά σύνολα εργασιών είναι πιο αξιόπιστα από τα παλιά και δημόσια.

Εδώ βρίσκεται η παγίδα που δεν φαίνεται στο ίδιο το ποσοστό, αλλά το υπονομεύει περισσότερο από οτιδήποτε άλλο. Τα μοντέλα εκπαιδεύονται με τεράστιες ποσότητες κειμένου και κώδικα που συλλέγονται από το διαδίκτυο. Και σχεδόν όλα τα coding benchmarks είναι δημόσια διαθέσιμα: οι εργασίες, οι δοκιμές και οι λύσεις αναφοράς.

Ο μηχανισμός είναι απλός. Αν μια εργασία και η σωστή λύση της περιλήφθηκαν στα δεδομένα εκπαίδευσης, το μοντέλο μπορεί να τις έχει απομνημονεύσει. Κατά την αξιολόγηση, τότε δεν λύνει τόσο την εργασία όσο ανασύρει από τη μνήμη μια γνώριμη απάντηση. Μοιάζει με λύση, αλλά είναι απλώς ανάμνηση. Αυτό ονομάζεται διαρροή εκπαίδευσης ή επιμόλυνση δεδομένων.

Όσο παλαιότερο και δημοφιλέστερο είναι το σύνολο εργασιών, τόσο μεγαλύτερος είναι ο κίνδυνος. Το HumanEval είναι διαθέσιμο στο διαδίκτυο από το 2021· έχει ξαναγραφτεί, αναλυθεί και συμπεριληφθεί σε αμέτρητα σύνολα δεδομένων πολλές φορές. Θα ήταν παράξενο να περιμένει κανείς ότι ένα σύγχρονο μοντέλο δεν το έχει «δει». Γι’ αυτό η επικαιρότητα των εργασιών αποτελεί ξεχωριστό δείκτη ποιότητας ενός benchmark. Ένα καλό σύνολο είτε ενημερώνεται τακτικά είτε κρατά κάποιες εργασίες κλειστές, ώστε να μην είναι δυνατό να απομνημονευτούν εκ των προτέρων.

Τι πρέπει να κάνετε όταν διαβάζετε μια κατάταξη; Ελέγξτε την ημερομηνία των εργασιών και αν το σύνολο ενημερώνεται. Αν ένα benchmark βασίζεται σε πρόσφατα ελαττώματα των τελευταίων μηνών, αξίζει μεγαλύτερη εμπιστοσύνη. Αν πρόκειται για σύνολο πέντε ετών, ένα υψηλό ποσοστό λέει περισσότερα για την καλή μνήμη του μοντέλου παρά για την ικανότητά του να λύνει τη νέα σας εργασία. Αυτό το συγκεκριμένο φαινόμενο παρουσιάζεται με ένα απτό παράδειγμα στο άρθρο για το πρόσφατο benchmark FrontierCode, του οποίου οι εργασίες ήταν σκόπιμα καινούργιες.

Γιατί μια διαφορά δύο ποσοστιαίων μονάδων συχνά δεν σημαίνει τίποτα;

Κύριο συμπέρασμα

Τα benchmarks έχουν διακύμανση: το ίδιο εργαλείο στις ίδιες εργασίες δίνει ελαφρώς διαφορετικά αποτελέσματα σε διαφορετικές εκτελέσεις, επειδή το μοντέλο δεν αποκρίνεται πάντα με τον ίδιο τρόπο. Γι’ αυτό, μια διαφορά μίας ή δύο μονάδων ανάμεσα σε γειτονικές γραμμές μιας κατάταξης συχνά χάνεται μέσα στον θόρυβο και δεν υποδεικνύει πραγματική υπεροχή. Ελέγξτε επίσης χωριστά την τιμή: παρόμοια ποσοστά μπορεί να κοστίζουν πολλές φορές περισσότερο. Συγκρίνετε κόστος μόνο όταν δηλώνονται και οι δύο πλήρεις διαμορφώσεις, ποσοστά επιτυχίας, παραδοχές χρέωσης και ο παρονομαστής κόστους.

Ένα ακόμη στοιχείο κάνει την πρώτη θέση σε έναν πίνακα παραπλανητική: ένα μοντέλο δεν αποκρίνεται με τον ίδιο τρόπο κάθε φορά. Στην ίδια προτροπή, μπορεί να ακολουθήσει ελαφρώς διαφορετική πορεία συλλογισμού. Έτσι, αν εκτελέσετε ένα εργαλείο αρκετές φορές στο ίδιο σύνολο εργασιών, το ποσοστό θα παρουσιάζει μικρές διακυμάνσεις από εκτέλεση σε εκτέλεση. Αυτή η διακύμανση ονομάζεται variance.

Το πρακτικό συμπέρασμα είναι απλό. Όταν δύο γραμμές μιας κατάταξης διαφέρουν κατά μία ή δύο ποσοστιαίες μονάδες, η διαφορά αυτή μπορεί εύκολα να είναι θόρυβος. Είναι ανόητο να κυνηγάτε ένα εργαλείο που είναι «δύο τοις εκατό υψηλότερα»: στην επόμενη εκτέλεση μπορεί κάλλιστα να αλλάξουν θέση. Μια διαφορά αξίζει να θεωρηθεί σημαντική όταν είναι αισθητή και διατηρείται σε μεγάλο σύνολο εργασιών· μερικές μονάδες δεν αρκούν.

Και το τελευταίο στοιχείο, που σχεδόν πάντα είναι σημαντικότερο από το ίδιο το ποσοστό, είναι η τιμή. Παρόμοια αποτελέσματα μπορεί να κοστίζουν πολύ διαφορετικά ποσά. Μια σύγκριση κόστους χρειάζεται και τις δύο διαμορφώσεις μοντέλου και πλαισίου και την πλήρη δαπάνη του αξιολογούμενου συνόλου, μαζί με αποτυχημένες προσπάθειες. Διαιρέστε με τις επιχειρηθείσες εργασίες για κόστος ανά προσπάθεια ή με τις λυμένες για κόστος ανά λυμένη εργασία και σημειώστε ποιο χρησιμοποιείτε. Το άρθρο δεν παρέχει τεκμηριωμένη ζευγαρωμένη μέτρηση κόστους. Επομένως, διαβάζετε πάντα κάθε γραμμή κατάταξης μαζί με την τιμή της, επειδή το ποσοστό από μόνο του λέει ελάχιστα. Το άρθρο για το κόστος μιας λυμένης εργασίας εξηγεί πώς να συγκρίνετε δίκαια τα εργαλεία ως προς το κόστος.

Πώς μπορείτε να διαβάσετε οποιονδήποτε πίνακα benchmark σε ένα λεπτό;

Κύριο συμπέρασμα

Πριν βασιστείτε σε μια κατάταξη, εξετάστε την με επτά ερωτήσεις: Ποιο σύνολο εργασιών; Είναι οι εργασίες πρόσφατες ή παλιές; Ποιο μοντέλο; Ποιο agent wrapper; Ποιο επίπεδο συλλογισμού; Ποιο είναι το κόστος ανά εργασία; Πόσο μεγάλη είναι η διακύμανση; Αν ο πίνακας δεν απαντά τουλάχιστον στις μισές, δεν μπορείτε να τον εμπιστευτείτε: πιθανότατα είναι διαφήμιση. Ελέγξτε χωριστά αν οι εργασίες του συνόλου μοιάζουν με την πραγματική σας εργασία, καθώς ακόμη και ένα ειλικρινές ποσοστό σε εργασίες κάποιου άλλου δεν μεταφέρεται στο έργο σας.

Ας συμπυκνώσω τα πάντα σε μια σύντομη λίστα ελέγχου. Ανοίξτε οποιονδήποτε πίνακα κατάταξης και περάστε από τα παρακάτω επτά σημεία με τη σειρά.

  1. Ποιο σύνολο εργασιών; Το HumanEval είναι πλέον αδύναμο· το SWE-bench προσεγγίζει περισσότερο την πραγματική εργασία. Αν το σύνολο δεν κατονομάζεται καθόλου, δεν χρειάζεται να διαβάσετε παρακάτω.
  2. Είναι οι εργασίες πρόσφατες ή παλιές; Ένα πρόσφατο ή μερικώς κλειστό σύνολο είναι πιο αξιόπιστο από ένα παλιό δημόσιο σύνολο που μπορεί να έχει απομνημονεύσει το μοντέλο.
  3. Ποιο μοντέλο μετρήθηκε; Το ακριβές όνομα και η έκδοση, όχι ένα αόριστο «AI» ή το όνομα μιας οικογένειας μοντέλων.
  4. Ποιο agent wrapper; Το ποσοστό ανήκει στον συνδυασμό «μοντέλο συν wrapper». Αν δεν προσδιορίζεται το wrapper, δεν γνωρίζετε τι μετρήθηκε.
  5. Ποιο επίπεδο συλλογισμού; Το ίδιο μοντέλο σε διαφορετικά επίπεδα δίνει διαφορετικά ποσοστά και διαφορετικό κόστος.
  6. Πόσο κοστίζει μια εργασία; Παρόμοια αποτελέσματα μπορεί να διαφέρουν πολλαπλάσια σε τιμή. Διαβάστε το ποσοστό μαζί με το κόστος.
  7. Ποια είναι η διακύμανση; Μια διαφορά μίας ή δύο μονάδων ανάμεσα στις γραμμές συχνά είναι απλώς θόρυβος.

Υπάρχει και όγδοη ερώτηση, που αφορά εσάς: Μοιάζουν οι εργασίες του συνόλου με τη δική σας εργασία; Ένα benchmark εργασιών Python λέει λίγα σε κάποιον που κατασκευάζει ιστότοπο ή bot με διαφορετικά εργαλεία. Ακόμη και ένα ειλικρινές ποσοστό στις εργασίες κάποιου άλλου δεν εγγυάται αποτέλεσμα στο δικό σας έργο. Υπάρχει μόνο ένας αξιόπιστος τρόπος να το ελέγξετε: εκτελέστε μερικές χαρακτηριστικές εργασίες σας στο εργαλείο και δείτε μόνοι σας το αποτέλεσμα. Το άρθρο για το πώς να ελέγξετε κώδικα που δημιουργήθηκε από AI εξηγεί πώς να διαπιστώσετε αν λειτουργεί ο κώδικας, ακόμη κι αν δεν προγραμματίζετε.

Τι πρέπει τελικά να εξετάσετε;

Κύριο συμπέρασμα

Εξετάστε τις συνθήκες κάτω από την πρώτη γραμμή και όχι μόνο την ίδια την πρώτη γραμμή: το σύνολο εργασιών και πόσο πρόσφατο είναι, τον συνδυασμό «μοντέλο συν wrapper», το επίπεδο συλλογισμού, το κόστος ανά εργασία και το μέγεθος της διακύμανσης. Ένα σκέτο ποσοστό χωρίς αυτές τις συνθήκες δεν αποδεικνύει τίποτα. Και να θυμάστε ότι ακόμη και ένα ειλικρινές ποσοστό σε εργασίες κάποιου άλλου δεν μεταφέρεται στο έργο σας: τον τελευταίο λόγο έχει πάντα η δοκιμή με τις δικές σας πραγματικές εργασίες, ενώ το αποτέλεσμά σας σε αυτές εξαρτάται περισσότερο από τον τρόπο που εργάζεστε με το εργαλείο παρά από τη θέση του στην κατάταξη.

Το βασικό σημείο ολόκληρου του άρθρου είναι σύντομο: μια θέση στην κατάταξη είναι λόγος να εξετάσετε πιο προσεκτικά ένα εργαλείο, αλλά θα χρειαστεί να ψάξετε βαθύτερα μόνοι σας. Ένα μεγάλο ποσοστό λέει μόνο ότι ένα εργαλείο τα πήγε αρκετά καλά σε έναν συγκεκριμένο κλειστό κατάλογο εργασιών υπό συγκεκριμένες συνθήκες. Το ποσοστό δεν δείχνει αν αυτές οι συνθήκες ταιριάζουν στις δικές σας.

Διαβάστε, λοιπόν, τι βρίσκεται κάτω από τη γραμμή της κατάταξης: ποιες εργασίες, πόσο πρόσφατες είναι, ποιος συνδυασμός μοντέλου και wrapper χρησιμοποιήθηκε, ποιο επίπεδο συλλογισμού, πόσο κοστίζει και αν η διαφορά χάνεται μέσα στον θόρυβο. Ένας πίνακας που δεν απαντά σε αυτές τις ερωτήσεις ανήκει σε ένα διαφημιστικό banner. Η κριτική ποιο εργαλείο να χρησιμοποιήσετε για προγραμματισμό το 2026 εξηγεί ποιο εργαλείο να επιλέξετε εξαρχής για τις εργασίες σας.

Και να τι έχει μεγαλύτερη σημασία από οποιοδήποτε benchmark. Ακόμη και το καλύτερο εργαλείο στην κατάταξη δυσκολεύεται με ακατάστατο context και λειτουργεί καλά με καθαρό context. Το προσωπικό σας ποσοστό επιτυχίας εξαρτάται από το τι δίνετε στο μοντέλο και πώς διατυπώνετε την εργασία· η γραμμή στον πίνακα είναι δευτερεύουσα. Η κατάταξη βοηθά να αποκλείσετε τις σαφώς αδύναμες επιλογές, αλλά το αποτέλεσμα το παράγετε εσείς.

Πηγές

Για τη συνέχεια της εργασίας σας — Ailoot.

Περισσότερες λεπτομέρειες

Ερωτήσεις και απαντήσεις: Πώς να διαβάζετε τα benchmarks προγραμματισμού με AI και να αποφεύγετε τους «νικητές στα χαρτιά»

Τι πρέπει να καταγραφεί πριν συγκρίνω δύο γραμμές benchmark;

Καταγράψτε ακριβές μοντέλο, πλαίσιο agent και αναθεώρηση, ρυθμίσεις συλλογισμού, υποσύνολο εργασιών, μέθοδο βαθμολόγησης, ημερομηνία και άμεση πηγή αποτελέσματος. Χωρίς αυτά, μια διαφορά βαθμολογίας δεν αποδίδεται σε μία αλλαγμένη ρύθμιση.

Το κόστος ανά επιχειρηθείσα εργασία είναι ίδιο με το κόστος ανά λυμένη;

Όχι. Διαιρέστε τη συνολική δαπάνη αξιολόγησης με όλες τις επιχειρηθείσες εργασίες για το πρώτο μέτρο ή με τις λυμένες για το δεύτερο. Συμπεριλάβετε δαπάνη αποτυχημένων προσπαθειών και σημειώστε τον παρονομαστή πριν συγκρίνετε τιμές.

Όλα τα άρθρα