Το GitHub άνοιξε τις εξελίξεις στη χρήση της μηχανικής εκμάθησης για αναζήτηση και ανάλυση κώδικα

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

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

Το προτεινόμενο σύνολο δεδομένων περιλαμβάνει περισσότερους από 2 εκατομμύρια συνδέσμους σχολίων κώδικα, που έχουν προετοιμαστεί με βάση τα κείμενα πηγής υπαρχουσών ανοιχτών βιβλιοθηκών. Ο κώδικας καλύπτει το πλήρες κείμενο προέλευσης μεμονωμένων συναρτήσεων ή μεθόδων και το σχόλιο περιγράφει τις ενέργειες που εκτελούνται από τη συνάρτηση (παρέχεται λεπτομερής τεκμηρίωση). Επί του παρόντος, τα σύνολα δεδομένων προετοιμάζονται για Python, JavaScript, Ruby, Go, Java και PHP. Παρέχονται παραδείγματα χρήσης των προτεινόμενων συνόλων δεδομένων για την εκπαίδευση διαφόρων τύπων νευρωνικών δικτύων, συμπεριλαμβανομένων Neural-Bag-Of-Words, RNN, Αυτοπροσοχή (BERT) και 1D-CNN+Self-Attention Hybrid.

Για την ανάπτυξη μηχανισμών αναζήτησης φυσικής γλώσσας, έχει προετοιμαστεί επιπλέον ένα σύνολο CodeSearchNet Challenge, συμπεριλαμβανομένων
99 τυπικό ερωτήματα με περίπου 4 χιλιάδες σχολιασμούς ειδικών που περιγράφουν τις πιο πιθανές συνδέσεις κώδικα στο σύνολο δεδομένων CodeSearchNet Corpus, που καλύπτουν περίπου 6 εκατομμύρια μεθόδους και λειτουργίες (σετ μεγέθους περίπου 20 GB). Το CodeSearchNet Challenge μπορεί να λειτουργήσει ως σημείο αναφοράς για την αξιολόγηση της αποτελεσματικότητας ορισμένων μεθόδων αναζήτησης κώδικα φυσικής γλώσσας. Χρήση εργαλείων KubeFlow έτοιμος
παράδειγμα μηχανή αναζήτησης κώδικα.

Πηγή: opennet.ru

Προσθέστε ένα σχόλιο