Evangelos papathomas diploma thesis presentation

ISSEL
ISSELISSEL
Αριστοτέλειο Πανεπιστήμιο Θεσσαλονίκης
Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών
Σημασιολογική Αναζήτηση Κώδικα σε Αποθήκες Λογισμικού
με Τεχνικές Νευρωνικής Μηχανικής Μετάφρασης
Ευάγγελος Παπαθωμάς (ΑΕΜ: 8692)
Επιβλέποντες
Ανδρέας Συμεωνίδης, Αναπληρωτής Καθηγητής
Θεμιστοκλής Διαμαντόπουλος, Μεταδιδακτορικός Ερευνητής
Θεσσαλονίκη, 2020
Δομή Παρουσίασης
• Εισαγωγή
• Υλοποίηση του Συστήματος
• Αξιολόγηση του Συστήματος
• Συμπεράσματα και Μελλοντική Εργασία
• Ερωτήσεις
Σημασιολογική Αναζήτηση Κώδικα σε Αποθήκες Λογισμικού με
Τεχνικές Νευρωνικής Μηχανικής Μετάφρασης
2
Ορισμός του Προβλήματος
• Σήμερα, η ανάπτυξη λογισμικού είναι μία πολύπλοκη και χρονοβόρα διαδικασία.
• Πολλές επιλογές (π.χ. APIs, βιβλιοθήκες, εργαλεία κ.α.)
• Ελλιπείς ή προβληματικοί σχολιασμοί.
Πρόβλημα:
• Αύξηση του φόρτου εργασίας των μηχανικών λογισμικού λόγω της μεγάλης δαπάνης χρόνου για την
αναζήτηση παραδειγμάτων κώδικα χρησιμοποιώντας συμβατικές μηχανές αναζήτησης.
Σκοπός της Διπλωματικής:
• Η δημιουργία ενός Συστήματος Προτάσεων στην Τεχνολογία Λογισμικού (Recommendation Systems in
Software Engineering ή RSSE), το οποίο δέχεται ερωτήματα σε φυσική γλώσσα και προτείνει τμήματα
κώδικα υψηλής ποιότητας.
Σημασιολογική Αναζήτηση Κώδικα σε Αποθήκες Λογισμικού με
Τεχνικές Νευρωνικής Μηχανικής Μετάφρασης
3
RSSEs στη Βιβλιογραφία
Αδυναμίες υπαρχουσών υλοποιήσεων:
• Δε δέχονται ερωτήματα φυσικής γλώσσας.
• Δεν εκμεταλλεύονται τους σχολιασμούς του κώδικα.
• Δεν πραγματοποιούν σημασιολογική ανάλυση του κώδικα.
• Δεν προτείνουν ολοκληρωμένα τμήματα κώδικα.
• Δεν επιτυγχάνουν υψηλές αποδόσεις όσον αφορά την επιστροφή σχετικών αποτελεσμάτων.
Σημασιολογική Αναζήτηση Κώδικα σε Αποθήκες Λογισμικού με
Τεχνικές Νευρωνικής Μηχανικής Μετάφρασης
4
Αρχιτεκτονική του CODEtransformer
Σημασιολογική Αναζήτηση Κώδικα σε Αποθήκες Λογισμικού με
Τεχνικές Νευρωνικής Μηχανικής Μετάφρασης
5
Dataset Builder (1/3)
• Επεξεργασία ακατέργαστων δεδομένων φυσικής γλώσσας και κώδικα.
• Δημιουργία καθαρισμένου συνόλου δεδομένων και λεξιλογίων.
CodeSearchNet Corpus:
• 1.569.889 συναρτήσεις Java από αναγνωρισμένα αποθετήρια του GitHub.
• 542.991 από τις συναρτήσεις συνοδεύονται από σχολιασμούς.
• Σχολιασμοί κώδικα ως δεδομένα φυσικής γλώσσας.
• Δεδομένα φυσικής γλώσσας και κώδικα ήδη χωρισμένα σε συμβολοσειρές.
• Χρήσιμα δεδομένα όπως: ονόματα συναρτήσεων, URLs κ.α.
Σημασιολογική Αναζήτηση Κώδικα σε Αποθήκες Λογισμικού με
Τεχνικές Νευρωνικής Μηχανικής Μετάφρασης
6
Χαρακτηριστικά Δεδομένα
Σχολιασμός
Simplified method form for
invoking the
ListSSHPublicKeys operation
with an AsyncHandler.
@see
#listSSHPublicKeysAsync(List
SSHPublicKeysRequest,
com.amazonaws.handlers.Asyn
cHandler)
Κώδικας
@Overriden public
java.util.concurrent.Future<List
SSHPublicKeysResult>
listSSHPublicKeysAsync(n
com.amazonaws.handlers.Asyn
cHandler<ListSSHPublicKeysR
equest,
ListSSHPublicKeysResult>
asyncHandler) {nn return
listSSHPublicKeysAsync(new
ListSSHPublicKeysRequest(),
asyncHandler);n }
Dataset Builder (2/3)
Προεπεξεργασία δεδομένων φυσικής γλώσσας:
• Διατήρηση μόνο της πρώτης πρότασης του σχολιασμού.
• Αφαίρεση ειδικών χαρακτήρων (π.χ. !, @).
• Αφαίρεση μη ASCII χαρακτήρων (π.χ. 隠, ¥).
• Διαχωρισμός camelCase συμβολοσειρών (π.χ. stringUtils).
• Αντικατάσταση σχολιασμού με το όνομα της αντίστοιχης συνάρτησης σε καταχωρήσεις με λιγότερες από 6 ή
περισσότερες από 30 συμβολοσειρές.
• Μετατροπή αλφαβητικών χαρακτήρων στους αντίστοιχους πεζούς χαρακτήρες.
Όνομα Συνάρτησης Πριν Μετά
hexStringToByteArray ['--------------------------------------------------------'] ['hex', 'string', 'to', 'byte', 'array']
computeEnumSimply ['仅仅利用了转移矩阵的“维特比”算法'] ['compute', 'enum', 'simply']
getCacheManagerName ['Get', 'the', 'name', 'of', 'a', '{'] ['get', 'cache', 'manager', 'name']
concatWs
['Concatenates', 'input', 'strings', 'together', 'into', 'a',
'single', 'string', 'using', 'the', 'separator', '.', 'A', 'null',
'input', 'is', 'skipped', '.', 'For', 'example', 'concat', '(', 'a',
'null', 'c', ')', 'would', 'yield', 'a', 'c', '.']
['concatenates', 'input', 'strings', 'together', 'into', 'a',
'single', 'string', 'using', 'the', 'separator']
Σημασιολογική Αναζήτηση Κώδικα σε Αποθήκες Λογισμικού με
Τεχνικές Νευρωνικής Μηχανικής Μετάφρασης
7
Dataset Builder (3/3)
Προεπεξεργασία δεδομένων κώδικα:
• Αφαίρεση μη ASCII χαρακτήρων (π.χ. 夏, φ).
• Διαχωρισμός camelCase συμβολοσειρών (π.χ. ArrayList).
• Κωδικοποίηση προγραμματιστικών συμβόλων σε μοναδικές συμβολοσειρές.
• Αφαίρεση ειδικών χαρακτήρων που δε καλύπτονται από το προηγούμενο βήμα.
• Μετατροπή αλφαβητικών χαρακτήρων στους αντίστοιχους πεζούς χαρακτήρες.
Πριν Μετά
['public', 'CorsConfig', 'build', '(', ')', '{', 'if', '(', 'preflightHeaders', '.', 'isEmpty', '(', ')',
'&&', '!', 'noPreflightHeaders', ')', '{', 'preflightHeaders', '.', 'put', '(',
'HttpHeaderNames', '.', 'DATE', ',', 'DateValueGenerator', '.', 'INSTANCE', ')', ';',
'preflightHeaders', '.', 'put', '(', 'HttpHeaderNames', '.', 'CONTENT_LENGTH', ',',
'new', 'ConstantValueGenerator', '(', '"0"', ')', ')', ';', '}', 'return', 'new', 'CorsConfig',
'(', 'this', ')', ';', '}']
['public', 'cors', 'config', 'build', 'openingparenthesis', 'closingparenthesis',
'openingbrace', 'if', 'openingparenthesis', 'preflight', 'headers', 'is', 'empty',
'openingparenthesis', 'closingparenthesis', 'notoperator', 'no', 'preflight', 'headers',
'closingparenthesis', 'openingbrace', 'preflight', 'headers', 'put', 'openingparenthesis',
'http', 'header', 'names', 'date', 'date', 'value', 'generator', 'instance',
'closingparenthesis', 'semicolon', 'preflight', 'headers', 'put', 'openingparenthesis',
'http', 'header', 'names', 'contentlength', 'new', 'constant', 'value', 'generator',
'openingparenthesis', 'closingparenthesis', 'closingparenthesis', 'semicolon',
'closingbrace', 'return', 'new', 'cors', 'config', 'openingparenthesis', 'this',
'closingparenthesis', 'semicolon', 'closingbrace']
Σημασιολογική Αναζήτηση Κώδικα σε Αποθήκες Λογισμικού με
Τεχνικές Νευρωνικής Μηχανικής Μετάφρασης
8
Neural Network (1/9)
Δίκτυο Αντιστοίχισης (Matching Network):
• Αρχιτεκτονική ειδικά κατασκευασμένη για την επίλυση one-shot learning προβλημάτων.
• Χρήση ξεχωριστών κωδικοποιητών.
• Χρήση μετρικής ομοιότητας διανυσμάτων.
• Δημιουργία τετραγωνικού πίνακα τιμών ομοιότητας, με διαγώνια στοιχεία τιμές ομοιότητας θετικών ζευγών.
Σημασιολογική Αναζήτηση Κώδικα σε Αποθήκες Λογισμικού με
Τεχνικές Νευρωνικής Μηχανικής Μετάφρασης
9
Neural Network (2/9)
Κωδικοποιητές:
• Χρήση της state-of-the-art αρχιτεκτονικής των Μετασχηματιστών (Transformers).
• Δημιουργία ενσωματώσεων λέξεων (word embeddings).
• Κωδικοποίηση ενσωματώσεων ως προς τη θέση των λέξεων στο κείμενο.
• Χρήση Προσοχής Πολλαπλών Κεφαλών (Multi-Head Attention)
για τη σημασιολογική ανάλυση του εξεταζόμενου κειμένου.
• Χρήση Δικτύου Εμπρόσθιας Διάδοσης (Feed-Forward Network)
για το συνδυασμό πολύπλοκων συντακτικών πληροφοριών.
• Εκβάθυνση του δικτύου με την τριπλή επανάληψη των επιπέδων
Προσοχής Πολλαπλών Κεφαλών και Δικτύου Εμπρόσθιας Διάδοσης.
• Χρήση max pooling για τη δημιουργία ενσωματώσεων προτάσεων.
Σημασιολογική Αναζήτηση Κώδικα σε Αποθήκες Λογισμικού με
Τεχνικές Νευρωνικής Μηχανικής Μετάφρασης
10
Neural Network (3/9)
Προσοχή Πολλαπλών Κεφαλών:
• Σημαντικές βελτιώσεις σε προβλήματα Νευρωνικής Μηχανικής Μετάφρασης.
• Εστίαση της προσοχής στις πιο κατάλληλες λέξεις του κειμένου.
• Μηχανισμός πολλαπλών κεφαλών για την εξέταση των πληροφοριών με διαφορετικούς τρόπους.
• Σημασιολογική ανάλυση του κειμένου.
Δίκτυο Εμπρόσθιας Διάδοσης:
• Χρήση μη γραμμικών μετασχηματισμών.
• Συνδυασμός πολύπλοκων συντακτικών και γραμματικών πληροφοριών.
• Δημιουργία ενσωματώσεων οι οποίες συμπεριλαμβάνουν τις πληροφορίες των συμφραζομένων.
Σημασιολογική Αναζήτηση Κώδικα σε Αποθήκες Λογισμικού με
Τεχνικές Νευρωνικής Μηχανικής Μετάφρασης
11
Neural Network (4/9)
Ομοιότητα Επιφάνειας Τριγώνου - Ομοιότητα Επιφάνειας Τομέα:
• Γεωμετρική υβριδική μετρική ομοιότητας.
• Συνδυασμός ευκλείδειας απόστασης, μήκους και γωνίας μεταξύ των διανυσμάτων.
• Διόρθωση όλων των αδυναμιών της ευκλείδειας απόστασης και της ομοιότητας συνημίτονου.
• Όμοια χαρακτηρίζονται διανύσματα με μικρές ή μηδενικές διαφορές στην ευκλείδεια απόσταση, στο μήκος
και στη μεταξύ τους γωνία.
Σημασιολογική Αναζήτηση Κώδικα σε Αποθήκες Λογισμικού με
Τεχνικές Νευρωνικής Μηχανικής Μετάφρασης
14
Neural Network (5/9)
Τετραγωνικές Απώλειες Περιθωρίου:
• Επιτρεπτή τιμή περιθωρίου οποιαδήποτε θετική τιμή.
• Η χρήση του τετραγώνου «τιμωρεί» περισσότερο τις μεγάλες και λιγότερο τις μικρές τιμές απωλειών.
• Γρήγορη σύγκλιση στο ολικό ελάχιστο της συνάρτησης.
Σημασιολογική Αναζήτηση Κώδικα σε Αποθήκες Λογισμικού με
Τεχνικές Νευρωνικής Μηχανικής Μετάφρασης
16
Neural Network (6/9)
Βελτιστοποιητές (Optimizers):
• Χρήση του βελτιστοποιητή Adam για την εκπαίδευση του δικτύου.
• Εύρεση του βέλτιστου ρυθμού μάθησης με τη χρήση συνάρτησης εκθετικής αύξησης.
• Εκπαίδευση του δικτύου για εκθετικά αυξανόμενο ρυθμό μάθησης.
• Επιλογή ρυθμού μάθησης για τον οποίο υπάρχει απότομη μείωση απωλειών και απότομη αύξηση της
ακρίβειας (accuracy).
Σημασιολογική Αναζήτηση Κώδικα σε Αποθήκες Λογισμικού με
Τεχνικές Νευρωνικής Μηχανικής Μετάφρασης
18
Neural Network (7/9)
Σημασιολογική Αναζήτηση Κώδικα σε Αποθήκες Λογισμικού με
Τεχνικές Νευρωνικής Μηχανικής Μετάφρασης
19
Neural Network (8/9)
Σημασιολογική Αναζήτηση Κώδικα σε Αποθήκες Λογισμικού με
Τεχνικές Νευρωνικής Μηχανικής Μετάφρασης
20
Neural Network (9/9)
Εκπαίδευση (Training):
• Εκπαίδευση του δικτύου για 40 εποχές.
• Αποθήκευση του μοντέλου όταν η τιμή της μετρικής MRR του συνόλου δεδομένων επικύρωσης (validation
dataset) περνά την προηγούμενη καλύτερη τιμή.
Υπερπαράμετρος Τιμή
NUM_LAYERS 3
INPUT_VOCAB_SIZE 10.002
TARGET_VOCAB_SIZE 10.002
INPUT_POSITION 10.002
TARGET_POSITION 10.002
NUM_HEADS 8
DFF 512
D_MODEL 128
RATE 0,1
LEARNING_RATE 3.2e-4
MARGIN 5
EPOCHS 40
Σημασιολογική Αναζήτηση Κώδικα σε Αποθήκες Λογισμικού με
Τεχνικές Νευρωνικής Μηχανικής Μετάφρασης
21
Index Builder
• Χρήση του εργαλείου Annoy του Spotify, το οποίο αποτελεί υλοποίηση του αλγορίθμου Αναζήτησης
Πλησιέστερου Γείτονα (Nearest Neighbor Search).
• Προσεγγιστικός αλγόριθμος για τη μείωση του χρόνου αναζήτησης.
• Κατασκευή διανυσματικού χώρου με τη χρήση δυαδικών δέντρων, όπου κάθε κόμβος ανήκει σε μία
ενσωμάτωση κώδικα.
• Αναζήτηση του πιο όμοιου διανύσματος στο διάνυσμα εισαγωγής στα 10.000 κοντινότερα διανύσματα, έναντι
των 1.569.889 που περιέχονται συνολικά στο διανυσματικό χώρο.
Σημασιολογική Αναζήτηση Κώδικα σε Αποθήκες Λογισμικού με
Τεχνικές Νευρωνικής Μηχανικής Μετάφρασης
26
Search Engine (1/3)
• Κατασκευή μίας διαδικτυακής εφαρμογής για την αναζήτηση ερωτημάτων.
• Δημιουργία Γραφικού Περιβάλλοντος Χρήστη για εύκολη προσβασιμότητα.
• Χρήση της υπηρεσίας App Engine της Πλατφόρμας Νέφους της Google (Google Cloud Platform).
• Προεπεξεργασία των εισαγόμενων ερωτημάτων.
• Επιστροφή ολοκληρωμένων τμημάτων κώδικα με τη χρήση του Νευρωνικού Δικτύου και του διανυσματικού
χώρου που κατασκευάστηκε με το εργαλείο Annoy.
Σημασιολογική Αναζήτηση Κώδικα σε Αποθήκες Λογισμικού με
Τεχνικές Νευρωνικής Μηχανικής Μετάφρασης
27
Search Engine (2/3)
Σημασιολογική Αναζήτηση Κώδικα σε Αποθήκες Λογισμικού με
Τεχνικές Νευρωνικής Μηχανικής Μετάφρασης
28
Search Engine (3/3)
Σημασιολογική Αναζήτηση Κώδικα σε Αποθήκες Λογισμικού με
Τεχνικές Νευρωνικής Μηχανικής Μετάφρασης
29
Αξιολόγηση του Συστήματος (1/5)
Μετρικές Αξιολόγησης:
• Precision at K (P@K): μετρά τη σχετικότητα των πρώτων Κ αποτελεσμάτων χωρίς να λαμβάνει υπόψη τη
θέση τους στη λίστα αποτελεσμάτων.
𝑃@𝐾 =
σ 𝑟𝑒𝑙𝑒𝑣𝑎𝑛𝑡
𝐾
• Mean Reciprocal Rank (MRR): μετρά τη θέση του πρώτου σχετικού ερωτήματος που συναντάται στη λίστα
αποτελεσμάτων.
𝑀𝑅𝑅 =
1
𝑄
෍
𝑖=1
𝑄
1
𝑟𝑎𝑛𝑘𝑖
• Normalized Discounted Cumulative Gain (NDCG): μετρά τη σχετικότητα των αποτελεσμάτων λαμβάνοντας
υπόψη τη θέση τους στη λίστα και το βαθμό της σχετικότητάς τους.
𝑁𝐷𝐶𝐺 =
𝐷𝐶𝐺
𝐼𝐷𝐶𝐺
𝐷𝐶𝐺 = σ𝑖=1
𝑁 2 𝑟𝑒𝑙 𝑖−1
𝑙𝑜𝑔2 𝑖+1
𝐼𝐷𝐶𝐺 = σ𝑖=1
𝑅𝐸𝐿 𝑁 2 𝑟𝑒𝑙 𝑖−1
𝑙𝑜𝑔2 𝑖+1
Σημασιολογική Αναζήτηση Κώδικα σε Αποθήκες Λογισμικού με
Τεχνικές Νευρωνικής Μηχανικής Μετάφρασης
30
Αξιολόγηση του Συστήματος (2/5)
Μέθοδοι Αξιολόγησης:
• Σύγκριση με το παρόμοιο σύστημα CodeSearchNet.
• Σύγκριση των τιμών της MRR στα δεδομένα επικύρωσης και ελέγχου.
• Χρήση των 99 ερωτημάτων με τα οποία αξιολογείται το εν λόγο σύστημα για τον υπολογισμό της
NDCG.
• Υπολογισμός της MRR για κάθε ένα από 99 ερωτήματα.
• Εξέταση των αποτελεσμάτων του CODEtransformer σε ερωτήματα του Stack Overflow.
• Χρήση 40 δημοφιλών ερωτημάτων που αφορούν τη γλώσσα Java.
• Υπολογισμός της P@10 για κάθε ένα από 40 ερωτήματα.
Σημασιολογική Αναζήτηση Κώδικα σε Αποθήκες Λογισμικού με
Τεχνικές Νευρωνικής Μηχανικής Μετάφρασης
31
Σύγκριση με το CodeSearchNet
Σημασιολογική Αναζήτηση Κώδικα σε Αποθήκες Λογισμικού με
Τεχνικές Νευρωνικής Μηχανικής Μετάφρασης
32
Αξιολόγηση του Συστήματος (3/5)
Σύστημα Validation MRR
CodeSearchNet-NBoW 0,4972
CodeSearchNet-1D-CNN 0,4926
CodeSearchNet-biRNN 0,2713
CodeSearchNet-SelfAtt 0,5513
CODEtransformer 0,6260
Η μέτρηση της MRR στο σύνολο δεδομένων επικύρωσης κάθε συστήματος.
Σύστημα Test MRR
CodeSearchNet-NBoW 0,5140
CodeSearchNet-1D-CNN 0,5270
CodeSearchNet-biRNN 0,2865
CodeSearchNet-SelfAtt 0,5866
CODEtransformer 0,6263
Η μέτρηση της MRR στο σύνολο δεδομένων ελέγχου κάθε συστήματος.
Σύστημα NDCG
CodeSearchNet-NBoW 0,1207
CodeSearchNet-1D-CNN 0,1282
CodeSearchNet-biRNN 0,0623
CodeSearchNet-SelfAtt 0,1003
CODEtransformer 0,1028
Η μέτρηση της NDCG σε κάθε σύστημα.
Σημασιολογική Αναζήτηση Κώδικα σε Αποθήκες Λογισμικού με
Τεχνικές Νευρωνικής Μηχανικής Μετάφρασης
33
Αξιολόγηση του Συστήματος (4/5)
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45 47 49 51 53 55 57 59 61 63 65 67 69 71 73 75 77 79 81 83 85 87 89 91 93 95 97 99
Η μέτρηση της MRR σε κάθε ένα από τα 99 ερωτήματα.
Σημασιολογική Αναζήτηση Κώδικα σε Αποθήκες Λογισμικού με
Τεχνικές Νευρωνικής Μηχανικής Μετάφρασης
34
Δημοφιλή Ερωτήματα του Stack Overflow
Σημασιολογική Αναζήτηση Κώδικα σε Αποθήκες Λογισμικού με
Τεχνικές Νευρωνικής Μηχανικής Μετάφρασης
35
Αξιολόγηση του Συστήματος (5/5)
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
Η μέτρηση της P@10 σε κάθε ένα από τα 40 ερωτήματα.
Σημασιολογική Αναζήτηση Κώδικα σε Αποθήκες Λογισμικού με
Τεχνικές Νευρωνικής Μηχανικής Μετάφρασης
36
Συμπεράσματα
• Η χρήση του CODEtransformer εξοικονομεί χρόνο και μειώνει το φόρτο εργασίας.
• Η παρουσίαση ολοκληρωμένων τμημάτων κώδικα επισπεύδει την ανάπτυξη λογισμικού.
• Η προεπεξεργασία και η ποιότητα των δεδομένων επηρεάζουν άμεσα την απόδοση του συστήματος.
• Η αρχιτεκτονική των Μετασχηματιστών πραγματοποιεί βαθιά σημασιολογική ανάλυση.
• Η χρήση της TS-SS εξασφαλίζει πραγματικά όμοιες ενσωματώσεις φυσικής γλώσσας και κώδικα.
• Η διαδικτυακή εφαρμογή επιτρέπει γρήγορη και εύκολη πρόσβαση στο σύστημα.
Σημασιολογική Αναζήτηση Κώδικα σε Αποθήκες Λογισμικού με
Τεχνικές Νευρωνικής Μηχανικής Μετάφρασης
37
Μελλοντική Εργασία
• Η χρήση πραγματικών ερωτημάτων ως δεδομένα φυσικής γλώσσας, έναντι σχολιασμών κώδικα.
• Η χρήση των ονομάτων των συναρτήσεων σε συνδυασμό με ερωτήματα φυσικής γλώσσας.
• Η χρήση τεχνικών συμπίεσης Νευρωνικών Δικτύων.
• Η βελτίωση του γραφικού περιβάλλοντος της διαδικτυακής εφαρμογής.
Σημασιολογική Αναζήτηση Κώδικα σε Αποθήκες Λογισμικού με
Τεχνικές Νευρωνικής Μηχανικής Μετάφρασης
38
Ευχαριστίες
Ευχαριστώ θερμά:
• τον κ. Ανδρέα Συμεωνίδη, για την εμπιστοσύνη που μου έδειξε.
• τον κ. Θεμιστοκλή Διαμαντόπουλο, για τη στήριξη και την καθοδήγησή του.
• την οικογένεια και τους στενούς μου φίλους, για τη βοήθεια και την κατανόησή τους.
• εσάς, για την προσοχή σας.
Σημασιολογική Αναζήτηση Κώδικα σε Αποθήκες Λογισμικού με
Τεχνικές Νευρωνικής Μηχανικής Μετάφρασης
39
Ερωτήσεις
Σημασιολογική Αναζήτηση Κώδικα σε Αποθήκες Λογισμικού με
Τεχνικές Νευρωνικής Μηχανικής Μετάφρασης
40
1 of 32

Recommended

Stelios poulakakis daktylidis diploma thesis presentation by
Stelios poulakakis daktylidis diploma thesis presentationStelios poulakakis daktylidis diploma thesis presentation
Stelios poulakakis daktylidis diploma thesis presentationISSEL
237 views30 slides
Konstantinos Papadopoulos Diploma Thesis presenation by
Konstantinos Papadopoulos Diploma Thesis presenationKonstantinos Papadopoulos Diploma Thesis presenation
Konstantinos Papadopoulos Diploma Thesis presenationISSEL
219 views16 slides
Ανίχνευση Αποκλίνουσας Συμπεριφοράς Χρηστών Διαδικτυακής Εφαρμογής Σε Πραγματ... by
Ανίχνευση Αποκλίνουσας Συμπεριφοράς Χρηστών Διαδικτυακής Εφαρμογής Σε Πραγματ...Ανίχνευση Αποκλίνουσας Συμπεριφοράς Χρηστών Διαδικτυακής Εφαρμογής Σε Πραγματ...
Ανίχνευση Αποκλίνουσας Συμπεριφοράς Χρηστών Διαδικτυακής Εφαρμογής Σε Πραγματ...ISSEL
31 views26 slides
ΧΡΗΣΗ ΤΕΧΝΙΚΩΝ ΒΑΘΙΑΣ ΜΑΘΗΣΗΣ ΓΙΑ ΤΗΝ ΚΑΤΑΝΟΗΣΗ ΤΗΣ ΣΗΜΑΝΤΙΚΟΤΗΤΑΣ ΔΗΜΟΓΡΑΦΙΚ... by
ΧΡΗΣΗ ΤΕΧΝΙΚΩΝ ΒΑΘΙΑΣ ΜΑΘΗΣΗΣ ΓΙΑ ΤΗΝ ΚΑΤΑΝΟΗΣΗ ΤΗΣ ΣΗΜΑΝΤΙΚΟΤΗΤΑΣ ΔΗΜΟΓΡΑΦΙΚ...ΧΡΗΣΗ ΤΕΧΝΙΚΩΝ ΒΑΘΙΑΣ ΜΑΘΗΣΗΣ ΓΙΑ ΤΗΝ ΚΑΤΑΝΟΗΣΗ ΤΗΣ ΣΗΜΑΝΤΙΚΟΤΗΤΑΣ ΔΗΜΟΓΡΑΦΙΚ...
ΧΡΗΣΗ ΤΕΧΝΙΚΩΝ ΒΑΘΙΑΣ ΜΑΘΗΣΗΣ ΓΙΑ ΤΗΝ ΚΑΤΑΝΟΗΣΗ ΤΗΣ ΣΗΜΑΝΤΙΚΟΤΗΤΑΣ ΔΗΜΟΓΡΑΦΙΚ...ISSEL
53 views25 slides
Theofilos Georgiadis: Library recommendation system for the reuse of software... by
Theofilos Georgiadis: Library recommendation system for the reuse of software...Theofilos Georgiadis: Library recommendation system for the reuse of software...
Theofilos Georgiadis: Library recommendation system for the reuse of software...Manos Tsardoulias
45 views20 slides
Pantelidou Eirini: Design and development of a system for incremental static ... by
Pantelidou Eirini: Design and development of a system for incremental static ...Pantelidou Eirini: Design and development of a system for incremental static ...
Pantelidou Eirini: Design and development of a system for incremental static ...Manos Tsardoulias
70 views26 slides

More Related Content

What's hot

Ανάπτυξη αυτοματοποιημένης διαδικασίας Continuous Integration σε έργα λογισμικού by
Ανάπτυξη αυτοματοποιημένης διαδικασίας Continuous Integration σε έργα λογισμικούΑνάπτυξη αυτοματοποιημένης διαδικασίας Continuous Integration σε έργα λογισμικού
Ανάπτυξη αυτοματοποιημένης διαδικασίας Continuous Integration σε έργα λογισμικούISSEL
79 views38 slides
Εντοπισμός του Image Inpainting με Μεθόδους Τεχνητής Νοημοσύνης by
Εντοπισμός του Image Inpainting με Μεθόδους Τεχνητής ΝοημοσύνηςΕντοπισμός του Image Inpainting με Μεθόδους Τεχνητής Νοημοσύνης
Εντοπισμός του Image Inpainting με Μεθόδους Τεχνητής ΝοημοσύνηςISSEL
76 views22 slides
Σχεδίαση και ανάπτυξη Μηχανισμού Αυτοματοποίησης παραγωγής Λογισμικού Ελέγχου... by
Σχεδίαση και ανάπτυξη Μηχανισμού Αυτοματοποίησης παραγωγής Λογισμικού Ελέγχου...Σχεδίαση και ανάπτυξη Μηχανισμού Αυτοματοποίησης παραγωγής Λογισμικού Ελέγχου...
Σχεδίαση και ανάπτυξη Μηχανισμού Αυτοματοποίησης παραγωγής Λογισμικού Ελέγχου...ISSEL
73 views18 slides
Gougousis Dimitris: Development of an automated machine learning system for p... by
Gougousis Dimitris: Development of an automated machine learning system for p...Gougousis Dimitris: Development of an automated machine learning system for p...
Gougousis Dimitris: Development of an automated machine learning system for p...Manos Tsardoulias
63 views33 slides
Ανάλυση αθλητικών επιδόσεων με τη χρήση του συστήματος REMEDES by
Ανάλυση αθλητικών επιδόσεων με τη χρήση του συστήματος REMEDESΑνάλυση αθλητικών επιδόσεων με τη χρήση του συστήματος REMEDES
Ανάλυση αθλητικών επιδόσεων με τη χρήση του συστήματος REMEDESISSEL
91 views39 slides
Kagiafas Nikolaos Thesis Presentation by
Kagiafas Nikolaos Thesis PresentationKagiafas Nikolaos Thesis Presentation
Kagiafas Nikolaos Thesis PresentationISSEL
88 views25 slides

What's hot(14)

Ανάπτυξη αυτοματοποιημένης διαδικασίας Continuous Integration σε έργα λογισμικού by ISSEL
Ανάπτυξη αυτοματοποιημένης διαδικασίας Continuous Integration σε έργα λογισμικούΑνάπτυξη αυτοματοποιημένης διαδικασίας Continuous Integration σε έργα λογισμικού
Ανάπτυξη αυτοματοποιημένης διαδικασίας Continuous Integration σε έργα λογισμικού
ISSEL79 views
Εντοπισμός του Image Inpainting με Μεθόδους Τεχνητής Νοημοσύνης by ISSEL
Εντοπισμός του Image Inpainting με Μεθόδους Τεχνητής ΝοημοσύνηςΕντοπισμός του Image Inpainting με Μεθόδους Τεχνητής Νοημοσύνης
Εντοπισμός του Image Inpainting με Μεθόδους Τεχνητής Νοημοσύνης
ISSEL76 views
Σχεδίαση και ανάπτυξη Μηχανισμού Αυτοματοποίησης παραγωγής Λογισμικού Ελέγχου... by ISSEL
Σχεδίαση και ανάπτυξη Μηχανισμού Αυτοματοποίησης παραγωγής Λογισμικού Ελέγχου...Σχεδίαση και ανάπτυξη Μηχανισμού Αυτοματοποίησης παραγωγής Λογισμικού Ελέγχου...
Σχεδίαση και ανάπτυξη Μηχανισμού Αυτοματοποίησης παραγωγής Λογισμικού Ελέγχου...
ISSEL73 views
Gougousis Dimitris: Development of an automated machine learning system for p... by Manos Tsardoulias
Gougousis Dimitris: Development of an automated machine learning system for p...Gougousis Dimitris: Development of an automated machine learning system for p...
Gougousis Dimitris: Development of an automated machine learning system for p...
Ανάλυση αθλητικών επιδόσεων με τη χρήση του συστήματος REMEDES by ISSEL
Ανάλυση αθλητικών επιδόσεων με τη χρήση του συστήματος REMEDESΑνάλυση αθλητικών επιδόσεων με τη χρήση του συστήματος REMEDES
Ανάλυση αθλητικών επιδόσεων με τη χρήση του συστήματος REMEDES
ISSEL91 views
Kagiafas Nikolaos Thesis Presentation by ISSEL
Kagiafas Nikolaos Thesis PresentationKagiafas Nikolaos Thesis Presentation
Kagiafas Nikolaos Thesis Presentation
ISSEL88 views
Συνεχής έµµεση αυθεντικοποίηση χρηστών κινητού τηλεφώνου µέσω ανάλυσης συµπερ... by ISSEL
Συνεχής έµµεση αυθεντικοποίηση χρηστών κινητού τηλεφώνου µέσω ανάλυσης συµπερ...Συνεχής έµµεση αυθεντικοποίηση χρηστών κινητού τηλεφώνου µέσω ανάλυσης συµπερ...
Συνεχής έµµεση αυθεντικοποίηση χρηστών κινητού τηλεφώνου µέσω ανάλυσης συµπερ...
ISSEL117 views
Alexandros Delitzas Diploma Thesis presentation by ISSEL
Alexandros Delitzas Diploma Thesis presentationAlexandros Delitzas Diploma Thesis presentation
Alexandros Delitzas Diploma Thesis presentation
ISSEL271 views
Υλοποίηση εργαλείου πλήρους στοίβας σε περιβάλλον Kubernetes για την αυτοµατο... by ISSEL
Υλοποίηση εργαλείου πλήρους στοίβας σε περιβάλλον Kubernetes για την αυτοµατο...Υλοποίηση εργαλείου πλήρους στοίβας σε περιβάλλον Kubernetes για την αυτοµατο...
Υλοποίηση εργαλείου πλήρους στοίβας σε περιβάλλον Kubernetes για την αυτοµατο...
ISSEL140 views
Ανίχνευση Αποκλίνουσας Συμπεριφοράς Χρηστών Διαδικτυακής Εφαρμογής Με Χρήση Τ... by ISSEL
Ανίχνευση Αποκλίνουσας Συμπεριφοράς Χρηστών Διαδικτυακής Εφαρμογής Με Χρήση Τ...Ανίχνευση Αποκλίνουσας Συμπεριφοράς Χρηστών Διαδικτυακής Εφαρμογής Με Χρήση Τ...
Ανίχνευση Αποκλίνουσας Συμπεριφοράς Χρηστών Διαδικτυακής Εφαρμογής Με Χρήση Τ...
ISSEL68 views
Σχεδίαση και ανάπτυξη μηχανισμού αναγνώρισης επιθέσεων ασφαλείας σε διαδικτυα... by ISSEL
Σχεδίαση και ανάπτυξη μηχανισμού αναγνώρισης επιθέσεων ασφαλείας σε διαδικτυα...Σχεδίαση και ανάπτυξη μηχανισμού αναγνώρισης επιθέσεων ασφαλείας σε διαδικτυα...
Σχεδίαση και ανάπτυξη μηχανισμού αναγνώρισης επιθέσεων ασφαλείας σε διαδικτυα...
ISSEL90 views
Επανοργάνωση πηγαίου κώδικα από γράφους εξαρτήσεων οντοτήτων µε βάση παραδείγ... by ISSEL
Επανοργάνωση πηγαίου κώδικα από γράφους εξαρτήσεων οντοτήτων µε βάση παραδείγ...Επανοργάνωση πηγαίου κώδικα από γράφους εξαρτήσεων οντοτήτων µε βάση παραδείγ...
Επανοργάνωση πηγαίου κώδικα από γράφους εξαρτήσεων οντοτήτων µε βάση παραδείγ...
ISSEL90 views
Evangelos Papathomas: Semantic Code Search in Software Repositories using Neu... by Manos Tsardoulias
Evangelos Papathomas: Semantic Code Search in Software Repositories using Neu...Evangelos Papathomas: Semantic Code Search in Software Repositories using Neu...
Evangelos Papathomas: Semantic Code Search in Software Repositories using Neu...
Εφαρμογή Τεχνικών Εξόρυξης Δεδομένων για την Εξαγωγή Προτύπων Διόρθωσης σε Σφ... by ISSEL
Εφαρμογή Τεχνικών Εξόρυξης Δεδομένων για την Εξαγωγή Προτύπων Διόρθωσης σε Σφ...Εφαρμογή Τεχνικών Εξόρυξης Δεδομένων για την Εξαγωγή Προτύπων Διόρθωσης σε Σφ...
Εφαρμογή Τεχνικών Εξόρυξης Δεδομένων για την Εξαγωγή Προτύπων Διόρθωσης σε Σφ...
ISSEL53 views

Similar to Evangelos papathomas diploma thesis presentation

Νικόλαος Κατιρτζής 7185 by
Νικόλαος Κατιρτζής 7185Νικόλαος Κατιρτζής 7185
Νικόλαος Κατιρτζής 7185ISSEL
134 views33 slides
Βασίλης Μπούντρης by
Βασίλης ΜπούντρηςΒασίλης Μπούντρης
Βασίλης ΜπούντρηςISSEL
180 views18 slides
Nikolaos Oikonomou by
Nikolaos OikonomouNikolaos Oikonomou
Nikolaos OikonomouISSEL
208 views35 slides
Κωνσταντίνος Σιδέρης 7254 by
Κωνσταντίνος Σιδέρης 7254Κωνσταντίνος Σιδέρης 7254
Κωνσταντίνος Σιδέρης 7254ISSEL
216 views21 slides
Καρβούνης Ευάγγελος by
Καρβούνης Ευάγγελος Καρβούνης Ευάγγελος
Καρβούνης Ευάγγελος ISSEL
142 views25 slides
Ioannis Loias by
Ioannis LoiasIoannis Loias
Ioannis LoiasISSEL
239 views41 slides

Similar to Evangelos papathomas diploma thesis presentation(20)

Νικόλαος Κατιρτζής 7185 by ISSEL
Νικόλαος Κατιρτζής 7185Νικόλαος Κατιρτζής 7185
Νικόλαος Κατιρτζής 7185
ISSEL134 views
Βασίλης Μπούντρης by ISSEL
Βασίλης ΜπούντρηςΒασίλης Μπούντρης
Βασίλης Μπούντρης
ISSEL180 views
Nikolaos Oikonomou by ISSEL
Nikolaos OikonomouNikolaos Oikonomou
Nikolaos Oikonomou
ISSEL208 views
Κωνσταντίνος Σιδέρης 7254 by ISSEL
Κωνσταντίνος Σιδέρης 7254Κωνσταντίνος Σιδέρης 7254
Κωνσταντίνος Σιδέρης 7254
ISSEL216 views
Καρβούνης Ευάγγελος by ISSEL
Καρβούνης Ευάγγελος Καρβούνης Ευάγγελος
Καρβούνης Ευάγγελος
ISSEL142 views
Ioannis Loias by ISSEL
Ioannis LoiasIoannis Loias
Ioannis Loias
ISSEL239 views
κεφάλαιο 02 anaptixi-2 by evaplyta
κεφάλαιο 02 anaptixi-2κεφάλαιο 02 anaptixi-2
κεφάλαιο 02 anaptixi-2
evaplyta1.3K views
Panagiotis Doxopoulos by ISSEL
Panagiotis DoxopoulosPanagiotis Doxopoulos
Panagiotis Doxopoulos
ISSEL248 views
Konstantinos Koukoutegos Diploma Thesis Presentation by ISSEL
Konstantinos Koukoutegos Diploma Thesis PresentationKonstantinos Koukoutegos Diploma Thesis Presentation
Konstantinos Koukoutegos Diploma Thesis Presentation
ISSEL95 views
Συνεχής έμμεση αυθεντικοποίηση χρηστών κινητού τηλεφώνου με συνδυασμό των δεδ... by ISSEL
Συνεχής έμμεση αυθεντικοποίηση χρηστών κινητού τηλεφώνου με συνδυασμό των δεδ...Συνεχής έμμεση αυθεντικοποίηση χρηστών κινητού τηλεφώνου με συνδυασμό των δεδ...
Συνεχής έμμεση αυθεντικοποίηση χρηστών κινητού τηλεφώνου με συνδυασμό των δεδ...
ISSEL35 views
Αλεξάνδρα Μπαλτζή 7485 by ISSEL
Αλεξάνδρα Μπαλτζή 7485Αλεξάνδρα Μπαλτζή 7485
Αλεξάνδρα Μπαλτζή 7485
ISSEL194 views
Papatzelos Spiridon by ISSEL
Papatzelos SpiridonPapatzelos Spiridon
Papatzelos Spiridon
ISSEL108 views
Basketball data analytics via Machine Learning techniques using the REMEDES s... by ISSEL
Basketball data analytics via Machine Learning techniques using the REMEDES s...Basketball data analytics via Machine Learning techniques using the REMEDES s...
Basketball data analytics via Machine Learning techniques using the REMEDES s...
ISSEL144 views
Ioannis Iakovidis by ISSEL
Ioannis IakovidisIoannis Iakovidis
Ioannis Iakovidis
ISSEL168 views
Θεμιστοκλής Παπαβασιλείου by ISSEL
Θεμιστοκλής ΠαπαβασιλείουΘεμιστοκλής Παπαβασιλείου
Θεμιστοκλής Παπαβασιλείου
ISSEL152 views
Περδικίδης Μιχάλης 7594 by ISSEL
Περδικίδης Μιχάλης 7594Περδικίδης Μιχάλης 7594
Περδικίδης Μιχάλης 7594
ISSEL210 views
Στεργιάδης Εμμανουήλ by ISSEL
Στεργιάδης Εμμανουήλ Στεργιάδης Εμμανουήλ
Στεργιάδης Εμμανουήλ
ISSEL87 views
Πρόταση Βιβλιοθηκών Σχετικών με Λέξεις-Κλειδιά για Εκκίνηση της Διαδικασίας Α... by ISSEL
Πρόταση Βιβλιοθηκών Σχετικών με Λέξεις-Κλειδιά για Εκκίνηση της Διαδικασίας Α...Πρόταση Βιβλιοθηκών Σχετικών με Λέξεις-Κλειδιά για Εκκίνηση της Διαδικασίας Α...
Πρόταση Βιβλιοθηκών Σχετικών με Λέξεις-Κλειδιά για Εκκίνηση της Διαδικασίας Α...
ISSEL13 views
Keyword-based software library recommendation in order to bootstrap software ... by ISSEL
Keyword-based software library recommendation in order to bootstrap software ...Keyword-based software library recommendation in order to bootstrap software ...
Keyword-based software library recommendation in order to bootstrap software ...
ISSEL10 views
Aspect-Based Sentiment Analysis for Reviews by ISSEL
Aspect-Based Sentiment Analysis for ReviewsAspect-Based Sentiment Analysis for Reviews
Aspect-Based Sentiment Analysis for Reviews
ISSEL30 views

More from ISSEL

Camera-based localization of annotated objects in indoor environments by
Camera-based localization of annotated objects in indoor environmentsCamera-based localization of annotated objects in indoor environments
Camera-based localization of annotated objects in indoor environmentsISSEL
12 views38 slides
Εντοπισμός θέσης επισημασμένου αντικειμένου σε εσωτερικό χώρο με χρήση πολλαπ... by
Εντοπισμός θέσης επισημασμένου αντικειμένου σε εσωτερικό χώρο με χρήση πολλαπ...Εντοπισμός θέσης επισημασμένου αντικειμένου σε εσωτερικό χώρο με χρήση πολλαπ...
Εντοπισμός θέσης επισημασμένου αντικειμένου σε εσωτερικό χώρο με χρήση πολλαπ...ISSEL
6 views38 slides
Design and implementation of an automation mechanism to automatically develop... by
Design and implementation of an automation mechanism to automatically develop...Design and implementation of an automation mechanism to automatically develop...
Design and implementation of an automation mechanism to automatically develop...ISSEL
4 views17 slides
ΣΧΕΔΙΑΣΗ ΚΑΙ ΑΝΑΠΤΥΞΗ ΜΗΧΑΝΙΣΜΟΥ ΑΥΤΟΜΑΤΟΠΟΙΗΣΗΣ ΤΗΣ ΑΝΑΠΤΥΞΗΣ ΓΡΑΦΙΚΩΝ ΕΝΤΟΛ... by
ΣΧΕΔΙΑΣΗ ΚΑΙ ΑΝΑΠΤΥΞΗ ΜΗΧΑΝΙΣΜΟΥ ΑΥΤΟΜΑΤΟΠΟΙΗΣΗΣ ΤΗΣ ΑΝΑΠΤΥΞΗΣ ΓΡΑΦΙΚΩΝ ΕΝΤΟΛ...ΣΧΕΔΙΑΣΗ ΚΑΙ ΑΝΑΠΤΥΞΗ ΜΗΧΑΝΙΣΜΟΥ ΑΥΤΟΜΑΤΟΠΟΙΗΣΗΣ ΤΗΣ ΑΝΑΠΤΥΞΗΣ ΓΡΑΦΙΚΩΝ ΕΝΤΟΛ...
ΣΧΕΔΙΑΣΗ ΚΑΙ ΑΝΑΠΤΥΞΗ ΜΗΧΑΝΙΣΜΟΥ ΑΥΤΟΜΑΤΟΠΟΙΗΣΗΣ ΤΗΣ ΑΝΑΠΤΥΞΗΣ ΓΡΑΦΙΚΩΝ ΕΝΤΟΛ...ISSEL
6 views17 slides
Static Analysis of Python code and Identification of Potential Security Vulne... by
Static Analysis of Python code and Identification of Potential Security Vulne...Static Analysis of Python code and Identification of Potential Security Vulne...
Static Analysis of Python code and Identification of Potential Security Vulne...ISSEL
7 views16 slides
Στατική Ανάλυση Κώδικα Python και Αναγνώριση Πιθανών Ευπαθειών Ασφαλείας για ... by
Στατική Ανάλυση Κώδικα Python και Αναγνώριση Πιθανών Ευπαθειών Ασφαλείας για ...Στατική Ανάλυση Κώδικα Python και Αναγνώριση Πιθανών Ευπαθειών Ασφαλείας για ...
Στατική Ανάλυση Κώδικα Python και Αναγνώριση Πιθανών Ευπαθειών Ασφαλείας για ...ISSEL
26 views27 slides

More from ISSEL(20)

Camera-based localization of annotated objects in indoor environments by ISSEL
Camera-based localization of annotated objects in indoor environmentsCamera-based localization of annotated objects in indoor environments
Camera-based localization of annotated objects in indoor environments
ISSEL12 views
Εντοπισμός θέσης επισημασμένου αντικειμένου σε εσωτερικό χώρο με χρήση πολλαπ... by ISSEL
Εντοπισμός θέσης επισημασμένου αντικειμένου σε εσωτερικό χώρο με χρήση πολλαπ...Εντοπισμός θέσης επισημασμένου αντικειμένου σε εσωτερικό χώρο με χρήση πολλαπ...
Εντοπισμός θέσης επισημασμένου αντικειμένου σε εσωτερικό χώρο με χρήση πολλαπ...
ISSEL6 views
Design and implementation of an automation mechanism to automatically develop... by ISSEL
Design and implementation of an automation mechanism to automatically develop...Design and implementation of an automation mechanism to automatically develop...
Design and implementation of an automation mechanism to automatically develop...
ISSEL4 views
ΣΧΕΔΙΑΣΗ ΚΑΙ ΑΝΑΠΤΥΞΗ ΜΗΧΑΝΙΣΜΟΥ ΑΥΤΟΜΑΤΟΠΟΙΗΣΗΣ ΤΗΣ ΑΝΑΠΤΥΞΗΣ ΓΡΑΦΙΚΩΝ ΕΝΤΟΛ... by ISSEL
ΣΧΕΔΙΑΣΗ ΚΑΙ ΑΝΑΠΤΥΞΗ ΜΗΧΑΝΙΣΜΟΥ ΑΥΤΟΜΑΤΟΠΟΙΗΣΗΣ ΤΗΣ ΑΝΑΠΤΥΞΗΣ ΓΡΑΦΙΚΩΝ ΕΝΤΟΛ...ΣΧΕΔΙΑΣΗ ΚΑΙ ΑΝΑΠΤΥΞΗ ΜΗΧΑΝΙΣΜΟΥ ΑΥΤΟΜΑΤΟΠΟΙΗΣΗΣ ΤΗΣ ΑΝΑΠΤΥΞΗΣ ΓΡΑΦΙΚΩΝ ΕΝΤΟΛ...
ΣΧΕΔΙΑΣΗ ΚΑΙ ΑΝΑΠΤΥΞΗ ΜΗΧΑΝΙΣΜΟΥ ΑΥΤΟΜΑΤΟΠΟΙΗΣΗΣ ΤΗΣ ΑΝΑΠΤΥΞΗΣ ΓΡΑΦΙΚΩΝ ΕΝΤΟΛ...
ISSEL6 views
Static Analysis of Python code and Identification of Potential Security Vulne... by ISSEL
Static Analysis of Python code and Identification of Potential Security Vulne...Static Analysis of Python code and Identification of Potential Security Vulne...
Static Analysis of Python code and Identification of Potential Security Vulne...
ISSEL7 views
Στατική Ανάλυση Κώδικα Python και Αναγνώριση Πιθανών Ευπαθειών Ασφαλείας για ... by ISSEL
Στατική Ανάλυση Κώδικα Python και Αναγνώριση Πιθανών Ευπαθειών Ασφαλείας για ...Στατική Ανάλυση Κώδικα Python και Αναγνώριση Πιθανών Ευπαθειών Ασφαλείας για ...
Στατική Ανάλυση Κώδικα Python και Αναγνώριση Πιθανών Ευπαθειών Ασφαλείας για ...
ISSEL26 views
Design and Development of an Authorization and Access Control Mechanism for C... by ISSEL
Design and Development of an Authorization and Access Control Mechanism for C...Design and Development of an Authorization and Access Control Mechanism for C...
Design and Development of an Authorization and Access Control Mechanism for C...
ISSEL13 views
Σχεδίαση και Ανάπτυξη Μηχανισμού Εξουσιοδότησης και Ελέγχου Πρόσβασης σε Συνο... by ISSEL
Σχεδίαση και Ανάπτυξη Μηχανισμού Εξουσιοδότησης και Ελέγχου Πρόσβασης σε Συνο...Σχεδίαση και Ανάπτυξη Μηχανισμού Εξουσιοδότησης και Ελέγχου Πρόσβασης σε Συνο...
Σχεδίαση και Ανάπτυξη Μηχανισμού Εξουσιοδότησης και Ελέγχου Πρόσβασης σε Συνο...
ISSEL19 views
Analysis and profiling of developer profiles using data mining techniques fro... by ISSEL
Analysis and profiling of developer profiles using data mining techniques fro...Analysis and profiling of developer profiles using data mining techniques fro...
Analysis and profiling of developer profiles using data mining techniques fro...
ISSEL3 views
Ανάλυση και μοντελοποίηση προφίλ προγραμματιστών μέσω τεχνικών εξόρυξης γνώση... by ISSEL
Ανάλυση και μοντελοποίηση προφίλ προγραμματιστών μέσω τεχνικών εξόρυξης γνώση...Ανάλυση και μοντελοποίηση προφίλ προγραμματιστών μέσω τεχνικών εξόρυξης γνώση...
Ανάλυση και μοντελοποίηση προφίλ προγραμματιστών μέσω τεχνικών εξόρυξης γνώση...
ISSEL8 views
TOWARDS AN AUTOMATED SOURCE CODE FORMATTING SYSTEM by ISSEL
TOWARDS AN AUTOMATED SOURCE CODE FORMATTING SYSTEMTOWARDS AN AUTOMATED SOURCE CODE FORMATTING SYSTEM
TOWARDS AN AUTOMATED SOURCE CODE FORMATTING SYSTEM
ISSEL3 views
ΔΗΜΙΟΥΡΓΙΑ ΣΥΣΤΗΜΑΤΟΣ ΓΙΑ ΤΗΝ ΠΑΡΟΧΗ ΠΡΟΤΑΣΕΩΝ ΒΕΛΤΙΩΣΗΣ ΤΗΣ ΜΟΡΦΟΠΟΙΗΣΗΣ ΠΗΓ... by ISSEL
ΔΗΜΙΟΥΡΓΙΑ ΣΥΣΤΗΜΑΤΟΣ ΓΙΑ ΤΗΝ ΠΑΡΟΧΗ ΠΡΟΤΑΣΕΩΝ ΒΕΛΤΙΩΣΗΣ ΤΗΣ ΜΟΡΦΟΠΟΙΗΣΗΣ ΠΗΓ...ΔΗΜΙΟΥΡΓΙΑ ΣΥΣΤΗΜΑΤΟΣ ΓΙΑ ΤΗΝ ΠΑΡΟΧΗ ΠΡΟΤΑΣΕΩΝ ΒΕΛΤΙΩΣΗΣ ΤΗΣ ΜΟΡΦΟΠΟΙΗΣΗΣ ΠΗΓ...
ΔΗΜΙΟΥΡΓΙΑ ΣΥΣΤΗΜΑΤΟΣ ΓΙΑ ΤΗΝ ΠΑΡΟΧΗ ΠΡΟΤΑΣΕΩΝ ΒΕΛΤΙΩΣΗΣ ΤΗΣ ΜΟΡΦΟΠΟΙΗΣΗΣ ΠΗΓ...
ISSEL11 views
System Development for Prediction of Static Analysis Metrics of Source Code by ISSEL
System Development for Prediction of Static Analysis Metrics of Source CodeSystem Development for Prediction of Static Analysis Metrics of Source Code
System Development for Prediction of Static Analysis Metrics of Source Code
ISSEL6 views
Ανάπτυξη συστήματος πρόβλεψης της εξέλιξης των μετρικών στατικής ανάλυσης πηγ... by ISSEL
Ανάπτυξη συστήματος πρόβλεψης της εξέλιξης των μετρικών στατικής ανάλυσης πηγ...Ανάπτυξη συστήματος πρόβλεψης της εξέλιξης των μετρικών στατικής ανάλυσης πηγ...
Ανάπτυξη συστήματος πρόβλεψης της εξέλιξης των μετρικών στατικής ανάλυσης πηγ...
ISSEL11 views
Micro Front-ends and Microservices Architecture in Web Application Development by ISSEL
Micro Front-ends and Microservices Architecture in Web Application DevelopmentMicro Front-ends and Microservices Architecture in Web Application Development
Micro Front-ends and Microservices Architecture in Web Application Development
ISSEL8 views
Η αρχιτεκτονική των Microservices και Micro Front-ends στην Ανάπτυξη Εφαρµογώ... by ISSEL
Η αρχιτεκτονική των Microservices και Micro Front-ends στην Ανάπτυξη Εφαρµογώ...Η αρχιτεκτονική των Microservices και Micro Front-ends στην Ανάπτυξη Εφαρµογώ...
Η αρχιτεκτονική των Microservices και Micro Front-ends στην Ανάπτυξη Εφαρµογώ...
ISSEL19 views
Indoor localization using wireless networks by ISSEL
Indoor localization using wireless networksIndoor localization using wireless networks
Indoor localization using wireless networks
ISSEL5 views
Εντοπισμός θέσης σε εσωτερικούς χώρους με χρήση ασύρματων δικτύων by ISSEL
Εντοπισμός θέσης σε εσωτερικούς χώρους με χρήση ασύρματων δικτύωνΕντοπισμός θέσης σε εσωτερικούς χώρους με χρήση ασύρματων δικτύων
Εντοπισμός θέσης σε εσωτερικούς χώρους με χρήση ασύρματων δικτύων
ISSEL10 views
Design and implementation of a big data architecture for storage, real-time p... by ISSEL
Design and implementation of a big data architecture for storage, real-time p...Design and implementation of a big data architecture for storage, real-time p...
Design and implementation of a big data architecture for storage, real-time p...
ISSEL9 views
Σχεδιασµός και υλοποίηση µιας αρχιτεκτονικής µεγάλων δεδοµένων για την αποθήκ... by ISSEL
Σχεδιασµός και υλοποίηση µιας αρχιτεκτονικής µεγάλων δεδοµένων για την αποθήκ...Σχεδιασµός και υλοποίηση µιας αρχιτεκτονικής µεγάλων δεδοµένων για την αποθήκ...
Σχεδιασµός και υλοποίηση µιας αρχιτεκτονικής µεγάλων δεδοµένων για την αποθήκ...
ISSEL16 views

Evangelos papathomas diploma thesis presentation

  • 1. Αριστοτέλειο Πανεπιστήμιο Θεσσαλονίκης Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Σημασιολογική Αναζήτηση Κώδικα σε Αποθήκες Λογισμικού με Τεχνικές Νευρωνικής Μηχανικής Μετάφρασης Ευάγγελος Παπαθωμάς (ΑΕΜ: 8692) Επιβλέποντες Ανδρέας Συμεωνίδης, Αναπληρωτής Καθηγητής Θεμιστοκλής Διαμαντόπουλος, Μεταδιδακτορικός Ερευνητής Θεσσαλονίκη, 2020
  • 2. Δομή Παρουσίασης • Εισαγωγή • Υλοποίηση του Συστήματος • Αξιολόγηση του Συστήματος • Συμπεράσματα και Μελλοντική Εργασία • Ερωτήσεις Σημασιολογική Αναζήτηση Κώδικα σε Αποθήκες Λογισμικού με Τεχνικές Νευρωνικής Μηχανικής Μετάφρασης 2
  • 3. Ορισμός του Προβλήματος • Σήμερα, η ανάπτυξη λογισμικού είναι μία πολύπλοκη και χρονοβόρα διαδικασία. • Πολλές επιλογές (π.χ. APIs, βιβλιοθήκες, εργαλεία κ.α.) • Ελλιπείς ή προβληματικοί σχολιασμοί. Πρόβλημα: • Αύξηση του φόρτου εργασίας των μηχανικών λογισμικού λόγω της μεγάλης δαπάνης χρόνου για την αναζήτηση παραδειγμάτων κώδικα χρησιμοποιώντας συμβατικές μηχανές αναζήτησης. Σκοπός της Διπλωματικής: • Η δημιουργία ενός Συστήματος Προτάσεων στην Τεχνολογία Λογισμικού (Recommendation Systems in Software Engineering ή RSSE), το οποίο δέχεται ερωτήματα σε φυσική γλώσσα και προτείνει τμήματα κώδικα υψηλής ποιότητας. Σημασιολογική Αναζήτηση Κώδικα σε Αποθήκες Λογισμικού με Τεχνικές Νευρωνικής Μηχανικής Μετάφρασης 3
  • 4. RSSEs στη Βιβλιογραφία Αδυναμίες υπαρχουσών υλοποιήσεων: • Δε δέχονται ερωτήματα φυσικής γλώσσας. • Δεν εκμεταλλεύονται τους σχολιασμούς του κώδικα. • Δεν πραγματοποιούν σημασιολογική ανάλυση του κώδικα. • Δεν προτείνουν ολοκληρωμένα τμήματα κώδικα. • Δεν επιτυγχάνουν υψηλές αποδόσεις όσον αφορά την επιστροφή σχετικών αποτελεσμάτων. Σημασιολογική Αναζήτηση Κώδικα σε Αποθήκες Λογισμικού με Τεχνικές Νευρωνικής Μηχανικής Μετάφρασης 4
  • 5. Αρχιτεκτονική του CODEtransformer Σημασιολογική Αναζήτηση Κώδικα σε Αποθήκες Λογισμικού με Τεχνικές Νευρωνικής Μηχανικής Μετάφρασης 5
  • 6. Dataset Builder (1/3) • Επεξεργασία ακατέργαστων δεδομένων φυσικής γλώσσας και κώδικα. • Δημιουργία καθαρισμένου συνόλου δεδομένων και λεξιλογίων. CodeSearchNet Corpus: • 1.569.889 συναρτήσεις Java από αναγνωρισμένα αποθετήρια του GitHub. • 542.991 από τις συναρτήσεις συνοδεύονται από σχολιασμούς. • Σχολιασμοί κώδικα ως δεδομένα φυσικής γλώσσας. • Δεδομένα φυσικής γλώσσας και κώδικα ήδη χωρισμένα σε συμβολοσειρές. • Χρήσιμα δεδομένα όπως: ονόματα συναρτήσεων, URLs κ.α. Σημασιολογική Αναζήτηση Κώδικα σε Αποθήκες Λογισμικού με Τεχνικές Νευρωνικής Μηχανικής Μετάφρασης 6 Χαρακτηριστικά Δεδομένα Σχολιασμός Simplified method form for invoking the ListSSHPublicKeys operation with an AsyncHandler. @see #listSSHPublicKeysAsync(List SSHPublicKeysRequest, com.amazonaws.handlers.Asyn cHandler) Κώδικας @Overriden public java.util.concurrent.Future<List SSHPublicKeysResult> listSSHPublicKeysAsync(n com.amazonaws.handlers.Asyn cHandler<ListSSHPublicKeysR equest, ListSSHPublicKeysResult> asyncHandler) {nn return listSSHPublicKeysAsync(new ListSSHPublicKeysRequest(), asyncHandler);n }
  • 7. Dataset Builder (2/3) Προεπεξεργασία δεδομένων φυσικής γλώσσας: • Διατήρηση μόνο της πρώτης πρότασης του σχολιασμού. • Αφαίρεση ειδικών χαρακτήρων (π.χ. !, @). • Αφαίρεση μη ASCII χαρακτήρων (π.χ. 隠, ¥). • Διαχωρισμός camelCase συμβολοσειρών (π.χ. stringUtils). • Αντικατάσταση σχολιασμού με το όνομα της αντίστοιχης συνάρτησης σε καταχωρήσεις με λιγότερες από 6 ή περισσότερες από 30 συμβολοσειρές. • Μετατροπή αλφαβητικών χαρακτήρων στους αντίστοιχους πεζούς χαρακτήρες. Όνομα Συνάρτησης Πριν Μετά hexStringToByteArray ['--------------------------------------------------------'] ['hex', 'string', 'to', 'byte', 'array'] computeEnumSimply ['仅仅利用了转移矩阵的“维特比”算法'] ['compute', 'enum', 'simply'] getCacheManagerName ['Get', 'the', 'name', 'of', 'a', '{'] ['get', 'cache', 'manager', 'name'] concatWs ['Concatenates', 'input', 'strings', 'together', 'into', 'a', 'single', 'string', 'using', 'the', 'separator', '.', 'A', 'null', 'input', 'is', 'skipped', '.', 'For', 'example', 'concat', '(', 'a', 'null', 'c', ')', 'would', 'yield', 'a', 'c', '.'] ['concatenates', 'input', 'strings', 'together', 'into', 'a', 'single', 'string', 'using', 'the', 'separator'] Σημασιολογική Αναζήτηση Κώδικα σε Αποθήκες Λογισμικού με Τεχνικές Νευρωνικής Μηχανικής Μετάφρασης 7
  • 8. Dataset Builder (3/3) Προεπεξεργασία δεδομένων κώδικα: • Αφαίρεση μη ASCII χαρακτήρων (π.χ. 夏, φ). • Διαχωρισμός camelCase συμβολοσειρών (π.χ. ArrayList). • Κωδικοποίηση προγραμματιστικών συμβόλων σε μοναδικές συμβολοσειρές. • Αφαίρεση ειδικών χαρακτήρων που δε καλύπτονται από το προηγούμενο βήμα. • Μετατροπή αλφαβητικών χαρακτήρων στους αντίστοιχους πεζούς χαρακτήρες. Πριν Μετά ['public', 'CorsConfig', 'build', '(', ')', '{', 'if', '(', 'preflightHeaders', '.', 'isEmpty', '(', ')', '&&', '!', 'noPreflightHeaders', ')', '{', 'preflightHeaders', '.', 'put', '(', 'HttpHeaderNames', '.', 'DATE', ',', 'DateValueGenerator', '.', 'INSTANCE', ')', ';', 'preflightHeaders', '.', 'put', '(', 'HttpHeaderNames', '.', 'CONTENT_LENGTH', ',', 'new', 'ConstantValueGenerator', '(', '"0"', ')', ')', ';', '}', 'return', 'new', 'CorsConfig', '(', 'this', ')', ';', '}'] ['public', 'cors', 'config', 'build', 'openingparenthesis', 'closingparenthesis', 'openingbrace', 'if', 'openingparenthesis', 'preflight', 'headers', 'is', 'empty', 'openingparenthesis', 'closingparenthesis', 'notoperator', 'no', 'preflight', 'headers', 'closingparenthesis', 'openingbrace', 'preflight', 'headers', 'put', 'openingparenthesis', 'http', 'header', 'names', 'date', 'date', 'value', 'generator', 'instance', 'closingparenthesis', 'semicolon', 'preflight', 'headers', 'put', 'openingparenthesis', 'http', 'header', 'names', 'contentlength', 'new', 'constant', 'value', 'generator', 'openingparenthesis', 'closingparenthesis', 'closingparenthesis', 'semicolon', 'closingbrace', 'return', 'new', 'cors', 'config', 'openingparenthesis', 'this', 'closingparenthesis', 'semicolon', 'closingbrace'] Σημασιολογική Αναζήτηση Κώδικα σε Αποθήκες Λογισμικού με Τεχνικές Νευρωνικής Μηχανικής Μετάφρασης 8
  • 9. Neural Network (1/9) Δίκτυο Αντιστοίχισης (Matching Network): • Αρχιτεκτονική ειδικά κατασκευασμένη για την επίλυση one-shot learning προβλημάτων. • Χρήση ξεχωριστών κωδικοποιητών. • Χρήση μετρικής ομοιότητας διανυσμάτων. • Δημιουργία τετραγωνικού πίνακα τιμών ομοιότητας, με διαγώνια στοιχεία τιμές ομοιότητας θετικών ζευγών. Σημασιολογική Αναζήτηση Κώδικα σε Αποθήκες Λογισμικού με Τεχνικές Νευρωνικής Μηχανικής Μετάφρασης 9
  • 10. Neural Network (2/9) Κωδικοποιητές: • Χρήση της state-of-the-art αρχιτεκτονικής των Μετασχηματιστών (Transformers). • Δημιουργία ενσωματώσεων λέξεων (word embeddings). • Κωδικοποίηση ενσωματώσεων ως προς τη θέση των λέξεων στο κείμενο. • Χρήση Προσοχής Πολλαπλών Κεφαλών (Multi-Head Attention) για τη σημασιολογική ανάλυση του εξεταζόμενου κειμένου. • Χρήση Δικτύου Εμπρόσθιας Διάδοσης (Feed-Forward Network) για το συνδυασμό πολύπλοκων συντακτικών πληροφοριών. • Εκβάθυνση του δικτύου με την τριπλή επανάληψη των επιπέδων Προσοχής Πολλαπλών Κεφαλών και Δικτύου Εμπρόσθιας Διάδοσης. • Χρήση max pooling για τη δημιουργία ενσωματώσεων προτάσεων. Σημασιολογική Αναζήτηση Κώδικα σε Αποθήκες Λογισμικού με Τεχνικές Νευρωνικής Μηχανικής Μετάφρασης 10
  • 11. Neural Network (3/9) Προσοχή Πολλαπλών Κεφαλών: • Σημαντικές βελτιώσεις σε προβλήματα Νευρωνικής Μηχανικής Μετάφρασης. • Εστίαση της προσοχής στις πιο κατάλληλες λέξεις του κειμένου. • Μηχανισμός πολλαπλών κεφαλών για την εξέταση των πληροφοριών με διαφορετικούς τρόπους. • Σημασιολογική ανάλυση του κειμένου. Δίκτυο Εμπρόσθιας Διάδοσης: • Χρήση μη γραμμικών μετασχηματισμών. • Συνδυασμός πολύπλοκων συντακτικών και γραμματικών πληροφοριών. • Δημιουργία ενσωματώσεων οι οποίες συμπεριλαμβάνουν τις πληροφορίες των συμφραζομένων. Σημασιολογική Αναζήτηση Κώδικα σε Αποθήκες Λογισμικού με Τεχνικές Νευρωνικής Μηχανικής Μετάφρασης 11
  • 12. Neural Network (4/9) Ομοιότητα Επιφάνειας Τριγώνου - Ομοιότητα Επιφάνειας Τομέα: • Γεωμετρική υβριδική μετρική ομοιότητας. • Συνδυασμός ευκλείδειας απόστασης, μήκους και γωνίας μεταξύ των διανυσμάτων. • Διόρθωση όλων των αδυναμιών της ευκλείδειας απόστασης και της ομοιότητας συνημίτονου. • Όμοια χαρακτηρίζονται διανύσματα με μικρές ή μηδενικές διαφορές στην ευκλείδεια απόσταση, στο μήκος και στη μεταξύ τους γωνία. Σημασιολογική Αναζήτηση Κώδικα σε Αποθήκες Λογισμικού με Τεχνικές Νευρωνικής Μηχανικής Μετάφρασης 14
  • 13. Neural Network (5/9) Τετραγωνικές Απώλειες Περιθωρίου: • Επιτρεπτή τιμή περιθωρίου οποιαδήποτε θετική τιμή. • Η χρήση του τετραγώνου «τιμωρεί» περισσότερο τις μεγάλες και λιγότερο τις μικρές τιμές απωλειών. • Γρήγορη σύγκλιση στο ολικό ελάχιστο της συνάρτησης. Σημασιολογική Αναζήτηση Κώδικα σε Αποθήκες Λογισμικού με Τεχνικές Νευρωνικής Μηχανικής Μετάφρασης 16
  • 14. Neural Network (6/9) Βελτιστοποιητές (Optimizers): • Χρήση του βελτιστοποιητή Adam για την εκπαίδευση του δικτύου. • Εύρεση του βέλτιστου ρυθμού μάθησης με τη χρήση συνάρτησης εκθετικής αύξησης. • Εκπαίδευση του δικτύου για εκθετικά αυξανόμενο ρυθμό μάθησης. • Επιλογή ρυθμού μάθησης για τον οποίο υπάρχει απότομη μείωση απωλειών και απότομη αύξηση της ακρίβειας (accuracy). Σημασιολογική Αναζήτηση Κώδικα σε Αποθήκες Λογισμικού με Τεχνικές Νευρωνικής Μηχανικής Μετάφρασης 18
  • 15. Neural Network (7/9) Σημασιολογική Αναζήτηση Κώδικα σε Αποθήκες Λογισμικού με Τεχνικές Νευρωνικής Μηχανικής Μετάφρασης 19
  • 16. Neural Network (8/9) Σημασιολογική Αναζήτηση Κώδικα σε Αποθήκες Λογισμικού με Τεχνικές Νευρωνικής Μηχανικής Μετάφρασης 20
  • 17. Neural Network (9/9) Εκπαίδευση (Training): • Εκπαίδευση του δικτύου για 40 εποχές. • Αποθήκευση του μοντέλου όταν η τιμή της μετρικής MRR του συνόλου δεδομένων επικύρωσης (validation dataset) περνά την προηγούμενη καλύτερη τιμή. Υπερπαράμετρος Τιμή NUM_LAYERS 3 INPUT_VOCAB_SIZE 10.002 TARGET_VOCAB_SIZE 10.002 INPUT_POSITION 10.002 TARGET_POSITION 10.002 NUM_HEADS 8 DFF 512 D_MODEL 128 RATE 0,1 LEARNING_RATE 3.2e-4 MARGIN 5 EPOCHS 40 Σημασιολογική Αναζήτηση Κώδικα σε Αποθήκες Λογισμικού με Τεχνικές Νευρωνικής Μηχανικής Μετάφρασης 21
  • 18. Index Builder • Χρήση του εργαλείου Annoy του Spotify, το οποίο αποτελεί υλοποίηση του αλγορίθμου Αναζήτησης Πλησιέστερου Γείτονα (Nearest Neighbor Search). • Προσεγγιστικός αλγόριθμος για τη μείωση του χρόνου αναζήτησης. • Κατασκευή διανυσματικού χώρου με τη χρήση δυαδικών δέντρων, όπου κάθε κόμβος ανήκει σε μία ενσωμάτωση κώδικα. • Αναζήτηση του πιο όμοιου διανύσματος στο διάνυσμα εισαγωγής στα 10.000 κοντινότερα διανύσματα, έναντι των 1.569.889 που περιέχονται συνολικά στο διανυσματικό χώρο. Σημασιολογική Αναζήτηση Κώδικα σε Αποθήκες Λογισμικού με Τεχνικές Νευρωνικής Μηχανικής Μετάφρασης 26
  • 19. Search Engine (1/3) • Κατασκευή μίας διαδικτυακής εφαρμογής για την αναζήτηση ερωτημάτων. • Δημιουργία Γραφικού Περιβάλλοντος Χρήστη για εύκολη προσβασιμότητα. • Χρήση της υπηρεσίας App Engine της Πλατφόρμας Νέφους της Google (Google Cloud Platform). • Προεπεξεργασία των εισαγόμενων ερωτημάτων. • Επιστροφή ολοκληρωμένων τμημάτων κώδικα με τη χρήση του Νευρωνικού Δικτύου και του διανυσματικού χώρου που κατασκευάστηκε με το εργαλείο Annoy. Σημασιολογική Αναζήτηση Κώδικα σε Αποθήκες Λογισμικού με Τεχνικές Νευρωνικής Μηχανικής Μετάφρασης 27
  • 20. Search Engine (2/3) Σημασιολογική Αναζήτηση Κώδικα σε Αποθήκες Λογισμικού με Τεχνικές Νευρωνικής Μηχανικής Μετάφρασης 28
  • 21. Search Engine (3/3) Σημασιολογική Αναζήτηση Κώδικα σε Αποθήκες Λογισμικού με Τεχνικές Νευρωνικής Μηχανικής Μετάφρασης 29
  • 22. Αξιολόγηση του Συστήματος (1/5) Μετρικές Αξιολόγησης: • Precision at K (P@K): μετρά τη σχετικότητα των πρώτων Κ αποτελεσμάτων χωρίς να λαμβάνει υπόψη τη θέση τους στη λίστα αποτελεσμάτων. 𝑃@𝐾 = σ 𝑟𝑒𝑙𝑒𝑣𝑎𝑛𝑡 𝐾 • Mean Reciprocal Rank (MRR): μετρά τη θέση του πρώτου σχετικού ερωτήματος που συναντάται στη λίστα αποτελεσμάτων. 𝑀𝑅𝑅 = 1 𝑄 ෍ 𝑖=1 𝑄 1 𝑟𝑎𝑛𝑘𝑖 • Normalized Discounted Cumulative Gain (NDCG): μετρά τη σχετικότητα των αποτελεσμάτων λαμβάνοντας υπόψη τη θέση τους στη λίστα και το βαθμό της σχετικότητάς τους. 𝑁𝐷𝐶𝐺 = 𝐷𝐶𝐺 𝐼𝐷𝐶𝐺 𝐷𝐶𝐺 = σ𝑖=1 𝑁 2 𝑟𝑒𝑙 𝑖−1 𝑙𝑜𝑔2 𝑖+1 𝐼𝐷𝐶𝐺 = σ𝑖=1 𝑅𝐸𝐿 𝑁 2 𝑟𝑒𝑙 𝑖−1 𝑙𝑜𝑔2 𝑖+1 Σημασιολογική Αναζήτηση Κώδικα σε Αποθήκες Λογισμικού με Τεχνικές Νευρωνικής Μηχανικής Μετάφρασης 30
  • 23. Αξιολόγηση του Συστήματος (2/5) Μέθοδοι Αξιολόγησης: • Σύγκριση με το παρόμοιο σύστημα CodeSearchNet. • Σύγκριση των τιμών της MRR στα δεδομένα επικύρωσης και ελέγχου. • Χρήση των 99 ερωτημάτων με τα οποία αξιολογείται το εν λόγο σύστημα για τον υπολογισμό της NDCG. • Υπολογισμός της MRR για κάθε ένα από 99 ερωτήματα. • Εξέταση των αποτελεσμάτων του CODEtransformer σε ερωτήματα του Stack Overflow. • Χρήση 40 δημοφιλών ερωτημάτων που αφορούν τη γλώσσα Java. • Υπολογισμός της P@10 για κάθε ένα από 40 ερωτήματα. Σημασιολογική Αναζήτηση Κώδικα σε Αποθήκες Λογισμικού με Τεχνικές Νευρωνικής Μηχανικής Μετάφρασης 31
  • 24. Σύγκριση με το CodeSearchNet Σημασιολογική Αναζήτηση Κώδικα σε Αποθήκες Λογισμικού με Τεχνικές Νευρωνικής Μηχανικής Μετάφρασης 32
  • 25. Αξιολόγηση του Συστήματος (3/5) Σύστημα Validation MRR CodeSearchNet-NBoW 0,4972 CodeSearchNet-1D-CNN 0,4926 CodeSearchNet-biRNN 0,2713 CodeSearchNet-SelfAtt 0,5513 CODEtransformer 0,6260 Η μέτρηση της MRR στο σύνολο δεδομένων επικύρωσης κάθε συστήματος. Σύστημα Test MRR CodeSearchNet-NBoW 0,5140 CodeSearchNet-1D-CNN 0,5270 CodeSearchNet-biRNN 0,2865 CodeSearchNet-SelfAtt 0,5866 CODEtransformer 0,6263 Η μέτρηση της MRR στο σύνολο δεδομένων ελέγχου κάθε συστήματος. Σύστημα NDCG CodeSearchNet-NBoW 0,1207 CodeSearchNet-1D-CNN 0,1282 CodeSearchNet-biRNN 0,0623 CodeSearchNet-SelfAtt 0,1003 CODEtransformer 0,1028 Η μέτρηση της NDCG σε κάθε σύστημα. Σημασιολογική Αναζήτηση Κώδικα σε Αποθήκες Λογισμικού με Τεχνικές Νευρωνικής Μηχανικής Μετάφρασης 33
  • 26. Αξιολόγηση του Συστήματος (4/5) 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45 47 49 51 53 55 57 59 61 63 65 67 69 71 73 75 77 79 81 83 85 87 89 91 93 95 97 99 Η μέτρηση της MRR σε κάθε ένα από τα 99 ερωτήματα. Σημασιολογική Αναζήτηση Κώδικα σε Αποθήκες Λογισμικού με Τεχνικές Νευρωνικής Μηχανικής Μετάφρασης 34
  • 27. Δημοφιλή Ερωτήματα του Stack Overflow Σημασιολογική Αναζήτηση Κώδικα σε Αποθήκες Λογισμικού με Τεχνικές Νευρωνικής Μηχανικής Μετάφρασης 35
  • 28. Αξιολόγηση του Συστήματος (5/5) 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 Η μέτρηση της P@10 σε κάθε ένα από τα 40 ερωτήματα. Σημασιολογική Αναζήτηση Κώδικα σε Αποθήκες Λογισμικού με Τεχνικές Νευρωνικής Μηχανικής Μετάφρασης 36
  • 29. Συμπεράσματα • Η χρήση του CODEtransformer εξοικονομεί χρόνο και μειώνει το φόρτο εργασίας. • Η παρουσίαση ολοκληρωμένων τμημάτων κώδικα επισπεύδει την ανάπτυξη λογισμικού. • Η προεπεξεργασία και η ποιότητα των δεδομένων επηρεάζουν άμεσα την απόδοση του συστήματος. • Η αρχιτεκτονική των Μετασχηματιστών πραγματοποιεί βαθιά σημασιολογική ανάλυση. • Η χρήση της TS-SS εξασφαλίζει πραγματικά όμοιες ενσωματώσεις φυσικής γλώσσας και κώδικα. • Η διαδικτυακή εφαρμογή επιτρέπει γρήγορη και εύκολη πρόσβαση στο σύστημα. Σημασιολογική Αναζήτηση Κώδικα σε Αποθήκες Λογισμικού με Τεχνικές Νευρωνικής Μηχανικής Μετάφρασης 37
  • 30. Μελλοντική Εργασία • Η χρήση πραγματικών ερωτημάτων ως δεδομένα φυσικής γλώσσας, έναντι σχολιασμών κώδικα. • Η χρήση των ονομάτων των συναρτήσεων σε συνδυασμό με ερωτήματα φυσικής γλώσσας. • Η χρήση τεχνικών συμπίεσης Νευρωνικών Δικτύων. • Η βελτίωση του γραφικού περιβάλλοντος της διαδικτυακής εφαρμογής. Σημασιολογική Αναζήτηση Κώδικα σε Αποθήκες Λογισμικού με Τεχνικές Νευρωνικής Μηχανικής Μετάφρασης 38
  • 31. Ευχαριστίες Ευχαριστώ θερμά: • τον κ. Ανδρέα Συμεωνίδη, για την εμπιστοσύνη που μου έδειξε. • τον κ. Θεμιστοκλή Διαμαντόπουλο, για τη στήριξη και την καθοδήγησή του. • την οικογένεια και τους στενούς μου φίλους, για τη βοήθεια και την κατανόησή τους. • εσάς, για την προσοχή σας. Σημασιολογική Αναζήτηση Κώδικα σε Αποθήκες Λογισμικού με Τεχνικές Νευρωνικής Μηχανικής Μετάφρασης 39
  • 32. Ερωτήσεις Σημασιολογική Αναζήτηση Κώδικα σε Αποθήκες Λογισμικού με Τεχνικές Νευρωνικής Μηχανικής Μετάφρασης 40