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

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

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

Τι είναι το BugLab και πώς λειτουργεί;

Το BugLab είναι μια εφαρμογή Python τεχνητής νοημοσύνης που αναζητά και διορθώνει σφάλματα στον κώδικα. Αναπτύχθηκε από τους Miltos Alamanis και Marc Brockschmidt, δύο ερευνητές της Microsoft Research. Κατάφεραν να ξεπεράσουν την έλλειψη επισημασμένων δεδομένων που χρησιμοποιούνται συχνά μηχανική μάθηση καταφεύγοντας σε αυτοεποπτευόμενη μάθηση και επιτρέποντας στο BugLab να εκπαιδεύεται μέσα από ένα παιχνίδι «κρυφτού» με γραμμές κώδικα.

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

Κατανόηση του Κώδικα με το BugLab

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

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

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

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

Λειτουργεί το BugLab σε πραγματικό κώδικα;

Είναι σημαντικό να σημειωθεί ότι το BugLab δεν αντικαθιστά έναν εξειδικευμένο προγραμματιστή. Αυτό συμβαίνει επειδή τα πολύπλοκα σφάλματα εξακολουθούν να μην είναι προσβάσιμα.

Ο στόχος της Microsoft με την τεχνητή νοημοσύνη είναι να ανιχνεύει και να διορθώνει συχνά σφάλματα όπως εσφαλμένους τελεστές Boolean, όπως η χρήση του "or" αντί του "and" και αντίστροφα, επιπλέον των συγκρίσεων ανεστραμμένων τιμών και της μεταβλητής καταχρήσεις.

Σύμφωνα με Microsoft, τα αποτελέσματα είναι πολλά υποσχόμενα, καθώς το BugLab είναι σε θέση να ανιχνεύει και να διορθώνει αυτόματα περίπου το 26 τοις εκατό των σφαλμάτων σε ένα κομμάτι κώδικα. Ωστόσο, ένα σημαντικό ποσοστό ακρίβειας εξακολουθεί να χάνεται λόγω ψευδών θετικών και χαμένων σφαλμάτων.

Μελλοντικές εφαρμογές του Microsoft BugLab

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

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

Η Εκθετική Εξέλιξη της Αυτοδιδακτικής ΤΝ

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

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

Deep Learning vs. Μηχανική Μάθηση vs. AI: Πώς πάνε μαζί;

Προσπαθείτε να βρείτε τη διαφορά μεταξύ τεχνητής νοημοσύνης, μηχανικής μάθησης και βαθιάς μάθησης; Να τι σημαίνουν όλα.

Διαβάστε Επόμενο

ΜερίδιοΤιτίβισμαΗΛΕΚΤΡΟΝΙΚΗ ΔΙΕΥΘΥΝΣΗ
Σχετικά θέματα
  • Προγραμματισμός
  • Microsoft
  • Συμβουλές κωδικοποίησης
  • Τεχνητή νοημοσύνη
Σχετικά με τον Συγγραφέα
Ανίνα Οτ (Δημοσιεύτηκαν 89 άρθρα)

Η Anina είναι ανεξάρτητος συγγραφέας τεχνολογίας και ασφάλειας στο Διαδίκτυο στο MakeUseOf. Άρχισε να γράφει στον τομέα της κυβερνοασφάλειας πριν από 3 χρόνια με την ελπίδα να το κάνει πιο προσιτό στον μέσο άνθρωπο. Θέλετε να μαθαίνετε νέα πράγματα και ένας τεράστιος σπασίκλας της αστρονομίας.

Περισσότερα από την Anina Ot

Εγγραφείτε στο ενημερωτικό μας δελτίο

Εγγραφείτε στο ενημερωτικό μας δελτίο για συμβουλές τεχνολογίας, κριτικές, δωρεάν ebook και αποκλειστικές προσφορές!

Κάντε κλικ εδώ για να εγγραφείτε