Παρακάτω μπορείτε να βρείτε τα νέα θέματα διπλωματικών της Ομάδας Ευφυών Συστημάτων και Τεχνολογίας Λογισμικού. Οι φοιτητές που ενδιαφέρονται για διπλωματική εργασία παρακαλούνται να συμπληρώσουν τη φόρμα έκφρασης ενδιαφέροντος έως και τις 18/10/2024.
Παρουσίαση των θεμάτων και συζήτηση γύρω από τη διαδικασία ανάληψης και εκπόνησης των διπλωματικών θα γίνει την Παρασκευή 11/10/2024 στις 11.00, στο παρακάτω Zoom meeting:
- https://authgr.zoom.us/j/99805670226?pwd=OFlCQ2lzUXkxREJvYXhOUTlTZDQwZz09
- Meeting ID: 998 0567 0226
- Passcode: 082211
Σχετικά αρχεία:
- Παρουσίαση διπλωματικών (pptx): https://docs.google.com/presentation/d/1Tr4uUFnlBrG8Eb9__iL6VFUEUew-dh0If3M7j4KXdeM/edit?usp=sharing
- Μαγνητοσκόπηση παρουσίασης διπλωματικών: https://www.dropbox.com/scl/fo/e5kbt809zxxwmfjx2dh4z/AODWptt2ccUJ46GurjGtxiQ?rlkey=hlv1r0zk8k0lqlnbqz0y4s47t&dl=0
Τέλος, βρείτε σχετικές ερωτήσεις σχετικά με τη διαδικασία επιλογής και τις απαιτήσεις στον παρακάτω σύνδεσμο: Link.
Περιεχόμενα:
- TH-1/ Σχεδιασμός και υλοποίηση κειμενικής γλώσσας πεδίου προς παραγωγή εφαρμογών μηχανικής μάθησης σε ροές δεδομένων
- TH-2/ Αυτόματη δημιουργία προφίλ ροών δεδομένων, προς εντοπισμό μελλοντικών ανωμαλιών συμπεριφοράς
- TH-3/ Μελέτη και αξιολόγηση μεγάλων γλωσσικών μοντέλων στην ανάπτυξη λογισμικού με χρήση γλωσσών ειδικού πεδίου
- TH-4/ Ανάπτυξη συστήματος σημασιολογικού ελέγχου (semantic validator) μοντέλων γλωσσών ειδικού πεδίου με χρήση LLMs και τεχνικών Prompt engineering.
- TH-5/ Γραμμική συνένωση μπλοκ κώδικα με υποβοήθηση από μεγάλα γλωσσικά μοντέλα (LLM-assisted linear code block synthesis)
- TH-6/ Δημιουργία ψηφιακού Code Reviewer για διαδικασίες Pull-Request σε ανοιχτά αποθετήρια λογισμικού
- TH-7/ Δημιουργία συστήματος αναγνώρισης και επιδιόρθωσης μη φυσιολογικών καταστάσεων σε συστήματα λογισμικού με βάση unit testing
- TH-8/ Malware Playground: Ανάπτυξη πλατφόρμας αυτοματοποιημένης εκτέλεσης και ανάλυσης κακόβουλου λογισμικού
- TH-9/ Αυτοματοποιημένη Επιμέλεια Δεδομένων με χρήση μηχανικής μάθησης
- TH-10/ Σχεδίαση και ανάπτυξη διαλογικού βοηθού (bot) για την ανάλυση εργασιών λογισμικού από δεδομένα συστημάτων ελέγχου εκδόσεων
- TH-11/ Ανάπτυξη Τεχνικών ενίσχυσης της Διαφάνειας των Απαντήσεων των Γλωσσικών Μοντέλων
- TH-12/ Ανάπτυξη πλατφόρμας αυτοματοποιημένης διαχείρισης ποιότητας δεδομένων με εφαρμογή σε δεδομένα Μηχανικής Λογισμικού
- TH-13/ Εφαρμογή τεχνικών μηχανικής μάθησης για ροές δεδομένων σε δεδομένα διαδικασιών λογισμικού
Σχεδιασμός και υλοποίηση κειμενικής γλώσσας πεδίου προς παραγωγή εφαρμογών μηχανικής μάθησης σε ροές δεδομένων
Ένας από τους τεχνολογικούς τομείς οι οποίοι έχουν βιώσει έκρηξη τα τελευταία χρόνια είναι αυτός της μηχανικής μάθησης. Πλέον, δεδομένης της εποχής της πληροφορίας που ζούμε, δεν νοείται να υπάρχει παραγωγή/καταγραφή δεδομένων χωρίς να συνοδεύεται από έναν αλγόριθμο μηχανικής μάθησης ή/και επεξεργασίας δεδομένων για την αποθορυβοποίησή τους ή την αυτόματη εξαγωγή συμπερασμάτων. Εξαιτίας της τεράστιας ανάγκης της αγοράς για αλγορίθμους μηχανικής μάθησης, υπάρχει ένας μεγάλος αριθμός low/no-code πλατφορμών, ελεύθερες προς χρήση ή υπό εμπορική άδεια, οι οποίες προσφέρουν δυνατότητες γραφικού σχεδιασμού μιας λύσης ML, η χρήση των οποίων είναι αρκετά απλή ακόμη και από citizen developers. Παρόλα αυτά, η συντριπτική πλειοψηφία των πλατφορμών αυτών προσφέρουν τις υπηρεσίες τους για στατικά σύνολα δεδομένων, τα οποία πρέπει να εισαχθούν στο αντίστοιχο πακέτο ώστε να εκτελεστούν οι αναλύσεις. Στην παρούσα διπλωματική, θα υλοποιηθούν DSLs προσανατολισμένες σε αλγορίθμους μηχανικής μάθησης και επεξεργασίας δεδομένων, οι οποίοι θα εφαρμόζονται (κυρίως) σε live δεδομένα, προσφέροντας τα αποτελέσματά τους επίσης σαν ροές. Στόχος είναι να δημιουργηθούν εργαλεία, τα οποία θα μπορούν να επεξεργάζονται δεδομένα που παράγονται από κυβερνοφυσικά συστήματα, και να τα οπτικοποιούν σε Dashboards, μέσω μετασχηματισμών σε άλλες DSLs.
- Επιθυμητές γνώσεις: Linux OS, Software Engineering, Python
- Εμπλεκόμενες Τεχνολογίες – Γνώσεις που θα αποκτηθούν: Python, Domain-specific Languages (DSLs), Model-driven Development, Software automation
- Εκτιμώμενος Χρόνος Περάτωσης: 9-12 Μήνες
- Συνεργαζόμενος Ερευνητής: Τσαρδούλιας Εμμανουήλ
- Σχετικό link:
Αυτόματη δημιουργία προφίλ ροών δεδομένων, προς εντοπισμό μελλοντικών ανωμαλιών συμπεριφοράς
Η εποχή που ζούμε έχει χαρακτηριστεί ως εποχή της πληροφορίας, αφού όλο και περισσότερες ηλεκτρονικές συσκευές παράγουν και διαμοιράζουν δεδομένα καθημερινά. Συνήθως οι “έξυπνες” αυτές συσκευές αλληλεπιδρούν με το διαδίκτυο μέσω ροών δεδομένων (topics με χρήση IoT brokers), ενώ υπάρχουν πολλές συζητήσεις για το πόσο ασφαλή είναι τα παραπάνω συστήματα, αφού μπορεί να συμβεί κάποιο σφάλμα σε πολλαπλά επίπεδα. Στην παρούσα διπλωματική εργασία θα ασχοληθούμε με streams δεδομένων, και στόχος της οποίας θα είναι η αυτόματη δημιουργία προφίλ της ροής, και ο μετέπειτα εντοπισμός πιθανών ανωμαλιών. Συγκεκριμένα θα διερευνηθούν: δομή του data structure, περιοδικότητες αποστολής σε διαφορετικά χρονικά παράθυρα, στατιστικά κάθε μέλους του data structure κ.α., δημιουργώντας δυναμικά ένα προφίλ της “κανονικής” λειτουργίας του stream. Όταν το σύστημα θεωρήσει ότι το προφίλ είναι ολοκληρωμένο, θα ξεκινά ο έλεγχος για πιθανές ανωμαλίες, οι οποίες μπορεί να οφείλονται α) σε ελαττωματικό υλικό, β) σε αλλαγή των συνθηκών εκτέλεσης/περιβάλλοντος, γ) σε κυβερνοεπίθεση κ.α. Τελικός στόχος είναι η ενημέρωση του κατόχου της ροής. Π.χ. Διαθέτουμε έναν αισθητήρα θερμοκρασίας ο οποίος αποστέλλει δεδομένα μία φορά το λεπτό. Το σύστημα παρατηρεί ότι υπάρχει μία συγκεκριμένη, ημιτονοειδής κυματομορφή με περιοδικότητα ημέρας (αυξάνεται η θερμοκρασία την ημέρα, πέφτει την νύχτα). Όταν εντοπιστεί μία ανωμαλία (π.χ. Η θερμοκρασία αυξάνεται απότομα, ή η συχνότητα της περιοδικότητας γίνει μεγαλύτερη, ή αλλάξει η συχνότητα αποστολής των μηνυμάτων), πρέπει να ενημερωθούμε για κάποιο πιθανό σφάλμα, ώστε να δράσουμε (να ελέγξουμε τον αισθητήρα).
- Επιθυμητές γνώσεις: Python, μαθηματικό υπόβαθρο, ανάλυση σημάτων, φίλτρα
- Εμπλεκόμενες Τεχνολογίες – Γνώσεις που θα αποκτηθούν: Python, IoT brokers, Data stream processing, μαθηματική μοντελοποίηση ροών
- Εκτιμώμενος Χρόνος Περάτωσης: 9-12 Μήνες
- Συνεργαζόμενος Ερευνητής: Τσαρδούλιας Εμμανουήλ
- Σχετικό link: -
Μελέτη και αξιολόγηση μεγάλων γλωσσικών μοντέλων στην ανάπτυξη λογισμικού με χρήση γλωσσών ειδικού πεδίου
Στη σύγχρονη εποχή, το λογισμικό τείνει να αναπτύσσεται χρησιμοποιώντας μεθοδολογίες και πλατφόρμες low/no-code. Όσον αφορά την μειωμένου κώδικα ανάπτυξη λογισμικού, μια προσέγγιση είναι η χρήση Γλωσσών Ειδικού Πεδίου (Domain-specific Languages - DSLs) και μηχανισμών αυτοματοποίησης (transformations, code generation κτλ). Παράλληλα, η εμφάνιση των LLMs έχει αλλάξει τον τρόπο με τον οποίο αναπτύσσεται το λογισμικό, αφού είναι πλέον ικανά να προτείνουν τμήματα λογισμικού (code snippets) σε state-of-play γλώσσες προγραμματισμού (π.χ. Python, C++, Java και Javascript) δοσμένων λεκτικών περιγραφών. Η παρούσα διπλωματική εργασία στοχεύει στην ανάπτυξη μηχανισμού αυτοματοποίησης της διαδικασίας συγγραφής μοντέλων σε κειμενικές DSLs χρησιμοποιώντας LLMs, και η αξιολόγηση αυτού ως προς: α) την ποιότητα, β) την αξιοπιστία, γ) την ταχύτητα.
- Επιθυμητές γνώσεις: Linux OS, Software Engineering, Python
- Εμπλεκόμενες Τεχνολογίες – Γνώσεις που θα αποκτηθούν: Domain-specific Languages, LLMs, Python, Prompt Engineering
- Εκτιμώμενος Χρόνος Περάτωσης: 9-12 Μήνες
- Συνεργαζόμενος Ερευνητής: Παναγιώτου Κωνσταντίνος, Θωμάς Καρανικιώτης
- Σχετικό link:
Ανάπτυξη συστήματος σημασιολογικού ελέγχου (semantic validator) μοντέλων γλωσσών ειδικού πεδίου με χρήση LLMs και τεχνικών Prompt engineering
Σήμερα είναι πολύ συχνή η χρήση low/no-code συστημάτων για την ανάπτυξη λογισμικού τα οποία δεν απαιτούν υψηλού επιπέδου γνώσεις προγραμματισμού ή ειδικές γνώσεις του πεδίου εφαρμογής. Όσον αφορά την low-code ανάπτυξη λογισμικού, μια προσέγγιση είναι η χρήση Γλωσσών Ειδικού Πεδίου (Domain-specific Languages - DSLs) και μηχανισμών αυτοματοποίησης (transformations, code generation κτλ). Έτσι, μειώνεται η δυσκολία και ο χρόνος ανάπτυξης τέτοιων συστημάτων. Παράλληλα, η χρήση των LLMs έχει αλλάξει τον τρόπο με τον οποίο επικοινωνούμε με συστήματα και η χρήση τους είναι πολύ συχνή ακόμα και κατά την ανάπτυξη συστημάτων λογισμικού. Έτσι, μπορούν τα LLMs να χρησιμοποιηθούν ως μια διαλογική διεπαφή των DSLs, όπου οι χρήστες/προγραμματιστές μπορούν να περιγράφουν το τελικό σύστημα που θέλουν και το LLM που εκπαιδεύεται στην εκάστοτε DSL παράγει το αντίστοιχο μοντέλο, έτοιμο για χρήση. Σ αυτή τη διαδικασία υπάρχει ένας validator που ελέγχει αν το κάθε μοντέλο είναι συντακτικά ορθό, σύμφωνα με το συντακτικό κάθε DSL, και αν ακολουθεί κάποιους κανόνες που έχουν οριστεί. Ωστόσο, ο validator αυτός ελέγχει αποκλειστικά συντακτικά λάθη ή παραλείψεις. Δεν μπορεί να ελέγξει αν το κάθε μοντέλο λύνει το πρόβλημα που περιγράφτηκε από τον χρήστη. Στην διπλωματική αυτή θα αναπτυχθεί ένας τέτοιος semantic validator που θα χρησιμοποιεί LLMs, θα μαθαίνει την εκάστοτε DSL, και θα ελέγχει αν το παραχθέν μοντέλο είναι νοηματικά ορθό και λύνει το πρόβλημα που περιγράφτηκε από τον χρήστη. Σε αρνητικές περιπτώσεις θα επιχειρεί να εξηγήσει στον χρήστη τα λάθη του μοντέλου και να το βελτιώσει ή να προτείνει αλλαγές στον χρήστη.
- Επιθυμητές γνώσεις: Software Engineering, Python
- Εμπλεκόμενες Τεχνολογίες – Γνώσεις που θα αποκτηθούν: Python, Domain-specific Languages (DSLs), Software automation, LLMs, Prompt engineering, Full-stack development
- Εκτιμώμενος Χρόνος Περάτωσης: 9-12 Μήνες
- Συνεργαζόμενος Ερευνητής: Νικόλας Μάλαμας
- Σχετικό link: -
Γραμμική συνένωση μπλοκ κώδικα με υποβοήθηση από μεγάλα γλωσσικά μοντέλα (LLM-assisted linear code block synthesis)
Η αυτόματη σύνθεση κώδικα από περιγραφές φυσικής γλώσσας είναι μια από τις δημοφιλέστερες λειτουργίες των μεγάλων γλωσσικών μοντέλων. Μια υποσχόμενη μεθοδολογία σύνθεσης συνίσταται στην κατασκευή βάσης δεδομένων από μπλοκ κώδικα προς επαναχρησιμοποίηση, και την ένωση αυτών που καλύπτουν διαφορετικά τμήματα της δοσμένης περιγραφής. Έτσι, διατηρείται η πηγή προέλευσης του κώδικα, και -όταν επαναχρησιμοποιούνται ελεγμένα μπλοκ- εισάγονται θεωρητικές εγγυήσεις μερικής ορθότητας. Σε αυτή τη διπλωματική θα μελετηθούν πιθανοί τρόποι αναζήτησης και συνένωσης των μπλοκ κώδικα από μεγάλα γλωσσικά μοντέλα, όπως ένωση μέσω εξίσωσης μεταβλητών ή μέσω μετεκπαίδευσης (transfer learning) για τη βελτίωση ερωτημάτων συνδυασμού κώδικα. Τελικός σκοπός είναι η δημιουργία ενός πρακτικώς χρήσιμου μηχανισμού σύνθεσης που επιλύει περίπλοκα προβλήματα εφόσον υπάρχουν δεδομένα αναφοράς. Αναλόγως με την πορεία της διπλωματικής, ο μηχανισμός σύνθεσης θα ενσωματωθεί σε υπάρχουσα διαδικτυακή εφαρμογή. Εκτός από το ανεπτυγμένο σύστημα, θα οργανωθεί και διαδικασία αυτοματοποιημένης αξιολόγησής του λαμβάνοντας υπόψη παραδείγματα από Jupyter notebooks γνωστών έργων λογισμικού.
- Επιθυμητές γνώσεις: Software Engineering
- Εμπλεκόμενες Τεχνολογίες – Γνώσεις που θα αποκτηθούν: Python, Code synthesis, Prompt Engineering, και αναλόγως απαιτήσεων Transfer Learning και Vector Databases
- Εκτιμώμενος Χρόνος Περάτωσης: 9-12 Μήνες
- Συνεργαζόμενος Ερευνητής: Εμμανουήλ Κρασανάκης
- Σχετικό link:-
Δημιουργία ψηφιακού Code Reviewer για διαδικασίες Pull-Request σε ανοιχτά αποθετήρια λογισμικού
Κατά τη φάση ανάπτυξης λογισμικού, ένα από τα πιο χρονοβόρα σημεία αφορά τις διαδικασίες αξιολόγησης των Pull-Request (PR), μια διαδικασία που γίνεται χειροκίνητα. Σε αυτή τη διαδικασία, οι υπεύθυνοι του εκάστοτε project πρέπει να αξιολογήσουν τις διαφορετικές εκδόσεις του κώδικα, με σκοπό την αδιάκοπη, σωστή και ασφαλή λειτουργία του λογισμικού. Ένας τομέας που τείνει να έχει σφάλματα είναι αυτός της ασφάλειας και του κακόβουλου λογισμικού, ειδικά σε πιο σύνθετες εφαρμογές καθώς τα διανύσματα ευπαθειών και κακόβουλων επιθέσεων πολλαπλασιάζονται. Σε αυτή τη διπλωματική εργασία στόχος είναι η δημιουργία ενός plugin που θα αυτοματοποιεί τη διαδικασία ελέγχου του λογισμικού για ευπάθειες ασφάλειας. Αρχικά, θα μελετηθούν τρόποι με τους οποίους μπορεί να αξιολογηθεί ένα κομμάτι κώδικα ως προς την ασφάλειά του, με σκοπό τον διαχωρισμό αυτών με βάση τη σοβαρότητά τους. Κατόπιν, θα δημιουργηθεί ένα σύστημα κατά το οποίο θα υπολογίζεται το πόσο ασφαλής είναι ο κώδικας στη νέα του έκδοση. Τέλος, θα υλοποιηθεί το προαναφερθέν plugin, το οποίο θα διενεργεί ελέγχους ασφαλείας στην πλατφόρμα του GitHub στα πλαίσια ενός pull request, και θα είναι σε θέση να είναι ένας εκ των αξιολογητών του (Reviewer). Βασική του λειτουργία θα είναι η έγκριση ενός PR, ενώ θα είναι και σε θέση να μην επιτρέπει τη συνένωση μη ασφαλούς λογισμικού με το codebase του εκάστοτε repository, καθοδηγώντας παράλληλα στον εκάστοτε developer με πιθανές διορθώσεις.
- Επιθυμητές γνώσεις: Python, AI/ML, Software Engineering, GitHub
- Εμπλεκόμενες Τεχνολογίες – Γνώσεις που θα αποκτηθούν: Python, GitHub, Cyber Security, Static Code Analysis, ψηφιακοί βοηθοί
- Εκτιμώμενος Χρόνος Περάτωσης: 9-12 Μήνες
- Συνεργαζόμενος Ερευνητής: Σιαχάμης Γεώργιος
- Σχετικό link: -
Δημιουργία συστήματος αναγνώρισης και επιδιόρθωσης μη φυσιολογικών καταστάσεων σε συστήματα λογισμικού με βάση unit testing
Είναι δεδομένο ότι η γενικότερη έξαρση των (μεγάλων) γλωσσικών μοντέλων έχει φέρει στην επιφάνεια εφαρμογές που προ δεκαετίας φάνταζαν πολύ δύσκολες στην υλοποίηση. Πράγματι, τα συγκεκριμένα μοντέλα είναι σε θέση να φέρουν εις πέρας ένα μεγάλο εύρος διεργασιών ως έχουν, ακόμα και σε επίπεδο κώδικα, καθώς η αυτόματη παραγωγή και επεξήγηση κώδικα είναι δύο πολύ σημαντικά πεδία εφαρμογής. Με δεδομένη την ικανότητα των μοντέλων αυτών να επεξεργάζονται μεγάλο όγκο σύνθετων δεδομένων, οι προοπτικές τους δεν έχουν ακόμα ερευνηθεί πλήρως, ενώ ταυτόχρονα επεκτείνονται. Στόχος αυτής της διπλωματικής είναι η δημιουργία ενός συστήματος, το οποίο θα είναι σε θέση να “διαβάζει” την κατάσταση μιας εφαρμογής και με τη χρήση γλωσσικών μοντέλων, να επιστρέφει στον ενδιαφερόμενο χρήστη μια αναφορά, η οποία θα ειδοποιεί σε περίπτωση μη αναμενόμενης κατάστασης ως προς το τι είναι το πρόβλημα, και τι πρέπει να συμβεί. Το σύστημα, με βάση την παραπάνω αναφορά, θα μπορεί να εντοπίζει σε ποιο κομμάτι του κώδικα μέσα στο repository υπάρχει το σχετικό ζήτημα και θα παραθέτει λύση για αυτό, συνυπολογίζοντας τα πιθανά unit tests που έχουν γραφτεί ή και άλλες ανάγκες για την εφαρμογή ή το σύστημα (πχ code quality metrics). Τέλος, θα εφαρμόζει τη λύση σε μια υποδομή και αν λειτουργεί όπως αναμένεται, η αλλαγή θα περνάει στον κώδικα. Μετά από αυτό, θα πρέπει το εκάστοτε πρόβλημα να έχει εκλείψει από την αναφορά.
- Επιθυμητές γνώσεις: Python/JavaScript, AI/ML, Software Engineering, GitHub
- Εμπλεκόμενες Τεχνολογίες – Γνώσεις που θα αποκτηθούν: Prompt Engineering, (Large) Language Models, relevant frameworks (σχετικά links παρακάτω), Full-Stack Development
- Εκτιμώμενος Χρόνος Περάτωσης: 9-12 Μήνες
- Συνεργαζόμενος Ερευνητής: Σιαχάμης Γεώργιος, Παναγιώτου Κωνσταντίνος, Μάλαμας Νικόλας
- Σχετικό link:
- https://www.llamaindex.ai/
- https://python.langchain.com/v0.1/docs/use_cases/code_understanding/
- https://dl.acm.org/doi/pdf/10.1145/3469440
- https://ieeexplore.ieee.org/stamp/stamp.jsp?arnumber=10354608&casa_token=HeYVFZI2P0EAAAAA:jXd7Mw-p5jRDVfiqy8NqsGqONXKqc320Qj2v_WN33QUDBZ7q_VklaRHVGb8yyQTQjFRQ4zWWFuA
Malware Playground: Ανάπτυξη πλατφόρμας αυτοματοποιημένης εκτέλεσης και ανάλυσης κακόβουλου λογισμικού
Η δυναμική ανάλυση κακόβουλου λογισμικού είναι η διαδικασία παρατήρησης και ανάλυσης της συμπεριφοράς πιθανώς κακόβουλων εκτελέσιμων αρχείων κατά τη διάρκεια της εκτέλεσής τους. Αυτή η διαδικασία είναι επικίνδυνη για τα συστήματα που την εκτελούν και συνήθως πραγματοποιείται σε ελεγχόμενα περιβάλλοντα, τα οποία προσομοιώνουν ρεαλιστικές συνθήκες υπολογιστικών συστημάτων. Τα περιβάλλοντα αυτά χρειάζονται ιδιαίτερη θωράκιση για να αποτραπεί η διάδοση ή η πρόκληση ζημιάς από το κακόβουλο λογισμικό, καθιστώντας τη διαδικασία αυτή συνήθως χρονοβόρα και απαιτητική. Στόχος αυτής της διπλωματικής είναι η ανάπτυξη μιας πλατφόρμας για αυτοματοποιημένη εκτέλεση και ανάλυση κακόβουλου λογισμικού, με έμφαση στην ασφάλεια και την αποδοτικότητα. Η πλατφόρμα θα επιτρέπει τη δημιουργία και διαχείριση ασφαλών περιβαλλόντων εκτέλεσης, την ενσωμάτωση εργαλείων ανάλυσης και την αυτόματη εξαγωγή των αποτελεσμάτων. Με δυνατότητα παραμετροποίησης και εκτέλεσης πολλαπλών αναλύσεων ταυτόχρονα, το σύστημα θα προσφέρει μια σύγχρονη και ασφαλή προσέγγιση στη μελέτη κακόβουλου λογισμικού.
- Επιθυμητές γνώσεις: Linux, Linux Kernel, Python
- Εμπλεκόμενες Τεχνολογίες – Γνώσεις που θα αποκτηθούν: Sandboxing, Dynamic Malware Analysis, Cybersecurity, Digital Forensics, Kata/Docker Containers, Python
- Εκτιμώμενος Χρόνος Περάτωσης: 9-12 Μήνες
- Συνεργαζόμενος Ερευνητής: Νάτσος Δημοσθένης
- Σχετικό link:
Αυτοματοποιημένη Επιμέλεια Δεδομένων με χρήση μηχανικής μάθησης
Τα τελευταία χρόνια, ο τομέας των Μεγάλων Δεδομένων έχει σημειώσει σημαντική ανάπτυξη, καθώς παράγονται συνέχεια νέα σύνολα δεδομένων που είναι συνήθως μη δομημένα ή ημιδομημένα, έχουν μεγάλο μέγεθος και πολυπλοκότητα, ενώ μπορεί να περιέχουν ανακρίβειες, ασυνέπειες (data inconsistencies) ή κενά (missing values). Σε αυτό το πλαίσιο, μία από τις σημαντικότερες εργασίες είναι η επιμέλεια των δεδομένων, γνωστή ως Data Curation. Υπάρχουν διαφορετικές μεθοδολογίες για data curation με περισσότερη ή λιγότερη προσπάθεια από τους μηχανικούς (π.χ. crowdsourcing curation όπως η Wikipedia, expert-based, μέσω κάποιου συστήματος με ελέγχους, κτλ.) [1]. Μια σύγχρονη προσέγγιση στο data curation προτείνει την προτυποποίηση της διαδικασίας, καταγράφοντας κανόνες που αφορούν τις μεταβλητές των δεδομένων (π.χ. έλεγχος ότι ένα κρίσιμο variable δεν έχει missing values ή ότι μια μεταβλητή είναι μεταξύ συγκεκριμένων ορίων), και στη συνέχεια επιβλέποντας την τήρησή τους από το εκάστοτε σύνολο δεδομένων [2, 3]. Τα συστήματα αυτά, ωστόσο, απαιτούν σημαντική προσπάθεια από το χρήστη, που πρέπει να ορίσει τις μεταβλητές αλλά και τα όρια των κανόνων. Στόχος της διπλωματικής είναι να αυτοματοποιηθεί η παραπάνω διαδικασία, μέσα από ένα έξυπνο σύστημα που θα βασίζεται σε τεχνικές Μηχανικής Μάθησης. Το σύστημα θα μπορεί να λαμβάνει ως είσοδο ένα σύνολο δεδομένων, να αναγνωρίζει τις βασικές μεταβλητές του, να θέτει κανόνες και όρια, καθώς επίσης και να κάνει τους ελέγχους. Επιπλέον, θα πρέπει να προτείνει μετασχηματισμούς δεδομένων στο χρήση (π.χ. απαλοιφή διπλοτύπων, εντοπισμός και απομάκρυνση ακραίων τιμών, κ.α.), τους οποίους και θα εφαρμόζει, εφόσον ο χρήστης συμφωνεί.
- Επιθυμητές γνώσεις: Python, Βάσεις Δεδομένων
- Εμπλεκόμενες Τεχνολογίες – Γνώσεις που θα αποκτηθούν: Python, Μηχανική Μάθηση, Μηχανική Δεδομένων
- Εκτιμώμενος Χρόνος Περάτωσης: 6-9 Μήνες
- Συνεργαζόμενος Ερευνητής: Θεμιστοκλής Διαμαντόπουλος, Δημήτρης Νάστος
- Σχετικό link:
- [1] Freitas, A., Curry, E. (2016). Big Data Curation. In New Horizons for a Data-Driven Economy. Springer, Cham, https://web.archive.org/web/20190225194946id_/https://core.ac.uk/download/pdf/81608936.pdf
- [2] Cosley, D. et al. (2007). SuggestBot: using intelligent task routing to help people find work in wikipedia. In 12th international conference on Intelligent user interfaces (pp. 32-41), https://www.cs.cornell.edu/~danco/research/papers/suggestbot-iui07.pdf
- [3] Schelter, S. et al. (2018). Automating large-scale data quality verification. VLDB Endowment, https://dm-gatech.github.io/CS8803-Fall2018-DML-Papers/p1781-schelter.pdf
- [4] Chen, Z. et al. (2023). Lingua Manga: A Generic Large Language Model Centric System for Data Curation. ArXiv, abs/2306.11702. https://doi.org/10.48550/arXiv.2306.11702.
Σχεδίαση και ανάπτυξη διαλογικού βοηθού (bot) για την ανάλυση εργασιών λογισμικού από δεδομένα συστημάτων ελέγχου εκδόσεων
Η ταχεία εξάπλωση του διαδικτύου και το πρότυπο του λογισμικού ανοικτού κώδικα έχουν αλλάξει ριζικά τον τρόπο ανάπτυξης λογισμικού τα τελευταία χρόνια. Τα έργα λογισμικού σήμερα αναπτύσσονται συνεργατικά σε διαδικτυακά αποθετήρια λογισμικού, όπως το GitHub, που επιτρέπουν αποτελεσματικό έλεγχο εκδόσεων (version control), αλλά και διαχείριση του έργου (π.χ. καταγραφή σφαλμάτων, ανάθεση εργασιών στους προγραμματιστές, κ.α.). Τα συστήματα αυτά περιέχουν πλήθος χρήσιμων πληροφοριών που αφορούν τα commits, τα issues (bugs κ.α.) και το ανθρώπινο δυναμικό ενός έργου λογισμικού. Ως εκ τούτου, τα δεδομένα τους μπορούν να αξιοποιηθούν κατά τη διαδικασία ανάπτυξης λογισμικού, απαντώντας διάφορα χρήσιμα ερωτήματα, όπως ποιος είναι ο πιο συχνός τύπος σφάλματος, σε ποια αρχεία γίνονται πιο συχνά αλλαγές, ακόμα και ποιος είναι ο κατάλληλος προγραμματιστής για να επιλύσει ένα σφάλμα (με βάση την εμπειρία του σε αντίστοιχα ζητήματα) [1]. Επιπλέον, αξιοποιώντας αυτά τα δεδομένα θα ήταν εφικτό να διευκολυνθεί η ένταξη νέων μελών στην ομάδα ή ακόμα και η συνεισφορά σε ανοικτά έργα λογισμικού [2]. Τα παραπάνω ερωτήματα απαιτούν αποτελεσματική εξόρυξη δεδομένων, αλλά και κατάλληλο τρόπο επικοινωνίας με τον τελικό χρήστη (μηχανικό/ομάδα ανάπτυξης του έργου). Στο πλαίσιο αυτό, ο σκοπός της διπλωματικής είναι η σχεδίαση ενός διαλογικού βοηθού (bot) που θα αυτοματοποιεί τη διαδικασία ανάλυσης εργασιών και συνολικά τη σωστή διαχείριση εργασιών με βάση δεδομένα από συστήματα ελέγχου εκδόσεων. Το bot που θα αναπτυχθεί θα πρέπει να μπορεί να εξάγει τη χρήσιμη πληροφορία από αποθετήρια μέσω τεχνικών ανάλυσης δεδομένων και να απαντήσει σε ερωτήματα φυσικής γλώσσας.
- Επιθυμητές γνώσεις: Python, Μηχανική Λογισμικού
- Εμπλεκόμενες Τεχνολογίες – Γνώσεις που θα αποκτηθούν: Εξόρυξη Δεδομένων, Μηχανική Λογισμικού, Επεξεργασία Φυσικής Γλώσσας
- Εκτιμώμενος Χρόνος Περάτωσης: 6-9 Μήνες
- Συνεργαζόμενος Ερευνητής: Θεμιστοκλής Διαμαντόπουλος, Δημήτρης Νάστος
- Σχετικό link:
- [1] Abdellatif, Ahmad, Khaled Badran, and Emad Shihab. "MSRBot: Using bots to answer questions from software repositories." Empirical Software Engineering 25 (2020): 1834-1863, https://arxiv.org/pdf/1905.06991.pdf
- [2] Dominic, J., Houser, J., Steinmacher, I., Ritter, C., & Rodeghero, P. (2020, June). Conversational bot for newcomers onboarding to open source projects. In Proceedings of the ieee/acm 42nd international conference on software engineering workshops (pp. 46-50), https://mail.igor.pro.br/publica/papers/BOTSE2020_B.pdf
Ανάπτυξη Τεχνικών ενίσχυσης της Διαφάνειας των Απαντήσεων των Γλωσσικών Μοντέλων
Τα Μεγάλα Γλωσσικά Μοντέλα (LLMs), όπως τα GPT, τα LLama και το Gemini, έχουν φέρει επανάσταση στην επεξεργασία φυσικής γλώσσας, βρίσκοντας εφαρμογή σε διάφορα πεδία, από συστήματα διαλόγου και μηχανές αναζήτησης, μέχρι συστήματα υποστήριξης αποφάσεων. Σε πολλές περιπτώσεις, για να ανταποκριθούν σε εξειδικευμένα ζητήματα, τα LLMs συνδυάζονται με τεχνικές ανάκτησης πληροφοριών (Information Retrieval) από εξωτερικές βάσεις δεδομένων, προκειμένου να αντλήσουν σχετικές πληροφορίες και να παρέχουν πιο ακριβείς και καταλληλότερες απαντήσεις. Παρότι αυτά τα συστήματα έχουν αποδειχθεί αρκετά αποτελεσματικά, σε πολλές περιπτώσεις εξακολουθεί να υφίσταται το πρόβλημα της έλλειψης διαφάνειας κατά την παραγωγή των απαντήσεων από τα μοντέλα αυτά. Συγκεκριμένα σε πολλές περιπτώσεις οι απαντήσεις δίνονται χωρίς επαρκή αιτιολόγηση και απουσιάζει η αναφορά στα συγκεκριμένα δεδομένα που χρησιμοποιήθηκαν για τη δημιουργία τους. Αυτό μπορεί να δημιουργήσει ανησυχίες στους χρήστες σχετικά με την αξιοπιστία των αποτελεσμάτων και να περιορίσει τη χρήση αυτών των τεχνολογιών σε ευαίσθητα ή κρίσιμα περιβάλλοντα. Ο στόχος αυτής της διπλωματικής εργασίας είναι να αναπτύξει τεχνικές που θα επιχειρούν να επιλύσουν αυτά τα προβλήματα, προσπαθώντας να ενσωματώσουν επεξηγήσεις για την ακολουθούμενη διαδικασία παραγωγής απαντήσεων, καθώς και αναφορές στα ακριβή δεδομένα στα οποία στηρίζεται η εκάστοτε απάντηση που παράγεται από τα γλωσσικά μοντέλα κατά την παραγωγή των απαντήσεων. Με αυτό τον τρόπο, θα επιτευχθεί η ενίσχυση της αξιοπιστίας των γλωσσικών μοντέλων, καθιστώντας τα καταλληλότερα για χρήση σε πιο απαιτητικά και υπεύθυνα πλαίσια, όπου η διαφάνεια και η επεξήγηση των αποτελεσμάτων της τεχνητής νοημοσύνης (Explainable AI) αποτελούν κεντρικές απαιτήσεις.
- Επιθυμητές γνώσεις: Python, Deep Learning
- Εμπλεκόμενες Τεχνολογίες – Γνώσεις που θα αποκτηθούν: Επεξεργασία Φυσικής Γλώσσας, Prompt Engineering, Information Retrieval
- Εκτιμώμενος Χρόνος Περάτωσης: 6-9 Μήνες
- Συνεργαζόμενος Ερευνητής: Δημήτρης Νάστος, Θεμιστοκλής Διαμαντόπουλος
- Σχετικό link:
- [1] Haiyan Zhao et al., 2024. Explainability for Large Language Models: A Survey. ACM Trans. Intell. Syst. Technol. 15, 2, Article 20 (April 2024). https://doi.org/10.1145/3639372
- [2] South, Tobin et. al, Transparency by Design for Large Language Models (May 25, 2023). Computational Legal Futures, Network Law Review. (2023), https://ssrn.com/abstract=4468791
Ανάπτυξη πλατφόρμας αυτοματοποιημένης διαχείρισης ποιότητας δεδομένων με εφαρμογή σε δεδομένα Μηχανικής Λογισμικού
Ένα σημαντικό βήμα για τις ανάγκες της ανάλυσης δεδομένων είναι η διαχείριση της ποιότητάς τους, που περιλαμβάνει συνήθως την πληρότητα (completeness), την ακρίβεια (accuracy), την αξιοπιστία (reliability), τη συνέπεια (consistency) και την εγκαιρότητα (timeliness). Σύνολα δεδομένων που παρουσιάζουν υψηλή ποιότητα διευκολύνουν την ανάλυση και τελικά την εξαγωγή συμπερασμάτων και λήψη αποφάσεων σε διάφορους τομείς [1]. Σε αυτό το πλαίσιο, έχουν αναπτυχθεί διάφορες μεθοδολογίες για την αξιολόγηση της ποιότητας δεδομένων και ενίοτε την βελτίωσή τους [2, 3, 4]. Ωστόσο, οι μεθοδολογίες αυτές συνήθως περιλαμβάνουν σημαντική προσπάθεια από το χρήστη, ενώ παρουσιάζουν συχνά την πληροφορία με τρόπο που δεν είναι εύληπτος. Στόχος της διπλωματικής είναι να αναπτυχθεί μια πλατφόρμα με αυτοματοποιημένη μηχανική λογισμικού (templates, γλώσσες ειδικού σκοπού) η οποία θα επιτρέπει τη φόρτωση συνόλων δεδομένων, κατόπιν θα τα οπτικοποιεί ώστε στη συνέχεια να επιτρέπει στο χρήστη να εξερευνήσει τα δεδομένα και να επιλέξει να πραγματοποιήσει ελέγχους ποιότητας. Επιπλέον, η πλατφόρμα θα περιλαμβάνει τεχνικές μηχανικής μάθησης που θα δίνουν προτάσεις στο χρήστη, όσον αφορά το σε ποια ζητήματα του συνόλου δεδομένων να εστιάσει αλλά και το πώς να τα επιλύσει. Ως εφαρμογή, θα χρησιμοποιηθούν σύνολα δεδομένων της μηχανικής λογισμικού.
- Επιθυμητές γνώσεις: Python, JavaScript, Βάσεις Δεδομένων
- Εμπλεκόμενες Τεχνολογίες – Γνώσεις που θα αποκτηθούν: Μηχανική Δεδομένων, Αυτοματοποιημένη Μηχανική Λογισμικού
- Εκτιμώμενος Χρόνος Περάτωσης: 6-9 Μήνες
- Συνεργαζόμενος Ερευνητής: Θεμιστοκλής Διαμαντόπουλος, Θάνος Μιχαηλούδης
- Σχετικό link:
- [1] Liebchen, G., & Shepperd, M. (2016). Data sets and data quality in software engineering: Eight years on. In 12th international conference on predictive models and data analytics in software engineering, https://bura.brunel.ac.uk/bitstream/2438/17355/1/FullText.pdf
- [2] Rosli, M. et al. (2018). Evaluating the quality of datasets in software engineering. Advanced Science Letters, https://www.researchgate.net/profile/Marshima-Mohd-Rosli-2/publication/327992605_Evaluating_the_Quality_of_Datasets_in_Software_Engineering/links/5cecc805a6fdcc18c8e744f5/Evaluating-the-Quality-of-Datasets-in-Software-Engineering.pdf
- [3] Bosu, M. F., & Macdonell, S. G. (2019). Experience: Quality benchmarking of datasets used in software effort estimation. Journal of Data and Information Quality (JDIQ), 11(4), 1-38, https://arxiv.org/pdf/2012.10836
- [4] Liebchen, G. A. (2010). Data cleaning techniques for software engineering data sets (Doctoral dissertation, Brunel University, School of Information Systems, Computing and Mathematics), https://bura.brunel.ac.uk/bitstream/2438/5951/1/FulltextThesis.pdf
Εφαρμογή τεχνικών μηχανικής μάθησης για ροές δεδομένων σε δεδομένα διαδικασιών λογισμικού
Τα τελευταία χρόνια, η μηχανική λογισμικού ακολουθεί ένα συνεργατικό μοντέλο που βασίζεται στην ανάπτυξη λογισμικού ανοικτού κώδικα σε διαδικτυακά αποθετήρια λογισμικού, όπως το GitHub ή το Jira. Τα αποθετήρια αυτά επιτρέπουν την αποτελεσματική διαχείριση έργων λογισμικού, αποθηκεύοντας τις εκδόσεις του κώδικα (version control), καταγράφοντας τα διάφορα ζητήματα που προκύπτουν (π.χ. καταγραφή σφαλμάτων, ανάθεση εργασιών στους προγραμματιστές, κ.α.), καθώς και τις ενέργειες και συζητήσεις των μελών της ομάδας ανάπτυξης (π.χ. σχόλια, pull requests). Η εφαρμογή τεχνικών μηχανικής μάθησης σε αυτά τα δεδομένα μπορεί να εξάγει πλήθος χρήσιμων πληροφοριών σε πολλαπλά επίπεδα, π.χ. αναλύοντας τις συζητήσεις στα έργα λογισμικού [1], εξάγοντας συμπεράσματα για την ανάθεση προγραμματιστών στην επίλυση σχετικών σφαλμάτων [2], κ.α. Ωστόσο, στους μεγάλους οργανισμούς τα δεδομένα αυτά αποτελούν συνεχόμενες ροές (ενδεικτικά στον Jira server του Apache καθημερινά καταγράφονται περισσότερα από 400 εργασίες), που δεν είναι πάντα εφικτό να αναλυθούν με κλασικές τεχνικές μηχανικής μάθησης. Στο πλαίσιο αυτό, σκοπός της εργασίας είναι η εφαρμογή τεχνικών μηχανικής μάθησης για ροές δεδομένων (data streams) [3], εστιάζοντας στην αλληλεπίδραση μεταξύ των μηχανικών της ομάδας ανάπτυξης, με σκοπό την καλύτερη κατανόηση των δεδομένων του έργου λογισμικού και την αντιμετώπιση προκλήσεων όπως την εκτίμηση πιθανότητας σφάλματος, την εύρεση του κατάλληλου μηχανικού για την επιδιόρθωση ενός σφάλματος, την πρόβλεψη του χρόνου που απαιτείται για την επίλυση κάθε σφάλματος, κ.α. [4].
- Επιθυμητές γνώσεις: Python, Μηχανική Μάθηση
- Εμπλεκόμενες Τεχνολογίες – Γνώσεις που θα αποκτηθούν: Μηχανική Μάθηση, Μηχανική Λογισμικού, Ροές Δεδομένων
- Εκτιμώμενος Χρόνος Περάτωσης: 6-9 Μήνες
- Συνεργαζόμενος Ερευνητής: Θεμιστοκλής Διαμαντόπουλος, Θάνος Μιχαηλούδης
- Σχετικό link:
- [1] Abreu, R., & Premraj, R. (2009). How developer communication frequency relates to bug introducing changes. In Joint workshops on software evolution (IWPSE and Evol workshops), pp. 153-158, https://scholar.google.com/scholar?cluster=17828076737583248235
- [2] Matsoukas, V., Diamantopoulos, T., Papamichail, M. D., & Symeonidis, A. L. (2020). Towards analyzing contributions from software repositories to optimize issue assignment. In 20th International Conference on Software Quality, Reliability and Security (pp. 243-253), IEEE, https://issel.ee.auth.gr/wp-content/uploads/2020/07/QRS2020IssueAssignment.pdf
- [3] Nguyen, Hai-Long, Yew-Kwong Woon, and Wee-Keong Ng. "A survey on data stream clustering and classification." Knowledge and information systems 45 (2015): 535-569, https://scholar.google.gr/scholar?cluster=12265141749345082829
- [4] Connor, A. M., Finlay, J., & Pears, R. (2014). Mining developer communication data streams. arXiv preprint arXiv:1407.6104, https://arxiv.org/pdf/1407.6104