Κατασκευή Μοντέλων για την Πρόβλεψη του Χρόνου Εκτέλεσης Βαθιών Νευρωνικών Δικτύων σε Κινητές Συσκευές
Διπλωματική Εργασία


Περιγραφή

Τα βαθιά νευρωνικά δίκτυα (deep neural networks, DNNs) έχουν γίνει ο ακρογωνιαίος λίθος των σύγχρονων εφαρμογών τεχνητής νοημοσύνης (artificial intelligence, AI), που κυμαίνονται από την όραση υπολογιστών έως την επεξεργασία φυσικής γλώσσας. Η αποτελεσματική ανάπτυξη DNNs για ένα ευρύ φάσμα κινητών συσκευών αποτελεί σοβαρή πρόκληση λόγω της εγγενούς ποικιλομορφίας των χαρακτηριστικών υλικού τους, συμπεριλαμβανομένων των επεξεργαστών, της χωρητικότητας μνήμης και του χώρου αποθήκευσης. Ωστόσο, αυτή η προσπάθεια είναι υψίστης σημασίας, καθώς είναι απαραίτητη για την απελευθέρωση του πλήρους δυναμικού των εφαρμογών τεχνητής νοημοσύνης σε κινητές συσκευές.

Μία από τις βασικές μετρικές απόδοσης είναι ο χρόνος εκτέλεσης (latency), ο οποίος έχει άμεση επίδραση την ποιότητα εμπειρίας (Quality of Experience, QoS) των χρηστών. Στο πλαίσιο πολλών περιστάσεων, απαιτείται η ακριβής εκτίμηση του χρόνου εκτέλεσης ενός DNN σε διάφορους επεξεργαστές κινητών συσκευών και διαμορφώσεις. Αυτό είναι ιδιαίτερα σημαντικό, για παράδειγμα, στην βελτιστοποίηση της επιλογής του κατάλληλου μοντέλου ή σε διαδικασίες αναζήτησης αρχιτεκτονικής μοντέλου που λαμβάνουν υπόψη τα χαρακτηριστικά υλικού (hardware-aware neural architecture search).

Σκοπός της παρούσης διπλωματικής εργασίας είναι η ανάπτυξη μοντέλων που θα προβλέπουν τον χρόνο εκτέλεσης ενός DNN σε διάφορους επεξεργαστές κινητών συσκευών και διαμορφώσεις (π.χ. αριθμός νημάτων CPU, αριθμητική ακρίβεια). Τα εν λόγω μοντέλα μπορεί να ανήκουν σε δύο κατηγορίες: (α) βασισμένα σε κανόνες (rule-based), που χρησιμοποιούν προκαθορισμένες ευριστικές (heuristics) και μαθηματικά μοντέλα, ή (β) βασισμένα στη μάθηση (learning-based), όπως είναι οι αλγόριθμοι μηχανικής μάθησης και τα νευρωνικά δίκτυα.

Η διπλωματική εργασία περιλαμβάνει τα ακόλουθα στάδια: (α) ανάπτυξη mobile εφαρμογής (Android) για τη συλλογή μετρήσεων του χρόνου εκτέλεσης διαφόρων DNNs σε διάφορους επεξεργαστές κινητών συσκευών, (β) προσδιορισμός των χαρακτηριστικών που επηρεάζουν τον χρόνο εκτέλεσης, όπως η πολυπλοκότητα του μοντέλου, οι προδιαγραφές υλικού και τα χαρακτηριστικά εισόδου, (γ) ανάπτυξη των μοντέλων πρόβλεψης, και (δ) χρήση διαφόρων τεχνικών επικύρωσης (π.χ. cross-validation) για την αξιολόγηση των δυνατοτήτων γενίκευσης των μοντέλων και εκτεταμένες δοκιμές με διαφορετικά μοντέλα και διαμορφώσεις υλικού.

Απαραίτητες γνώσεις προγραμματισμού: Python, Java

Επιθυμητές γνώσεις: Android mobile app development, Deep Learning frameworks (TensorFlow, TFLite)