Οι συν-προγραμματιστές της τεχνητής νοημοσύνης ίσως δεν θα δημιουργήσουν τόσα σφάλματα όπως το φοβερό PlatoBlockchain Data Intelligence. Κάθετη αναζήτηση. Ολα συμπεριλαμβάνονται.

Οι συν-προγραμματιστές τεχνητής νοημοσύνης ίσως δεν θα δημιουργήσουν τόσα σφάλματα όπως φοβόμασταν

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

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

In ένα χαρτί που διανεμήθηκε μέσω των ArXiv, Gustavo Sandoval, Hammond Pearce, Teo Nys, Ramesh Karri, Brendan Dolan-Gavitt και Siddharth Garg αφηγούνται πώς έθεσαν σε δοκιμασία την ασφάλεια του πηγαίου κώδικα που δημιουργήθηκε με τη βοήθεια μεγάλων γλωσσικών μοντέλων (LLM).

Οι LLMs όπως η οικογένεια OpenAI GPT έχουν εκπαιδευτεί σε τεράστιες ποσότητες δεδομένων δημόσιου κειμένου ή δημόσιου πηγαίου κώδικα στην περίπτωση του Codex του OpenAI, ενός απόγονου GPT και της βάσης του Copilot του GitHub. Ως εκ τούτου, μπορεί να αναπαράγουν σφάλματα που έγιναν στο παρελθόν από ανθρώπινους προγραμματιστές, απεικονίζοντας το αξίωμα «σκουπίδια μέσα, σκουπίδια έξω». Υπήρχε ο φόβος ότι αυτά τα εργαλεία θα επανέλθουν και θα πρότειναν κακό κώδικα στους προγραμματιστές, οι οποίοι θα εισήγαγαν το υλικό στα έργα τους.

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

Κατά κάποιο τρόπο, οι ερευνητές έσβηναν τη δική τους φωτιά. Πριν από περίπου ένα χρόνο, δύο από τους ίδιους επιστήμονες υπολογιστών συνεισέφεραν σε μια εργασία με τίτλο «Sleep at the Keyboard? Αξιολόγηση της ασφάλειας των συνεισφορών κώδικα του GitHub Copilot.” Αυτό το έργο βρέθηκε περίπου τοις εκατό 40 της παραγωγής από το Copilot περιλάμβανε δυνητικά εκμεταλλεύσιμες αδυναμίες (CWE).

"Η διαφορά μεταξύ των δύο εγγράφων είναι ότι το "Sleep at the Keyboard" εξέταζε την πλήρως αυτοματοποιημένη δημιουργία κώδικα (χωρίς άνθρωπο στο βρόχο) και δεν είχαμε ανθρώπους χρήστες με τους οποίους να συγκρίνουμε, επομένως δεν μπορούσαμε να πούμε τίποτα για το πώς η ασφάλεια του Copilot's σε σύγκριση με την ασφάλεια του ανθρώπινου γραμμένου κώδικα», δήλωσε ο Brendan Dolan-Gavitt, συν-συγγραφέας και στις δύο εργασίες και επίκουρος καθηγητής στο τμήμα επιστήμης υπολογιστών και μηχανικής στο NYU Tandon, σε ένα email στο Το μητρώο.

«Το χαρτί μελέτης χρήστη προσπαθεί να αντιμετωπίσει άμεσα αυτά τα κομμάτια που λείπουν, ζητώντας από τους μισούς χρήστες βοήθεια από το Codex (το μοντέλο που τροφοδοτεί το Copilot) και βάζοντας τους άλλους μισούς να γράψουν οι ίδιοι τον κώδικα. Ωστόσο, είναι επίσης πιο στενό από το "Sleep at the Keyboard": εξετάσαμε μόνο μία εργασία και μία γλώσσα (γράφοντας μια συνδεδεμένη λίστα στο C).

Στην πιο πρόσφατη έκθεση, «Επιπτώσεις ασφαλείας των Βοηθών Κώδικα Μοντέλων Μεγάλων Γλωσσών: Μια Μελέτη Χρήστη», ένα ελαφρώς ποικίλο σύνολο ερευνητών του NYU αναγνωρίζει ότι η προηγούμενη εργασία αποτυγχάνει να μοντελοποιήσει ρεαλιστικά τη χρήση εργαλείων που βασίζονται σε LLM, όπως το Copilot.

«Πρώτον, αυτές οι μελέτες υποθέτουν ότι ολόκληρος ο κώδικας δημιουργείται αυτόματα από το LLM (θα το ονομάσουμε αυτόματο πιλότο)», εξηγούν οι boffins στο έγγραφό τους.

«Στην πράξη, τα LLM συμπλήρωσης κώδικα βοηθούν τους προγραμματιστές με προτάσεις που θα επιλέξουν να αποδεχτούν, να επεξεργαστούν ή να απορρίψουν. Αυτό σημαίνει ότι ενώ οι προγραμματιστές που είναι επιρρεπείς σε μεροληψία αυτοματισμού ενδέχεται να αποδέχονται αφελώς συμπληρώσεις σφαλμάτων, άλλοι προγραμματιστές μπορεί να παράγουν λιγότερο buggy κώδικα χρησιμοποιώντας τον χρόνο που εξοικονομείται για τη διόρθωση σφαλμάτων."

Δεύτερον, παρατηρούν ότι ενώ τα LLM έχουν αποδειχθεί ότι παράγουν buggy κώδικα, το κάνουν και οι άνθρωποι. Τα σφάλματα στα δεδομένα εκπαίδευσης LLM προήλθαν από άτομα.

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

Οι επιστήμονες υπολογιστών του NYU στρατολόγησαν 58 συμμετέχοντες στην έρευνα –προπτυχιακούς και μεταπτυχιακούς φοιτητές σε μαθήματα ανάπτυξης λογισμικού– και τους χώρισαν σε μια ομάδα ελέγχου, η οποία θα εργαζόταν χωρίς προτάσεις και μια ομάδα υποβοηθούμενης, η οποία είχε πρόσβαση σε ένα προσαρμοσμένο σύστημα προτάσεων που δημιουργήθηκε με χρήση του OpenAI Codex API. Χρησιμοποίησαν επίσης το μοντέλο Codex για να δημιουργήσουν 30 λύσεις στα δεδομένα προγραμματισμού ως σημείο σύγκρισης. Αυτή η ομάδα αυτόματου πιλότου λειτουργούσε κυρίως ως δεύτερη ομάδα ελέγχου.

Τόσο η ομάδα υποβοηθούμενης όσο και η ομάδα ελέγχου είχαν τη δυνατότητα να συμβουλεύονται πόρους ιστού, όπως το Google και το Stack Overflow, αλλά όχι να ζητούν βοήθεια από άλλους. Η εργασία έγινε στον κώδικα του Visual Studio μέσα σε ένα κοντέινερ που βασίζεται στον ιστό που έχει δημιουργηθεί με ανοιχτό κώδικα Anubis.

Ζητήθηκε από τους συμμετέχοντες να ολοκληρώσουν ένα πρόγραμμα λίστας αγορών χρησιμοποιώντας τη γλώσσα προγραμματισμού C επειδή «είναι εύκολο για τους προγραμματιστές να εκφράσουν κατά λάθος ευάλωτα μοτίβα σχεδίασης στο C» και επειδή η αλυσίδα εργαλείων μεταγλωττιστή C που χρησιμοποιείται δεν ελέγχει για σφάλματα του ίδιου βαθμού αλυσίδες εργαλείων για σύγχρονες γλώσσες, όπως το Go και το Rust, το κάνουν.

Όταν οι ερευνητές ανέλυσαν χειροκίνητα τον κώδικα που παρήχθη από τις ομάδες Ελέγχου και Βοηθού, διαπίστωσαν ότι, σε αντίθεση με την προηγούμενη εργασία, οι προτάσεις κώδικα AI δεν χειροτέρεψαν τα πράγματα συνολικά.

Φαίνεται ξεκάθαρο, αλλά υπάρχουν λεπτομέρειες

«[Δεν] βρήκαμε στοιχεία που να υποδεικνύουν ότι η βοήθεια του Codex αυξάνει τα κρούσματα σφαλμάτων ασφαλείας», ανέφερε η εφημερίδα, σημειώνοντας παράλληλα ότι το μικρό μέγεθος δείγματος της μελέτης σημαίνει ότι απαιτείται περαιτέρω μελέτη. «Αντίθετα, υπάρχουν κάποια στοιχεία που υποδηλώνουν ότι τα CWE/LoC [γραμμές κώδικα] μειώνονται με τη βοήθεια του Codex».

«Είναι δύσκολο να το συμπεράνουμε με μεγάλη στατιστική σιγουριά», είπε ο Siddharth Garg, ερευνητής κυβερνοασφάλειας και αναπληρωτής καθηγητής στο τμήμα μηχανικών στο NYU Tandon, σε μια τηλεφωνική συνέντευξη με Το μητρώο.

Είναι δύσκολο να το συμπεράνει κανείς με μεγάλη στατιστική σιγουριά

Ωστόσο, είπε, «Τα δεδομένα δείχνουν ότι οι χρήστες του Copilot δεν ήταν πολύ χειρότερα».

Ο Dolan-Gavitt είναι εξίσου προσεκτικός σχετικά με τα ευρήματα.

«Η τρέχουσα ανάλυση των αποτελεσμάτων της μελέτης χρηστών μας δεν έχει βρει στατιστικά σημαντικές διαφορές – εξακολουθούμε να το αναλύουμε, συμπεριλαμβανομένης της ποιοτικής, επομένως δεν θα έβγαζα ισχυρά συμπεράσματα από αυτό, ιδιαίτερα επειδή ήταν μια μικρή μελέτη (συνολικά 58 χρήστες) και Οι χρήστες ήταν όλοι φοιτητές και όχι επαγγελματίες προγραμματιστές», είπε.

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

Πέρα από αυτό, προέκυψαν κάποιες άλλες ιδέες. Το ένα είναι ότι οι συμμετέχοντες στην ομάδα του Βοηθού ήταν πιο παραγωγικοί, δημιουργώντας περισσότερες γραμμές κώδικα και ολοκληρώνοντας ένα μεγαλύτερο μέρος των λειτουργιών στην ανάθεση.

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

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

Οι boffins διαπίστωσαν επίσης ότι τα εργαλεία τεχνητής νοημοσύνης πρέπει να λαμβάνονται υπόψη στο πλαίσιο σφαλμάτων χρήστη. «Οι χρήστες παρέχουν προτροπές που μπορεί να περιλαμβάνουν σφάλματα, αποδέχονται προτροπές σφαλμάτων που καταλήγουν στα «ολοκληρωμένα» προγράμματα καθώς και αποδέχονται σφάλματα που αργότερα αφαιρούνται», αναφέρει η εφημερίδα. "Σε ορισμένες περιπτώσεις, οι χρήστες καταλήγουν επίσης με περισσότερα σφάλματα από αυτά που πρότεινε το μοντέλο!"

Αναμένετε περαιτέρω δουλειά προς αυτή την κατεύθυνση. ®

Σφραγίδα ώρας:

Περισσότερα από Το μητρώο