Το πιο πρόσφατο μοντέλο δημιουργίας κώδικα της Google – AlphaCode 2, που τροφοδοτείται από το σύστημα Gemini Pro και έκανε το δημόσιο ντεμπούτο του την Τετάρτη – σύμφωνα με πληροφορίες σημείωσε βαθμολογία πάνω από το 99,5 εκατοστημόριο των συμμετεχόντων που διαγωνίστηκαν σε διαγωνισμούς προγραμματισμού στο διαδίκτυο.
Οι ερευνητές από το Google DeepMind συντονίστηκαν καλά Gemini Pro σε ένα σύνολο δεδομένων για να ενισχύσει τις δεξιότητές του στην επίλυση προβλημάτων για τη δημιουργία του AlphaCode 2. Το σύνολο δεδομένων περιείχε περίπου 15.000 προβλήματα που λήφθηκαν από το CodeForces – έναν ανταγωνιστικό ιστότοπο προγραμματισμού – και 30 εκατομμύρια δείγματα κώδικα που γράφτηκαν από ανθρώπους.
Το μοντέλο συντονίστηκε περαιτέρω σε ένα πρόσθετο σύνολο δεδομένων “υψηλότερης ποιότητας”, αλλά δεν είναι πραγματικά σαφές τι είδους δεδομένα χρησιμοποιήθηκαν ή πόσο ακριβώς, σύμφωνα με τις ελάχιστες λεπτομέρειες στο Τεχνική αναφορά [PDF]. Όταν το AlphaCode 2 δοκιμάστηκε σε 77 προβλήματα σε 12 διαγωνισμούς CodeForces – όπου ανταγωνίστηκε περισσότερους από 8.000 προγραμματιστές συνολικά – κατάφερε να λύσει το 43 τοις εκατό από αυτά. Ο AlphaCode 2 υπέβαλε τις απαντήσεις του σε C++.
Για σύγκριση, το προηγούμενο AlphaCode σύστημα έλυσε το 25 τοις εκατό ενός διαφορετικού συνόλου προβλημάτων που τέθηκαν επίσης από την CodeForces.
«Χαρτίζοντας αυτό στην κατάταξη του ανταγωνισμού, υπολογίζουμε ότι ο AlphaCode 2 βρίσκεται στο 85ο εκατοστημόριο κατά μέσο όρο – δηλαδή έχει καλύτερη απόδοση από το 85 [percent of entrants]κατατάσσοντας ακριβώς μεταξύ των κατηγοριών «Εμπειρογνώμονας» και «Υποψήφιος Μάστερ» στο Codeforces», ισχυρίστηκαν οι ερευνητές.
Οι δουλειές σας είναι ασφαλείς… προς το παρόν
Σε δύο διαγωνισμούς από τους δώδεκα στους οποίους διαγωνίστηκε, το AlphaCode 2 ξεπέρασε το 99,5 τοις εκατό των συμμετεχόντων. Αν και εντυπωσιακές, οι συνθήκες ανταγωνισμού ήταν διαφορετικές για τη μηχανή και για τους ανθρώπους.
Ο AlphaCode 2 μπορεί να υποβάλει έως και δέκα διαφορετικές λύσεις για κάθε πρόβλημα και να συγκεντρώσει πόντους, εάν μία από αυτές είναι σωστή – σε αντίθεση με τους ανθρώπους που είναι υποψήφιοι, που μπορούν να λύσουν την πρόκληση.
Ο AlphaCode 2 λειτουργεί επίσης πολύ διαφορετικά από τους βιολογικούς προγραμματιστές. Δεδομένου ενός προβλήματος, δημιουργεί περίπου ένα εκατομμύριο διαφορετικά δείγματα κώδικα, τα οποία στη συνέχεια φιλτράρονται. Τα τυχαία σενάρια που είναι άσχετα και δεν ταιριάζουν με την περιγραφή του προβλήματος – ή εκείνα που δημιουργούν λάθος δείγματα απαντήσεων δοκιμής ή δεν μεταγλωττίζονται καθόλου – καταργούνται.
“Κάθε ανταγωνιστικό πρόβλημα προγραμματισμού περιέχει τουλάχιστον μία δημόσια δοκιμή εισόδου/εξόδου που υποδεικνύει πώς πρέπει να συμπεριφέρονται τα δείγματα κώδικα. Εκτελούμε κάθε δείγμα κώδικα στην αντίστοιχη είσοδο δοκιμής και φιλτράρουμε όλα όσα δεν παράγουν την αναμενόμενη έξοδο και επομένως δεν θα μπορούσαν να ήταν σωστά », εξήγησαν οι ερευνητές.
Το φιλτράρισμα απαλλάσσεται από το 95 τοις εκατό των δειγμάτων κώδικα που δημιουργούνται από τον AlphaCode 2. Στη συνέχεια, ένας αλγόριθμος ομαδοποίησης που συλλέγει ταξινομεί τα 50.000 προγράμματα που απομένουν με βάση την ομοιότητα και τα ταξινομεί σε διαφορετικές ομάδες. Στη συνέχεια, τα δέκα μεγαλύτερα cluster βαθμολογούνται από ένα ξεχωριστό μοντέλο Gemini Pro που έχει εκπαιδευτεί να προβλέπει την ακρίβειά τους. Στη συνέχεια, τα δείγματα στα δέκα διαφορετικά cluster κατατάσσονται από το καλύτερο έως το τελευταίο και υποβάλλεται το πρώτο από κάθε ομάδα.
Οι ανθρώπινοι κωδικοποιητές σκέφτονται συνήθως διαφορετικές στρατηγικές για να λύσουν ένα πρόβλημα, στη συνέχεια λαμβάνουν την πιο πολλά υποσχόμενη ιδέα και την γράφουν, αντί να δοκιμάζουν εκατομμύρια διαφορετικές λύσεις. Η επιτυχία εξαρτάται από την κατανόηση των προβλημάτων και την εξεύρεση έξυπνων μαθηματικών κόλπων για την επίλυσή τους.
Η προσέγγιση ωμής δύναμης του AlphaCode 2 – φιλτράρισμα όλου του κώδικά του και εκτέλεση των διαφορετικών μοντέλων για τη βαθμολογία και την κατάταξη των καλύτερων – είναι υπολογιστικά εντατική, επομένως είναι πιθανώς πολύ ακριβό να κυκλοφορήσει μέχρι να γίνει πιο αποτελεσματικό.
“Παρά τα εντυπωσιακά αποτελέσματα του AlphaCode 2, απομένουν πολλά ακόμη να γίνουν πριν δούμε συστήματα που μπορούν να φτάσουν αξιόπιστα την απόδοση των καλύτερων ανθρώπινων κωδικοποιητών. Το σύστημά μας απαιτεί πολλές δοκιμές και σφάλματα και παραμένει πολύ δαπανηρό για να λειτουργήσει σε κλίμακα. Επιπλέον , βασίζεται σε μεγάλο βαθμό στο να μπορεί να φιλτράρει προφανώς κακά δείγματα κώδικα», παραδέχτηκαν οι ερευνητές.
Ωστόσο, ο AlphaCode 2 είναι μια μεγάλη βελτίωση σε σχέση με τον παλιό AlphaCode και είναι πάνω από 10.000 φορές πιο αποτελεσματικός ως προς το δείγμα, ισχυρίζεται η Google. Απαιτούνται μόνο 100 δείγματα που δημιουργούνται για να επιτευχθεί η ίδια απόδοση με το AlphaCode, για το οποίο χρειαζόταν ένα εκατομμύριο.
Το Google DeepMind πιστεύει ότι θα μπορούσε να δημιουργήσει ένα ακόμα καλύτερο μοντέλο γραφής κώδικα χρησιμοποιώντας το Gemini Ultra – ένα μεγαλύτερο και πιο ισχυρό μοντέλο μεγάλης γλώσσας από το Gemini Pro – και είπε ότι εργάζεται για να προσπαθήσει να κάνει τις δυνατότητές του διαθέσιμες στους προγραμματιστές.
«Ελπίζουμε ότι αυτό το είδος διαδραστικής κωδικοποίησης θα είναι το μέλλον του προγραμματισμού, όπου οι προγραμματιστές χρησιμοποιούν μοντέλα τεχνητής νοημοσύνης υψηλής ικανότητας ως συνεργατικά εργαλεία που μπορούν να τους βοηθήσουν να αιτιολογήσουν τα προβλήματα, να προτείνουν σχέδια κώδικα και να βοηθήσουν στην εφαρμογή», κατέληξε η ομάδα. .
“Εργαζόμαστε για να φέρουμε τις μοναδικές δυνατότητες του AlphaCode 2 στα βασικά μας μοντέλα Gemini ως πρώτο βήμα για να κάνουμε αυτό το νέο πρότυπο προγραμματισμού διαθέσιμο σε όλους.” ®